Commit 10bb180c authored by bergengruen's avatar bergengruen
Browse files

test case 0003H introduced

parent 488aca06
Loading
Loading
Loading
Loading
+107 −5
Original line number Diff line number Diff line
@@ -439,6 +439,7 @@ group checksTC_IMS_0002 {
	    }

} // group

group checksTC_IMS_0003{	    
	    /**
		 * @desc Starts monitor component behavior 
@@ -470,15 +471,14 @@ group checksTC_IMS_0003{
	    ) runs on TestCoordinator return Request {
		   var SipMessage v_sip;
		   
		   //TODO Currently we don't check anything except that there 
		   // where 2 messages on the cable, and the last being a Register
		   //Get first Register
		   var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A);
		   var Request v_RegisterStep4;    		
		   var Request v_RegisterStep4, v_RegisterStep2;    		
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_REGISTER_Request_Base)},
                {},
                "TP_IMS_5203_01",
                "TP_IMS_5203_01 first register",
                "REGISTER request",
                0,
                true
@@ -486,13 +486,115 @@ group checksTC_IMS_0003{
           );
           p_monitorCompRef.done;
           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
           v_RegisterStep2 := v_sip.request;

		   //Get second Register
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_REGISTER_Request_Base)},
                {},
                "TP_IMS_5203_01 second register",
                "REGISTER request",
                0,
                true
            )
           );
           p_monitorCompRef.done;
           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
           
           // TODO: Currently we don't check anything, just that IMS-A sent 2 consecutive Registers  
           v_RegisterStep4 := v_sip.request;                      
           return v_RegisterStep4;
	    }
  
} // group

group checksTC_IMS_0003H{	    
	    /**
		 * @desc Starts monitor component behavior 
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5402_01_gm(
	    	InterfaceMonitor p_monitorCompRef
	    ) runs on TestCoordinator {
		   // Check that the UE sends any register	    		
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_REGISTER_Request_Base)},
                {},
                "TP_IMS_5203_01",
                "REGISTER request",
                0,
                false
            )
           );
           p_monitorCompRef.done;
	    }
	    
	    /**
		 * @desc Starts monitor component behavior
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5402_01_mw(
	    	InterfaceMonitor p_monitorCompRef
	    ) runs on TestCoordinator return Request {
		   var SipMessage v_sip;
		   
		   //Get first Register
		   var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A);
		   var Request v_RegisterStep4, v_RegisterStep2;    		
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_REGISTER_Request_Base)},
                {},
                "TP_IMS_5203_01 first register",
                "REGISTER request",
                0,
                true
            )
           );
           p_monitorCompRef.done;
           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
           v_RegisterStep2 := v_sip.request;

		   //Get second Register
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_REGISTER_Request_Base)},
                {},
                "TP_IMS_5203_01 second register",
                "REGISTER request",
                0,
                true
            )
           );
           p_monitorCompRef.done;
           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
           
           // Check that IMS_A sends the original Register to
           // another entrypoint of IMS-B
           if (match (v_RegisterStep4.msgHeader, v_RegisterStep2.msgHeader)){
             // Identical set of headers
             setverdict(pass);
           } else {
			// Some headers differ
             setverdict(fail);
           }
           if (match (v_RegisterStep4.requestLine, v_RegisterStep4.requestLine)){
             // IMS-A used same entrypoint
             setverdict(fail);
           } else {
			// IMS-A used a different entrypoint 
             setverdict(pass);
           }
             
           v_RegisterStep4 := v_sip.request;                      
           return v_RegisterStep4;
	    }
  
  
} // group

group checksTC_IMS_0005 {

	/**
+38 −2
Original line number Diff line number Diff line
@@ -132,8 +132,7 @@ module AtsImsIot_TestCases {
	}
	/**
	 * @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.
	 *     No response from first entry point on REGISTER with 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 {
@@ -169,6 +168,43 @@ module AtsImsIot_TestCases {
		f_cf_monitor_down(v_mw);
	}

	/**
	 * @desc
	 *     No response from first entry point on REGISTER with topology hiding
	 *     (TD_IMS_0003 in ETSI TS 186 011-2 V2.3.1 cause 4.5.2.2)
	 */
	testcase TC_IMS_0003H() 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;
		
		// 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_5402_01_gm(v_gmA);

		// TODO implement check functions		
		v_Register_Step4 := f_mtc_check_TP_IMS_5402_01_mw(v_mw); // TP1
		
		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);
	}



	
	/**