Commit beb0d878 authored by Michael Proestler's avatar Michael Proestler
Browse files

Add TC_LIS_SIP_BV_04 and TC_LIS_SIP_BV_05

Add JSON Types, ElementState Templates, Subscription Profiles
parent 2622196d
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -200,6 +200,8 @@
    <FileResource projectRelativePath="bin/LibNg112_EncdecDeclarations.hh" relativeURI="../TTF009_Test/bin/LibNg112_EncdecDeclarations.hh"/>
    <FileResource projectRelativePath="bin/LibNg112_Functions.cc" relativeURI="../TTF009_Test/bin/LibNg112_Functions.cc"/>
    <FileResource projectRelativePath="bin/LibNg112_Functions.hh" relativeURI="../TTF009_Test/bin/LibNg112_Functions.hh"/>
    <FileResource projectRelativePath="bin/LibNg112_SubscriptionPayloads.cc" relativeURI="../TTF009_Test/bin/LibNg112_SubscriptionPayloads.cc"/>
    <FileResource projectRelativePath="bin/LibNg112_SubscriptionPayloads.hh" relativeURI="../TTF009_Test/bin/LibNg112_SubscriptionPayloads.hh"/>        
    <FileResource projectRelativePath="bin/LibNg112_Pics.cc" relativeURI="../TTF009_Test/bin/LibNg112_Pics.cc"/>
    <FileResource projectRelativePath="bin/LibNg112_Pics.hh" relativeURI="../TTF009_Test/bin/LibNg112_Pics.hh"/>
    <FileResource projectRelativePath="bin/LibNg112_Pixits.cc" relativeURI="../TTF009_Test/bin/LibNg112_Pixits.cc"/>
@@ -521,6 +523,7 @@
    <FileResource projectRelativePath="ttcn/LibEmcom/LibNg112/module.mk" relativeURI="ttcn/LibEmcom/LibNg112/module.mk"/>
    <FileResource projectRelativePath="ttcn/LibEmcom/LibNg112/ttcn/LibNg112_EncdecDeclarations.ttcn" relativeURI="ttcn/LibEmcom/LibNg112/ttcn/LibNg112_EncdecDeclarations.ttcn"/>
    <FileResource projectRelativePath="ttcn/LibEmcom/LibNg112/ttcn/LibNg112_Functions.ttcn" relativeURI="ttcn/LibEmcom/LibNg112/ttcn/LibNg112_Functions.ttcn"/>
    <FileResource projectRelativePath="ttcn/LibEmcom/LibNg112/json/LibNg112_SubscriptionPayloads.ttcn" relativeURI="ttcn/LibEmcom/LibNg112/json/LibNg112_SubscriptionPayloads.ttcn"/>    
    <FileResource projectRelativePath="ttcn/LibEmcom/LibNg112/ttcn/LibNg112_Pics.ttcn" relativeURI="ttcn/LibEmcom/LibNg112/ttcn/LibNg112_Pics.ttcn"/>
    <FileResource projectRelativePath="ttcn/LibEmcom/LibNg112/ttcn/LibNg112_Pixits.ttcn" relativeURI="ttcn/LibEmcom/LibNg112/ttcn/LibNg112_Pixits.ttcn"/>
    <FileResource projectRelativePath="ttcn/LibEmcom/LibNg112/ttcn/LibNg112_Steps.ttcn" relativeURI="ttcn/LibEmcom/LibNg112/ttcn/LibNg112_Steps.ttcn"/>
@@ -5497,6 +5500,12 @@
            <ExcludeFromBuild>false</ExcludeFromBuild>
          </FileProperties>
        </FileResource>
        <FileResource>
          <FilePath>bin/LibNg112_SubscriptionPayloads.cc</FilePath>
          <FileProperties>
            <ExcludeFromBuild>false</ExcludeFromBuild>
          </FileProperties>
        </FileResource>                
        <FileResource>
          <FilePath>ccsrc/Protocols/Http/http_codec.hh</FilePath>
          <FileProperties>
@@ -5995,6 +6004,12 @@
            <ExcludeFromBuild>false</ExcludeFromBuild>
          </FileProperties>
        </FileResource>
        <FileResource>
          <FilePath>ttcn/LibEmcom/LibNg112/json/LibNg112_SubscriptionPayloads.ttcn</FilePath>
          <FileProperties>
            <ExcludeFromBuild>false</ExcludeFromBuild>
          </FileProperties>
        </FileResource>                
        <FileResource>
          <FilePath>ttcn/LibCommon/ttcn/LibCommon_VerdictControl.ttcn</FilePath>
          <FileProperties>
@@ -6775,6 +6790,12 @@
            <ExcludeFromBuild>false</ExcludeFromBuild>
          </FileProperties>
        </FileResource>
        <FileResource>
          <FilePath>bin/LibNg112_SubscriptionPayloads.hh</FilePath>
          <FileProperties>
            <ExcludeFromBuild>false</ExcludeFromBuild>
          </FileProperties>
        </FileResource>                
        <FileResource>
          <FilePath>docs/o2.cfg</FilePath>
          <FileProperties>
+4 −0
Original line number Diff line number Diff line
@@ -38,6 +38,10 @@ module AtsLIS_Pics {
   */
  modulepar boolean PICS_LIS_SIP_SUBSCRIPTION := true;

  /**
   * @desc Does the IUT support SIP Element State?
   */
  modulepar boolean PICS_LIS_SIP_ELEMENT_STATE := true;

  /**
   * @desc Does the IUT support AML via HTTP?
+105 −1
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ module AtsLIS_TestCases {
  import from LibNg112_Steps all;
  import from LibNg112_Pics all;
  import from LibNg112_Pixits all;
  import from LibNg112_SubscriptionPayloads all;

  // AtsLIS
  import from AtsLIS_Pics all;
@@ -818,7 +819,7 @@ module AtsLIS_TestCases {
        f_checkUserInfo("Update Location Information for " & PX_DEVICE_NUMBER[PX_DEVICE_NUMBER_POINT], 1.0); 
        
        f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request_Base(vc_callId), v_msg_recv); 

        f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);

        // Postamble
        LibIms_Steps.f_setHeadersSUBSCRIBE(v_cSeq_s, v_subscription_target, f_initSipUrl(c_serviceProfile_SUBSCRIBER));        
@@ -832,6 +833,109 @@ module AtsLIS_TestCases {
        f_cf_01_down();
    } // End of testcase TC_LIS_SIP_BV_03

    /**
     * @desc "IUT sends a SIP NOTIFY when the location changes"
     */
    testcase TC_LIS_SIP_BV_04() runs on HttpSipComponent system TestAdapter {             
        // Local variables        
        var NOTIFY_Request v_msg_recv;
        var CSeq v_cSeq_s := {
          fieldName := CSEQ_E,
          seqNumber := 0,
          method := "SUBSCRIBE"
        };

        var SipUrl v_subscription_target :=  f_initSipUrl(c_serviceProfile_SUBSCRIPTION_SERVICE);

        // Test control
        f_check_pics({ values := {PICS_LIS_SIP_ELEMENT_STATE}, names := {"PICS_LIS_SIP_ELEMENT_STATE"}});
        
        // Test component configuration              
        f_cf_01_up();                          
        f_init_userprofile(c_userProfile_ESINetSubscriber);        
        f_init_interfaceprofile(c_interfaceProfile_SUT_LIS);
        
        // Preamble         
        LibIms_Steps.f_setHeadersSUBSCRIBE(v_cSeq_s, v_subscription_target, f_initSipUrl(c_serviceProfile_SUBSCRIBER));                                
        template SUBSCRIBE_Request request := m_SUBSCRIBE_ElementState_Request_Event(
          v_subscription_target, vc_callId ,v_cSeq_s, vc_from, vc_to, vc_via, omit
        );

        f_SendSUBSCRIBE(request);
        f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);

        // Test Body
        f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));                        
        f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request_Base(vc_callId), v_msg_recv); 
                      
        var ElementStatePayload v_elementStatePayload;
        f_decodeElementState(v_msg_recv, v_elementStatePayload);
                
        if (match(v_elementStatePayload, mw_element_state_payload)) {
          f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
        } else {
          log(match(v_elementStatePayload, mw_element_state_payload));
          f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
        }
        
        // Postamble
        LibIms_Steps.f_setHeadersSUBSCRIBE(v_cSeq_s, v_subscription_target, f_initSipUrl(c_serviceProfile_SUBSCRIBER));        
        f_SendSUBSCRIBE(m_UNSUBSCRIBE_ElementState_Request_Event(
                                                            v_subscription_target, vc_callId ,v_cSeq_s, vc_from, vc_to, vc_via, omit
                                                          )
        );
        f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));
        f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request_Base(vc_callId), v_msg_recv); 

        f_cf_01_down();
    } // End of testcase TC_LIS_SIP_BV_04

    /**
     * @desc "IUT responds to a SIP "Unsubscribe" for elementState event package with an 200 OK and NOTIFY" 
     */
    testcase TC_LIS_SIP_BV_05() runs on HttpSipComponent system TestAdapter {             
        // Local variables        
        var NOTIFY_Request v_msg_recv;
        var CSeq v_cSeq_s := {
          fieldName := CSEQ_E,
          seqNumber := 0,
          method := "SUBSCRIBE"
        };

        var SipUrl v_subscription_target :=  f_initSipUrl(c_serviceProfile_SUBSCRIPTION_SERVICE);

        // Test control
        f_check_pics({ values := {PICS_LIS_SIP_ELEMENT_STATE}, names := {"PICS_LIS_SIP_ELEMENT_STATE"}});
        
        // Test component configuration              
        f_cf_01_up();                          
        f_init_userprofile(c_userProfile_ESINetSubscriber);        
        f_init_interfaceprofile(c_interfaceProfile_SUT_LIS);
        
        // Preamble         
        LibIms_Steps.f_setHeadersSUBSCRIBE(v_cSeq_s, v_subscription_target, f_initSipUrl(c_serviceProfile_SUBSCRIBER));                                
        template SUBSCRIBE_Request request := m_SUBSCRIBE_ElementState_Request_Event(
          v_subscription_target, vc_callId ,v_cSeq_s, vc_from, vc_to, vc_via, omit
        );

        f_SendSUBSCRIBE(request);        
        f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));                        
        f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request_Base(vc_callId), v_msg_recv); 
        
        f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);                                  

        // Test Body        
        LibIms_Steps.f_setHeadersSUBSCRIBE(v_cSeq_s, v_subscription_target, f_initSipUrl(c_serviceProfile_SUBSCRIBER));        
        f_SendSUBSCRIBE(m_UNSUBSCRIBE_ElementState_Request_Event(
                                                            v_subscription_target, vc_callId ,v_cSeq_s, vc_from, vc_to, vc_via, omit
                                                          )
        );
        f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq));
        f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request_Base(vc_callId), v_msg_recv); 

        // Postamble
        f_cf_01_down();
    } // End of testcase TC_LIS_SIP_BV_05

  }

+16 −0
Original line number Diff line number Diff line
module LibNg112_SubscriptionPayloads {

    type record ElementStatePayload {
        ElementState elementState
    }

    type record ElementState {
        charstring elementId,
        charstring state,
        charstring reason optional
        } with {
        variant(reason) "JSON:omit as null"
    }
} with {
    encode "JSON";
}
 No newline at end of file
+3 −1
Original line number Diff line number Diff line
@@ -20,4 +20,6 @@ sources := \
						xsd/urn_ietf_params_xml_ns_pidf_geopriv10.ttcn \
						xsd/NoTargetNamespace.ttcn \
						xsd/urn_ietf_params_xml_ns_lost1.ttcn \
						xsd/urn_ietf_params_xml_ns_pidf.ttcn
						xsd/urn_ietf_params_xml_ns_pidf.ttcn \
						json/LibNg112_SubscriptionPayloads.ttcn
						
Loading