Loading AtsImsIot/AtsImsIot_Behavior.ttcn +60 −30 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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( Loading @@ -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; } /** Loading @@ -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( Loading @@ -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; } Loading @@ -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; } Loading @@ -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; } Loading AtsImsIot/AtsImsIot_Templates.ttcn +9 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,8 @@ module AtsImsIot_Templates { } } template Response mw_200OK_Base modifies m_Response_Dummy := { statusLine := c_statusLine200, Loading @@ -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, Loading AtsImsIot/AtsImsIot_TestCases.ttcn +44 −5 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
AtsImsIot/AtsImsIot_Behavior.ttcn +60 −30 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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( Loading @@ -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; } /** Loading @@ -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( Loading @@ -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; } Loading @@ -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; } Loading @@ -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; } Loading
AtsImsIot/AtsImsIot_Templates.ttcn +9 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,8 @@ module AtsImsIot_Templates { } } template Response mw_200OK_Base modifies m_Response_Dummy := { statusLine := c_statusLine200, Loading @@ -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, Loading
AtsImsIot/AtsImsIot_TestCases.ttcn +44 −5 Original line number Diff line number Diff line Loading @@ -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); Loading