Commit e514f00f authored by bergengruen's avatar bergengruen
Browse files

Updates to test 0002

parent e6691511
Loading
Loading
Loading
Loading
+60 −30
Original line number Diff line number Diff line
@@ -58,8 +58,8 @@ module AtsImsIot_Behavior {
            var DefaultList v_defaultArray;

            v_defaultArray[0] := activate(a_default(p_tpId));
            f_activateImsSipDefaults(v_defaultArray, 1, p_failCriteria, fail, p_tpId, p_log, true);
            f_activateImsSipDefaults(v_defaultArray, v_size + 1, p_passCriteria, pass, p_tpId, p_log, true );
            f_activateImsSipDefaults(v_defaultArray, 1, p_failCriteria, fail, p_tpId, p_log, p_forwardMtc);
            f_activateImsSipDefaults(v_defaultArray, v_size + 1, p_passCriteria, pass, p_tpId, p_log, p_forwardMtc );

			f_gen_receive(p_tpId,  p_log, p_skipCount);

@@ -271,7 +271,6 @@ module AtsImsIot_Behavior {
	    function f_mtc_check_TP_IMS_5011_01_mw(
	    	InterfaceMonitor p_monitorCompRef
	    ) runs on TestCoordinator return Request {
		   var Request v_Register;
		   var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A);    		
           p_monitorCompRef.start(
            f_imsIot_receive(
@@ -280,12 +279,13 @@ module AtsImsIot_Behavior {
                "TP_IMS_5011_01",
                "REGISTER request",
                0,
                false
                true
            )
           );
           // TODO assignment to v_Register of received message
           p_monitorCompRef.done;
           return v_Register;
		   var SipMessage v_sip;
           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
           return v_sip.request;
	    }

	    /**
@@ -295,7 +295,6 @@ module AtsImsIot_Behavior {
	    function f_mtc_check_TP_IMS_5011_02_mw(
	    	InterfaceMonitor p_monitorCompRef
	    ) runs on TestCoordinator return Request{
		   var Request v_Register;
		   var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A);    		
           p_monitorCompRef.start(
            f_imsIot_receive(
@@ -304,38 +303,37 @@ module AtsImsIot_Behavior {
                "TP_IMS_5011_02",
                "REGISTER request",
                0,
                false
                true
            )
           );
           p_monitorCompRef.done;
           // TODO assignment to v_Register of received message
           p_monitorCompRef.done;
           return v_Register;
		   var SipMessage v_sip;
           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
           return v_sip.request;
	    }

	    /**
		 * @desc Starts monitor component behavior for TP_IMS_5011_02
		 * @desc Starts monitor component behavior for TP_IMS_5092_01
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5092_01_mw(
	    	InterfaceMonitor p_monitorCompRef
	    ) runs on TestCoordinator return Response {
	       var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTAddress(PX_EUT_B)); 
		   var Response v_200OK;
          p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipResponse(mdw_TP_IMS_5092_01_mw(v_eutBUri))},
                {mw_SipResponse (mw_200OK_Base)},
                "TP_IMS_5092_01",
                "REGISTER request",
                "200OK",
                0,
                false
                true
            )
           );
           p_monitorCompRef.done;
           // TODO assignment to v_200OK of received message
           p_monitorCompRef.done;
           return v_200OK;
		   var SipMessage v_sip;
           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
           return v_sip.response;
	    }


@@ -346,21 +344,21 @@ module AtsImsIot_Behavior {
	    function f_mtc_check_TP_IMS_5089_01_mw(
	    	InterfaceMonitor p_monitorCompRef
	    ) runs on TestCoordinator return Response {
		   var Response v_401Unauthorized;
          p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipResponse(mdw_TP_IMS_5089_01_mw)},
                {mw_SipResponse (mw_401Unauthorized_Base)},
                "TP_IMS_5089_01",
                "REGISTER request",
                "401 Unauthorized",
                0,
                false
                true
            )
           );
           p_monitorCompRef.done;
           // TODO assignment to v_401Unauthorized of received message
           p_monitorCompRef.done;
           return v_401Unauthorized;
		   var SipMessage v_sip;
           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
           return v_sip.response;
	    }


@@ -375,29 +373,61 @@ module AtsImsIot_Behavior {
	       var charstring v_EUTB_PublicId := f_GetEUTPublicId(PX_EUT_B);
		   var template SipUrl v_eutAUri := mw_SipUrl_Host(f_GetEUTAddress(PX_EUT_A));  		
		   var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTAddress(PX_EUT_B)); 
		   var Request v_Subscribe; 		
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mdw_TP_IMS_5044_01_mw(v_eutAUri, v_eutBUri, v_EUTB_PublicId))},
                {mw_SipRequest(mw_SUBSCRIBE_Request_Base)},
                "TP_IMS_5044_01",
                "REGISTER request",
                "SUBSCRIBE request",
                0,
                false
                true
            )
           );
           // TODO assignement of the recived message to v_Subscribe
           p_monitorCompRef.done;

		   var SipMessage v_sip;
           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
           // Check that the expires header is set to "a value greater than the one 
           // in the Expires_header of the 200_response"
           var charstring v_Epires200OK := p_200OK.msgHeader.expires.deltaSec;
           var charstring v_EpiresSubscribe  := v_Subscribe.msgHeader.expires.deltaSec;
           var charstring v_EpiresSubscribe  := v_sip.request.msgHeader.expires.deltaSec;
           if (char2int(v_EpiresSubscribe) <= char2int(v_Epires200OK)) {
             setverdict(fail);
           }
           return v_sip.request;
	    }

	    /**
		 * @desc Starts monitor component behavior for TP_IMS_5096_01
		 */
	    function f_mtc_check_TP_IMS_5096_01_mw(
	    	InterfaceMonitor p_monitorCompRef, Request p_Subscribe
	    ) runs on TestCoordinator  return Response
	    {
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipResponse(mw_200OK_Base), mw_SipResponse(mw_202Accepted_Base)},
                {},
                "TP_IMS_5096_01",
                "200 OK or 202 Accepted",
                0,
                true
            )
           );
     
           p_monitorCompRef.done;
           return v_Subscribe;
		   var SipMessage v_sip;
           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
           // Check that the message contains "Expires_header indicating the same or 
           // lower expiry time than specified in the initial SUBSCRIBE"
           var charstring v_Epires200OK := v_sip.response.msgHeader.expires.deltaSec;
           var charstring v_EpiresSubscribe  := p_Subscribe.msgHeader.expires.deltaSec;
           if (char2int(v_EpiresSubscribe) >=  char2int(v_Epires200OK)) {
             setverdict(fail);
           }


           return v_sip.response;
	    }


+9 −0
Original line number Diff line number Diff line
@@ -157,6 +157,8 @@ module AtsImsIot_Templates {
      }
    }



  template Response mw_200OK_Base  modifies m_Response_Dummy :=
		{
		statusLine := c_statusLine200,
@@ -164,6 +166,13 @@ module AtsImsIot_Templates {
		messageBody := omit,
		payload	:= omit
		}
  template Response mw_202Accepted_Base  modifies m_Response_Dummy :=
		{
		statusLine := c_statusLine202,
		msgHeader := ?,
		messageBody := omit,
		payload	:= omit
		}
  template Response mw_401Unauthorized_Base  modifies m_Response_Dummy :=
		{
		statusLine := c_statusLine401,
+44 −5
Original line number Diff line number Diff line
@@ -113,11 +113,50 @@ module AtsImsIot_TestCases {
		
		f_mtc_check_TP_IMS_5011_01_gm(v_gmA);
		
		v_Register_Step3 := f_mtc_check_TP_IMS_5011_01_mw(v_mw); 
		v_401Unauthorited_Step4 := f_mtc_check_TP_IMS_5089_01_mw(v_mw);
		v_Register_Step7 := f_mtc_check_TP_IMS_5011_02_mw(v_mw); 
		v_200OK_Step8 := f_mtc_check_TP_IMS_5092_01_mw(v_mw);
		v_Subscribe_Step10 := f_mtc_check_TP_IMS_5044_01_mw(v_mw, v_200OK_Step8); 
		v_Register_Step3 := f_mtc_check_TP_IMS_5011_01_mw(v_mw); // TP1
		v_401Unauthorited_Step4 := f_mtc_check_TP_IMS_5089_01_mw(v_mw); // TP4
		v_Register_Step7 := f_mtc_check_TP_IMS_5011_02_mw(v_mw);  // TP2
		v_200OK_Step8 := f_mtc_check_TP_IMS_5092_01_mw(v_mw); // TP5
		v_Subscribe_Step10 := f_mtc_check_TP_IMS_5044_01_mw(v_mw, v_200OK_Step8); // TP3
		f_mtc_check_TP_IMS_5096_01_mw(v_mw, v_Subscribe_Step10); // TP6
		
		f_mtc_userCheckRegistration(v_ueB, PX_EUT_B);
		
		// postamble
		f_PO_user_home_deregistration(v_ueB);
		
		//unmap/disconnet component ports
		f_cf_trigger_down(v_ueB);
		f_cf_monitor_down(v_gmA);
		f_cf_monitor_down(v_mw);
	}
	/**
	 * @desc
	 *     IMS network chooses a second entry point to the home network of a user that requested registration,
     *     if the first entry point does not answer, without topology hiding.
	 *     (TD_IMS_0003 in ETSI TS 186 011-2 V2.3.1 cause 4.5.2.2)
	 */
	testcase TC_IMS_0003() runs on TestCoordinator system SystemInterface {
		// create components
		var EutTrigger v_ueB := f_cf_create_trigger(c_trigger_B);
		var InterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
		var InterfaceMonitor v_mw := f_cf_create_monitor(c_mw);
		var Request v_Register_Step4;
		var Response v_200OK_Step9;
		
		// map/connect component ports
		f_cf_trigger_up(v_ueB);
		f_cf_monitor_up(v_gmA);
		f_cf_monitor_up(v_mw);
		
		// test body
		f_mtc_userTriggerRegistration(v_ueB, PX_EUT_A); 
		
		f_mtc_check_TP_IMS_5011_01_gm(v_gmA);

		// TODO implement check functions		
		v_Register_Step4 := f_mtc_check_TP_IMS_5011_01_mw(v_mw); // TP1
		v_200OK_Step9 := f_mtc_check_TP_IMS_5092_01_mw(v_mw); // TP2
		
		f_mtc_userCheckRegistration(v_ueB, PX_EUT_B);