Commit 56852963 authored by garciay's avatar garciay
Browse files

Implementation of TP_EPC_6003_01

parent 7a7bee10
Loading
Loading
Loading
Loading
+54 −5
Original line number Diff line number Diff line
@@ -17,6 +17,9 @@ module AtsImsIot_Behavior {
		type SipMessage, SipMessageList, NAPTRmessage, EnumResponse, EnumQuery, SkipType;
	}
	
	import from LibIot_TestInterface {
		type EquipmentUser
	};
	
	import from LibIms_UpperTester {type ImsUserInfo;}

@@ -5320,7 +5323,12 @@ group checksTC_IMS_SHARE_0009 {
        
        /**
         * Starts monitor component behavior for TP_EPC_6003_01
         * @param p_monitorCompRef Reference to monitor component
         * @param p_ueRef_A Reference to IMS UE user component A
         * @param p_monitorCompRef_A Reference to monitor component which initiate the INVITE request message
         * @param p_compRef_A Reference originator user
         * @param p_ueRef_B Reference to IMS UE user component B
         * @param p_monitorCompRef_B Reference to monitor component which receive the INVITE request message
         * @param p_compRef_B Reference destination user
         * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
         * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
         * <pre>
@@ -5344,10 +5352,51 @@ group checksTC_IMS_SHARE_0009 {
         * @see TS 103 029 V3.1.1 clause 7.1.1
         */
        function f_mtc_check_TP_EPC_6003_01(
            ImsInterfaceMonitor p_monitorCompRef,
            boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // TODO Send a INVITE to user B and check for failure 
            in EquipmentUser p_ueRef_A, 
            in ImsInterfaceMonitor p_monitorCompRef_A,
            in ImsUserInfo p_compRef_A,
            in EquipmentUser p_ueRef_B, 
            in ImsInterfaceMonitor p_monitorCompRef_B,
            in ImsUserInfo p_compRef_B,
            in boolean p_checkMessage
        ) runs on ImsTestCoordinator {
            // A sends an INVITE to B and check for failure 
            f_mtc_userInitiateCall(p_ueRef_A, p_compRef_B);
            p_monitorCompRef_A.start(
                f_imsIot_receive( 
                    { 
                        mw_SipRequest(mw_INVITE_Request_Base) // Send an INVITE request message
                    }, 
                    { 
                        mw_SipResponse(mw_200OK_Base) // Fail if INVITE request message succeed
                    }, 
                    {0, omit}, 
                    "TP_EPC_6003_01_A_TO_B", 
                    false, 
                    p_checkMessage 
                ) 
           ); 
           p_monitorCompRef_A.done;
           f_mtc_userCheckCallEnded(p_ueRef_A);
           
            // B sends an INVITE to A and check for failure 
            f_mtc_userInitiateCall(p_ueRef_B, p_compRef_A);
            p_monitorCompRef_B.start(
                f_imsIot_receive( 
                    { 
                        mw_SipRequest(mw_INVITE_Request_Base) // Send an INVITE request message
                    }, 
                    { 
                        mw_SipResponse(mw_200OK_Base) // Fail if INVITE request message succeed
                    }, 
                    {0, omit}, 
                    "TP_EPC_6003_01_B_TO_A", 
                    false, 
                    p_checkMessage 
                ) 
           ); 
           p_monitorCompRef_B.done;
           f_mtc_userCheckCallEnded(p_ueRef_B);
        } // End of function f_mtc_check_TP_EPC_6003_01
        
        /**
+9 −2
Original line number Diff line number Diff line
@@ -53,18 +53,23 @@ module AtsImsIot_TestCases_EPC {
         */
        testcase TC_IMSEPC_Network_Attachment_0001 ( ) runs on ImsTestCoordinator system IotSystemInterface {
            var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
            var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_A);
            var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
            var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_B);
            var ImsInterfaceMonitor v_rx := f_cf_create_monitor(c_rx);
            var ImsUserInfo v_userInfoA := f_getImUser(PX_EUT_A);
            var CF_EPC_CALL v_config := { v_gmA, v_rx, omit };
            var ImsUserInfo v_userInfoB := f_getImUser(PX_EUT_B);
            var CF_EPC_CALL v_config := { v_gmA, v_rx, v_gmB };
            
            // map/connect component ports
            f_cf_adapter_up ( );
            f_cf_user_up ( v_ueA );
            f_cf_user_up ( v_ueA );
            f_cf_epc_call_up ( v_config );
            
            // preamble
            f_mtc_userRadioEnabled(v_ueA, true, true); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile
            f_mtc_userRegistration(v_ueB, v_userInfoB);
            
            // test body
            // Check that user A can register to IMS A
@@ -72,13 +77,15 @@ module AtsImsIot_TestCases_EPC {
            f_mtc_check_TP_EPC_6002_01(v_gmA, false); // Check
            f_mtc_userCheckRegistration(v_ueA, f_getAnyValidUser(PX_EUT_A)); 
            
            f_mtc_check_TP_EPC_6002_01(v_gmA, false);
            f_mtc_check_TP_EPC_6003_01(v_ueA, v_gmA, v_userInfoA, v_ueB, v_gmB, v_userInfoB, false); // Test sequence #4-5
            
            // postamble
            f_PO_user_home_deregistration(v_ueB);
            f_PO_user_home_deregistration(v_ueA);
            f_mtc_userRadioEnabled(v_ueA, false, true);
            
            //unmap/disconnet component ports
            f_cf_user_down(v_ueB);
            f_cf_user_down(v_ueA);
            f_cf_epc_call_down(v_config);
            f_cf_adapter_down();