Commit 2e2838f7 authored by Michael Proestler's avatar Michael Proestler
Browse files

Add Testcases

Add TC_LIS_SIP_BV_08,TC_LIS_SIP_BV_09
Add Validation on ContentType on NOTIFY
parent b3d11b77
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -43,11 +43,18 @@ module AtsLIS_Pics {
   */
  modulepar boolean PICS_LIS_SIP_ELEMENT_STATE := true;


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

  /**
   * @desc Does the IUT support Security Posture within Service State?
   */
  modulepar boolean PICS_LIS_SIP_SECURITY_POSTURE := true;


  /**
   * @desc Does the IUT support AML via HTTP?
   */
+113 −8
Original line number Diff line number Diff line
@@ -662,7 +662,7 @@ module AtsLIS_TestCases {
        template Presence mw_expected_presence := mw_Presence_Base(mw_geopriv({ point := mw_expected_point}));

        
        f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request_Base(vc_callId), v_msg_recv); 
        f_awaitingNOTIFY_sendReply(mw_NOTIFY_Presence_Base(vc_callId), v_msg_recv); 
                

        var Presence v_presence;
@@ -739,7 +739,7 @@ module AtsLIS_TestCases {

        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_awaitingNOTIFY_sendReply(mw_NOTIFY_Presence_Base(vc_callId), v_msg_recv); 

        f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);

@@ -810,7 +810,7 @@ module AtsLIS_TestCases {

        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_awaitingNOTIFY_sendReply(mw_NOTIFY_Presence_Base(vc_callId), v_msg_recv); 

        f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
        
@@ -867,7 +867,7 @@ module AtsLIS_TestCases {

        // 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); 
        f_awaitingNOTIFY_sendReply(mw_NOTIFY_ElementState_Base(vc_callId), v_msg_recv); 
                      
        var ElementStatePayload v_elementStatePayload;
        f_decodeElementState(v_msg_recv, v_elementStatePayload);
@@ -921,7 +921,7 @@ module AtsLIS_TestCases {

        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_awaitingNOTIFY_sendReply(mw_NOTIFY_ElementState_Base(vc_callId), v_msg_recv); 
        
        f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);                                  

@@ -972,7 +972,7 @@ module AtsLIS_TestCases {

        // 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); 
        f_awaitingNOTIFY_sendReply(mw_NOTIFY_ServiceState_Base(vc_callId), v_msg_recv); 
                      
        var ServiceStatePayload v_serviceStatePayload;
        f_decodeServiceState(v_msg_recv, v_serviceStatePayload);
@@ -997,7 +997,7 @@ module AtsLIS_TestCases {
    } // End of testcase TC_LIS_SIP_BV_06

    /**
     * @desc "IUT responds to SIP Subscribe for ServiceState with Security Posture"
     * @desc "IUT responds to SIP Unsubscribe for ServiceState with Security Posture"
     */
    testcase TC_LIS_SIP_BV_07() runs on HttpSipComponent system TestAdapter {             
     // Local variables        
@@ -1026,7 +1026,7 @@ module AtsLIS_TestCases {

        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_awaitingNOTIFY_sendReply(mw_NOTIFY_ServiceState_Base(vc_callId), v_msg_recv); 
        
        f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);                                  

@@ -1043,6 +1043,111 @@ module AtsLIS_TestCases {
        f_cf_01_down();
    } // End of testcase TC_LIS_SIP_BV_07


    /**
     * @desc "IUT responds to SIP Subscribe for ServiceState"
     */
    testcase TC_LIS_SIP_BV_08() 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_SERVICE_STATE}, names := {"PICS_LIS_SIP_SERVICE_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_ServiceState_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_ServiceState_Base(vc_callId), v_msg_recv); 
                      
        var ServiceStatePayload v_serviceStatePayload;
        f_decodeServiceState(v_msg_recv, v_serviceStatePayload);
                
        if (match(v_serviceStatePayload, mw_service_state_payload)) {
          f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
        } else {
          log(match(v_serviceStatePayload, mw_service_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_08

   /**
     * @desc "IUT responds to SIP Unsubscribe for ServiceState"
     */
    testcase TC_LIS_SIP_BV_09() 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_SERVICE_STATE}, names := {"PICS_LIS_SIP_SERVICE_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_ServiceState_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_ServiceState_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_ServiceState_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_09

  }


+40 −3
Original line number Diff line number Diff line
@@ -616,7 +616,7 @@ module LibNg112_Templates {
                                            template (present) charstring p_service_domain := ?,
                                            template (present) charstring p_service_state := pattern "Normal|Unstaffed|ScheduledMaintenanceDown|ScheduledMaintenanceAvailable|MajorIncidentInProgress|Partial|Overloaded|GoingDown|Down",
                                            template (present) charstring p_service_state_reason := ?,
                                            template  SecurityPosture p_security_posture := *                                            
                                            template  SecurityPosture p_security_posture := mw_security_posture                                            
    ) := {
      service := {
        name    := p_service_name,
@@ -626,7 +626,7 @@ module LibNg112_Templates {
        state  := p_service_state,
        reason := p_service_state_reason
      },
      securityPosture := p_security_posture
      securityPosture := p_security_posture ifpresent
    } // End of template mw_service_state_payload


@@ -640,6 +640,43 @@ module LibNg112_Templates {
    }    


    template(present) NOTIFY_Request mw_NOTIFY_Presence_Base(
                                                          template CallId p_callId                                                                                                                    
    ) modifies mw_NOTIFY_Request_Base := {
                  msgHeader := {
                    contentType :={
                        fieldName := CONTENT_TYPE_E,                        
                        mTypeSubtype := "application/pidf+xml"
                    }
                  }
    }


    template(present) NOTIFY_Request mw_NOTIFY_ElementState_Base(
                                                          template CallId p_callId                                                                                                                    
    ) modifies mw_NOTIFY_Request_Base := {
                  msgHeader := {
                    contentType :={
                        fieldName := CONTENT_TYPE_E,                        
                        mTypeSubtype := "application/emergencyCallData.ElementState+json"
                    }
                  }
    }


    template(present) NOTIFY_Request mw_NOTIFY_ServiceState_Base(
                                                          template CallId p_callId                                                                                                                    
    ) modifies mw_NOTIFY_Request_Base := {
                  msgHeader := {
                    contentType :={
                        fieldName := CONTENT_TYPE_E,                        
                        mTypeSubtype := "application/emergency.ServiceState+json"
                    }
                  }
    }



    template(value) SUBSCRIBE_Request m_SUBSCRIBE_Presence_Request_Event(
                    template(value) SipUrl p_requestUri,
                    template(value) CallId p_callId,