Loading AtsImsIot/AtsImsIot_Behavior.ttcn +87 −0 Original line number Diff line number Diff line Loading @@ -841,5 +841,92 @@ group checksTC_IMS_0005 { } // end group group checksTC_IMS_0008 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5034_01_gm( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_REGISTER_Request_Base)}, {}, "TP_IMS_5034_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_5134_01_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator return Request { // TODO Get IBPC_SIP_URI of IMS A var charstring v_IBPC := "IBPC_SIP_URI of IMS A"; //f_GetEUTAddress(PX_EUT_A); var SipMessage v_sip; p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5134_01_mw(v_IBPC))}, {mw_SipRequest(mw_REGISTER_Request_Base)}, "TP_IMS_5134_01", "first REGISTER request", 0, false ) ); p_monitorCompRef.done; // fetch second register p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5134_01_mw(v_IBPC))}, {mw_SipRequest(mw_REGISTER_Request_Base)}, "TP_IMS_5134_01", "first REGISTER request", 1, // (ignore 401 Unauthorized) true ) ); p_monitorCompRef.done; f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); return v_sip.request; } /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5405_01_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator return Request { var SipMessage v_sip; p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5405_01_mw)}, {mw_SipRequest(mw_SUBSCRIBE_Request_Base)}, "TP_IMS_5405_01", "SUBSCRIBE request", 1, // ignore 200 Ok true ) ); p_monitorCompRef.done; f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); return v_sip.request; } } // group } // end group }// end module No newline at end of file AtsImsIot/AtsImsIot_Templates.ttcn +35 −11 Original line number Diff line number Diff line Loading @@ -48,9 +48,10 @@ module AtsImsIot_Templates { * * @desc REGISTER Request containing secuity client header. */ // template REGISTER_Request mdw_TP_IMS_5011_01_gm modifies mw_REGISTER_Request_Base := { template REGISTER_Request mdw_TP_IMS_5011_01_gm modifies mw_REGISTER_Request_Base := { msgHeader := ? msgHeader := { securityClient := ? } } Loading @@ -58,7 +59,6 @@ module AtsImsIot_Templates { * * @desc REGISTER Request checking TP_IMS_5011_01. */ // template REGISTER_Request mdw_TP_IMS_5011_01_mw ( charstring p_EUTHostname ) modifies mw_REGISTER_Request_Base := { template REGISTER_Request mdw_TP_IMS_5011_01_mw ( charstring p_EUTHostname ) modifies mw_REGISTER_Request_Base := { msgHeader := { path := mw_PathDef (p_EUTHostname), Loading @@ -75,6 +75,15 @@ module AtsImsIot_Templates { pVisitedNetworkID := mw_PVisitedNetworkIDAny } } /** * * @desc REGISTER Request checking TP_IMS_5134_01. */ template REGISTER_Request mdw_TP_IMS_5134_01_mw ( charstring p_EUTHostname ) modifies mw_REGISTER_Request_Base := { msgHeader := { path := mw_PathDef (p_EUTHostname) } } /** * Loading Loading @@ -136,7 +145,6 @@ module AtsImsIot_Templates { * * @desc SUBSCRIBE checking TP_IMS_5044_01. */ // template SUBSCRIBE_Request mdw_TP_IMS_5044_01_mw(template SipUrl p_eutAUri, template SipUrl p_eutBUri) template SUBSCRIBE_Request mdw_TP_IMS_5044_01_mw(template SipUrl p_eutAUri, template SipUrl p_eutBUri, template charstring p_EUTB_PublicId Loading @@ -161,6 +169,22 @@ module AtsImsIot_Templates { } } template SUBSCRIBE_Request mdw_TP_IMS_5405_01_mw modifies mw_SUBSCRIBE_Request_Base := { requestLine := { method := SUBSCRIBE_E, requestUri := ?, sipVersion := c_sipNameVersion }, msgHeader := { via := mw_Via (?), // TODO recordRoute := ?, // TODO route := ?, // TODO pChargingVector := omit } } template Response mw_200OK_Base modifies m_Response_Dummy := Loading Loading @@ -340,11 +364,11 @@ module AtsImsIot_Templates { group AuxiliaryInformationElementTemplates { template Credentials mw_credentialIntegrityYes := { otherResponse := {authScheme := "IntegrityYes", authParams := *} // TODO } otherResponse := {authScheme := ?, authParams := { {"integrity-protected", "yes"},*} // TODO }} template Credentials mw_credentialIntegrityNo := { otherResponse := {authScheme := "IntegrityNo", authParams := *} // TODO } otherResponse := {authScheme := ?, authParams := { {"integrity-protected", "no"},*} // TODO }} } //end group Loading AtsImsIot/AtsImsIot_TestCases.ttcn +39 −1 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ module AtsImsIot_TestCases { import from LibIot_TestInterface {type IotEquipmentUser;} import from LibIot_TestConfiguration { function f_cf_create_IotEquipmentUser; } Loading Loading @@ -372,6 +373,43 @@ module AtsImsIot_TestCases { f_cf_monitor_down(v_mw); } /** * @desc * First time registration in a visited IMS network with topology hiding. * (TD_IMS_0008 in ETSI TS 186 011-2 V2.3.1 cause 4.5.2.9) */ testcase TC_IMS_0008() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B); var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A); var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw); // map/connect component ports f_cf_user_up(v_ueB); f_cf_monitor_up(v_gmA); f_cf_monitor_up(v_mw); //TODO Configure IMS_A 'for topology hiding'' // test body f_mtc_userTriggerRegistration(v_ueB, f_getAnyValidUser(PX_EUT_B)); f_mtc_check_TP_IMS_5011_01_gm(v_gmA); f_mtc_check_TP_IMS_5134_01_mw(v_mw); // Check1 f_mtc_check_TP_IMS_5405_01_mw(v_mw); // Check2 f_mtc_userCheckRegistration(v_ueB, f_getAnyValidUser(PX_EUT_B)); // postamble f_PO_user_home_deregistration(v_ueB); //unmap/disconnet component ports f_cf_user_down(v_ueB); f_cf_monitor_down(v_gmA); f_cf_monitor_down(v_mw); } /** * @desc IMS network supports properly application services based on * the example of the CFU supplementary service Loading LibIot/LibIot_Functions.ttcn +0 −3 Original line number Diff line number Diff line Loading @@ -6,9 +6,6 @@ module LibIot_Functions { import from LibCommon_VerdictControl {type FncRetCode;} with { extension "Project:LibCommon" } import from LibUpperTester { template mw_EO_Response; Loading LibIot/LibIot_TestInterface.ttcn +9 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,15 @@ module LibIot_TestInterface { type component IotEquipmentUser extends EquipmentUser { } // TODO commented out due to problems with tools not accepting 'extends' from several components /** // * @desc This component type is used to trigger, stimulate, configure etc // * any equipment related to the test, i.e., EUTs or other, or // * the interconnecting network. To be used as PTC. // */ // type component IotEquipmentUser extends EquipmentUser, OracleClient { // } }// end group abstractTestComponents group portDefinitions { Loading Loading
AtsImsIot/AtsImsIot_Behavior.ttcn +87 −0 Original line number Diff line number Diff line Loading @@ -841,5 +841,92 @@ group checksTC_IMS_0005 { } // end group group checksTC_IMS_0008 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5034_01_gm( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_REGISTER_Request_Base)}, {}, "TP_IMS_5034_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_5134_01_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator return Request { // TODO Get IBPC_SIP_URI of IMS A var charstring v_IBPC := "IBPC_SIP_URI of IMS A"; //f_GetEUTAddress(PX_EUT_A); var SipMessage v_sip; p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5134_01_mw(v_IBPC))}, {mw_SipRequest(mw_REGISTER_Request_Base)}, "TP_IMS_5134_01", "first REGISTER request", 0, false ) ); p_monitorCompRef.done; // fetch second register p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5134_01_mw(v_IBPC))}, {mw_SipRequest(mw_REGISTER_Request_Base)}, "TP_IMS_5134_01", "first REGISTER request", 1, // (ignore 401 Unauthorized) true ) ); p_monitorCompRef.done; f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); return v_sip.request; } /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5405_01_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator return Request { var SipMessage v_sip; p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5405_01_mw)}, {mw_SipRequest(mw_SUBSCRIBE_Request_Base)}, "TP_IMS_5405_01", "SUBSCRIBE request", 1, // ignore 200 Ok true ) ); p_monitorCompRef.done; f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); return v_sip.request; } } // group } // end group }// end module No newline at end of file
AtsImsIot/AtsImsIot_Templates.ttcn +35 −11 Original line number Diff line number Diff line Loading @@ -48,9 +48,10 @@ module AtsImsIot_Templates { * * @desc REGISTER Request containing secuity client header. */ // template REGISTER_Request mdw_TP_IMS_5011_01_gm modifies mw_REGISTER_Request_Base := { template REGISTER_Request mdw_TP_IMS_5011_01_gm modifies mw_REGISTER_Request_Base := { msgHeader := ? msgHeader := { securityClient := ? } } Loading @@ -58,7 +59,6 @@ module AtsImsIot_Templates { * * @desc REGISTER Request checking TP_IMS_5011_01. */ // template REGISTER_Request mdw_TP_IMS_5011_01_mw ( charstring p_EUTHostname ) modifies mw_REGISTER_Request_Base := { template REGISTER_Request mdw_TP_IMS_5011_01_mw ( charstring p_EUTHostname ) modifies mw_REGISTER_Request_Base := { msgHeader := { path := mw_PathDef (p_EUTHostname), Loading @@ -75,6 +75,15 @@ module AtsImsIot_Templates { pVisitedNetworkID := mw_PVisitedNetworkIDAny } } /** * * @desc REGISTER Request checking TP_IMS_5134_01. */ template REGISTER_Request mdw_TP_IMS_5134_01_mw ( charstring p_EUTHostname ) modifies mw_REGISTER_Request_Base := { msgHeader := { path := mw_PathDef (p_EUTHostname) } } /** * Loading Loading @@ -136,7 +145,6 @@ module AtsImsIot_Templates { * * @desc SUBSCRIBE checking TP_IMS_5044_01. */ // template SUBSCRIBE_Request mdw_TP_IMS_5044_01_mw(template SipUrl p_eutAUri, template SipUrl p_eutBUri) template SUBSCRIBE_Request mdw_TP_IMS_5044_01_mw(template SipUrl p_eutAUri, template SipUrl p_eutBUri, template charstring p_EUTB_PublicId Loading @@ -161,6 +169,22 @@ module AtsImsIot_Templates { } } template SUBSCRIBE_Request mdw_TP_IMS_5405_01_mw modifies mw_SUBSCRIBE_Request_Base := { requestLine := { method := SUBSCRIBE_E, requestUri := ?, sipVersion := c_sipNameVersion }, msgHeader := { via := mw_Via (?), // TODO recordRoute := ?, // TODO route := ?, // TODO pChargingVector := omit } } template Response mw_200OK_Base modifies m_Response_Dummy := Loading Loading @@ -340,11 +364,11 @@ module AtsImsIot_Templates { group AuxiliaryInformationElementTemplates { template Credentials mw_credentialIntegrityYes := { otherResponse := {authScheme := "IntegrityYes", authParams := *} // TODO } otherResponse := {authScheme := ?, authParams := { {"integrity-protected", "yes"},*} // TODO }} template Credentials mw_credentialIntegrityNo := { otherResponse := {authScheme := "IntegrityNo", authParams := *} // TODO } otherResponse := {authScheme := ?, authParams := { {"integrity-protected", "no"},*} // TODO }} } //end group Loading
AtsImsIot/AtsImsIot_TestCases.ttcn +39 −1 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ module AtsImsIot_TestCases { import from LibIot_TestInterface {type IotEquipmentUser;} import from LibIot_TestConfiguration { function f_cf_create_IotEquipmentUser; } Loading Loading @@ -372,6 +373,43 @@ module AtsImsIot_TestCases { f_cf_monitor_down(v_mw); } /** * @desc * First time registration in a visited IMS network with topology hiding. * (TD_IMS_0008 in ETSI TS 186 011-2 V2.3.1 cause 4.5.2.9) */ testcase TC_IMS_0008() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B); var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A); var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw); // map/connect component ports f_cf_user_up(v_ueB); f_cf_monitor_up(v_gmA); f_cf_monitor_up(v_mw); //TODO Configure IMS_A 'for topology hiding'' // test body f_mtc_userTriggerRegistration(v_ueB, f_getAnyValidUser(PX_EUT_B)); f_mtc_check_TP_IMS_5011_01_gm(v_gmA); f_mtc_check_TP_IMS_5134_01_mw(v_mw); // Check1 f_mtc_check_TP_IMS_5405_01_mw(v_mw); // Check2 f_mtc_userCheckRegistration(v_ueB, f_getAnyValidUser(PX_EUT_B)); // postamble f_PO_user_home_deregistration(v_ueB); //unmap/disconnet component ports f_cf_user_down(v_ueB); f_cf_monitor_down(v_gmA); f_cf_monitor_down(v_mw); } /** * @desc IMS network supports properly application services based on * the example of the CFU supplementary service Loading
LibIot/LibIot_Functions.ttcn +0 −3 Original line number Diff line number Diff line Loading @@ -6,9 +6,6 @@ module LibIot_Functions { import from LibCommon_VerdictControl {type FncRetCode;} with { extension "Project:LibCommon" } import from LibUpperTester { template mw_EO_Response; Loading
LibIot/LibIot_TestInterface.ttcn +9 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,15 @@ module LibIot_TestInterface { type component IotEquipmentUser extends EquipmentUser { } // TODO commented out due to problems with tools not accepting 'extends' from several components /** // * @desc This component type is used to trigger, stimulate, configure etc // * any equipment related to the test, i.e., EUTs or other, or // * the interconnecting network. To be used as PTC. // */ // type component IotEquipmentUser extends EquipmentUser, OracleClient { // } }// end group abstractTestComponents group portDefinitions { Loading