Commit 98f8f529 authored by Yann Garcia's avatar Yann Garcia
Browse files

Start implementing Gm

parent 0b6573bd
Loading
Loading
Loading
Loading
+107 −48
Original line number Diff line number Diff line
/*
/**
 *  @author     STF 574
 *  @version    $Id$
 *  @desc       This module provides the TP behaviour functions at GM interface
 */

module AtsImsIot_TP_behavior_GM
{
module AtsImsIot_TP_behavior_GM {

	import from AtsImsIot_TestSystem { type ImsInterfaceMonitor, ImsTestCoordinator; }
	import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;}
	import from AtsImsIot_Templates {template all;}
	import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumResponse, EnumQuery, SkipType; }
	import from LibIot_TestInterface { type EquipmentUser, IotEquipmentUser };
	import from LibIms_UpperTester {type ImsUserInfo;}
	import from LibIot_TypesAndValues {type SetFilterReq, SetFilterRsp;}
	import from LibIot_Functions { function f_setConformanceVerdict, f_setIotVerdictFAIL; }
    import from AtsImsIot_TestSystem all;
    import from LibIot_PIXITS all;
    import from AtsImsIot_Templates all;
    import from AtsImsIot_TypesAndValues all;
    import from LibIot_TestInterface all;
    import from LibIms_UpperTester all;
    import from LibIot_TypesAndValues all;
    import from LibIot_Functions all;
    import from LibSip_SIPTypesAndValues all;
    import from LibSip_Templates all;
    
	import from LibSip_Common {
		type 
			GenericParam,
			SemicolonParam_List
	}   
    import from LibSip_Common all;
    
    import from AtsImsIot_Functions all;
	import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;}
    import from LibIot_PIXITS all;
    // LibSip
	import from LibSip_SDPTypes { type SDP_media_desc_list };
    import from LibSip_SDPTypes all;
    // LibMsrp
	import from LibMsrp_TypesAndValues { type MsrpURI };
	import from LibMsrp_Functions { function f_str2msrpUri };
	import from LibMsrp_Templates { 
		template 
			m_msrpSend_Dummy, mw_msrpSEND_toPath_fromPath_contentType, 
			m_msrpReport_Dummy, mw_msrpREPORT_success, 
			m_msrpResponse_Dummy, mw_msrpResponse_toPath_fromPath, 
			mw_toPath,  mw_fromPath, mw_msrpResponse_toPath_fromPath_with_transferReports,
			m_msrpURIs_ToPath_Dummy, m_msrpURIs_FromPath_Dummy, 
			mw_contentType 
	};
    import from LibMsrp_TypesAndValues all;
    import from LibMsrp_Functions all;
    import from LibMsrp_Templates all;
    import from DiameterS6a_Templates all;
    import from DiameterS6a_PIXITS all;
    import from DiameterGx_Templates all;
@@ -47,12 +34,84 @@ module AtsImsIot_TP_behavior_GM
    import from LibDiameter_Templates all;
//    import from DiameterRx_Templates all;
    
    group imsMessage {
        
    } // End of group imsMessage
    
group g_PCSCF {

    // 5.2  IMS Registration
    group imsRegistration {
        
} // end group g_PCSCF
        /**
         * @desc Verify that the P-CSCF successfully processes a first registration (Successful)
         * Initial conditions with {
         *     the UE_A entity isAttachedTo the EPC_A and
         *     the UE_A entity isNotRegisteredTo the IMS_A and
         *     the UE_B entity isNotRegisteredTo the IMS_B
         * }
         * 
         * Expected behaviour
         *     ensure that {
         *         when {
         *             the UE_A entity isTriggeredToStart
         *         }
         *         then {
         *             the UE_A entity sends a REGISTER containing
         *                 From indicating value PX_UE_A_SIP_URI,
         *                 To indicating value PX_UE_A_SIP_URI,
         *                 CallId indicating value PX_UE_A_CALLID,
         *                 Via indicating value PX_UE_A_VIA,
         *                 Authorization containing
         *                     Authentication_Schema indicating value PX_TO_BE_DEFINED,
         *                     Authentication_URI indicating value PX_TO_BE_DEFINED,
         *                     Username indicating value PX_UE_A_USERNAME,
         *                     Realm indicating value PX_UE_A_REALM,
         *                     Algorithm indicating value PX_UE_A_AUTH_ALG,
         *                     Nonce indicating value "",
         *                     not term_ioi,
         *                 not SecurityClient
         *                 ;;
         *             to the IMS_P_CSCF_A entity
         *             and the UE_A entity receives an 401_Unauthorized containing
         *                 From indicating value PX_UE_A_SIP_URI,
         *                 To indicating value PX_UE_A_SIP_URI,
         *                 CallId indicating value PX_UE_A_CALLID,
         *                 Via indicating value PX_UE_A_VIA,
         *                 Path,
         *                 Warning,
         *                 PAccessNetworkInfo,
         *                 WwwAuthenticate containing
         *                     Digest,
         *                     Realm indicating value PX_UE_A_REALM,
         *                     Algorithm indicating value PX_UE_A_AUTH_ALG,
         *                     Nonce indicating value "not empty",
         *                     qop indicating value "auth"
         *                 ;;
         *             from the IMS_P_CSCF_A entity
         *         }
         *     }
         */
         // FIXME To be removed: f_mtc_check_TP_IMS_5203_01_gm
        function f_mtc_check_TP_GM_PCSCF_REGISTER_01(
                                                     in ImsInterfaceMonitor p_monitorCompRef,
                                                     in boolean p_checkMessage := false
                                                     ) runs on ImsTestCoordinator {
            p_monitorCompRef.start(
                                   f_imsIot_receive(
                                                    { 
                                                        mw_SipRequest(mw_REGISTER_Request_Base),
                                                        mw_SipResponse(mw_401Unauthorized_Base),
                                                        mw_SipRequest(mw_REGISTER_Request_Base)
                                                    },
                                                    {},
                                                    {0, omit},
                                                    "TP_GM_PCSCF_REGISTER_01",
                                                    false,
                                                    p_checkMessage
                                                    )
                                   );
           p_monitorCompRef.done;
        } // End of function f_mtc_check_TP_GM_PCSCF_REGISTER_01()
        
    } // End of group imsRegistration
    
} // end module AtsImsIot_TP_behavior_GM
 No newline at end of file
+257 −224
Original line number Diff line number Diff line
@@ -36,6 +36,39 @@ module AtsImsIot_TestCases_REG {
    
    import from LibSip_SIPTypesAndValues all;
    
    /**
     * @desc To perform initial IMS registration via the established default bearer. 
     *       Note that some UEs perform IMS registration automatically on attachment - in which case this test becomes merged with the previous one.
     */
    testcase TC_VxLTE_INT_REG_01() runs on ImsTestCoordinator system IotSystemInterface {
        // Local variables
        var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A);
        var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
        var ImsUserInfo v_anyValidUser := f_getAnyValidUser(PX_EUT_A);
        
        // Test control
        
        // Test component configuration
        f_cf_adapter_up();
        f_cf_user_up(v_ueA);
        
        // Test adapter configuration

        // Preamble
        f_mtc_userRegistration(v_ueA, v_anyValidUser);
        
        // Test body
        f_mtc_check_TP_GM_PCSCF_REGISTER_01(v_gmA, true);
        f_mtc_check_TP_GM_PCSCF_REGISTER_02(v_gmA, true);
        f_mtc_check_TP_GM_PCSCF_SUBSCRIBE_01(v_gmA, true);
        
        
        
        // Postamble
        
        
    } // End of testcase TC_VxLTE_INT_REG_01()
    
    
    
    /**