Loading AtsImsIot/AtsImsIot_Behavior.ttcn +90 −64 Original line number Diff line number Diff line Loading @@ -1081,8 +1081,8 @@ group checksTC_IMS_REG_0007 { * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5034_01_gm( ImsInterfaceMonitor p_monitorCompRef function f_mtc_check_TP_IMS_5134_01_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( Loading @@ -1090,9 +1090,9 @@ group checksTC_IMS_REG_0007 { {mw_SipRequest(mw_REGISTER_Request_Base)}, {}, {0, omit}, "TP_IMS_5034_01", "TP_IMS_5134_01 (gm)", false, false p_checkMessage ) ); p_monitorCompRef.done; Loading @@ -1103,11 +1103,9 @@ group checksTC_IMS_REG_0007 { * @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 := {request := valueof(m_INVITE_Dummy)}; ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { var charstring v_IBPC := f_GetEUTIbcfAddress(PX_EUT_A); p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5134_01_mw(v_IBPC))}, Loading @@ -1115,7 +1113,7 @@ group checksTC_IMS_REG_0007 { {0, omit}, "TP_IMS_5134_01", false, false p_checkMessage ) ); p_monitorCompRef.done; Loading @@ -1124,40 +1122,68 @@ group checksTC_IMS_REG_0007 { f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5134_01_mw(v_IBPC))}, {mw_SipRequest(mw_REGISTER_Request_Base)}, {1, mw_SipResponse(mw_Response_Base(c_statusLine401, ?, ?))}, // (ignore 401 Unauthorized) {0, omit}, "TP_IMS_5134_01", true, false p_checkMessage ) ); 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_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_SUBSCRIBE_Request_Base)}, {}, {0, omit}, "TP_IMS_5405_01 (gm)", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @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 := {request := valueof(m_INVITE_Dummy)}; ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { // check 1st SUBSCRIBE (step 10) p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5405_01_mw)}, {mw_SipRequest(mw_SUBSCRIBE_Request_Base)}, {1, mw_SipResponse(mw_Response_Base(c_statusLine200, ?, ?))}, // ignore 200 Ok {0, omit}, "TP_IMS_5405_01", true, false false, p_checkMessage ) ); p_monitorCompRef.done; // check 2nd SUBSCRIBE (step 15) p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5405_01_mw)}, {mw_SipRequest(mw_SUBSCRIBE_Request_Base)}, {0, omit}, "TP_IMS_5405_01", false, p_checkMessage ) ); p_monitorCompRef.done; f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); return v_sip.request; } } // group Loading AtsImsIot/AtsImsIot_Functions.ttcn +40 −2 Original line number Diff line number Diff line Loading @@ -582,7 +582,7 @@ module AtsImsIot_Functions { var charstring v_domainname; for(var integer i := 0; i < v_size_interfaces; i := i+1) { if (PX_PRODUCTS[p_ProductIdx].monitorInterfaces[i].interfaceName == "Mw"){ if (match(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[i].interfaceName, pattern "[Mm][Ww]")){ v_interface := i; } } Loading Loading @@ -620,7 +620,7 @@ module AtsImsIot_Functions { var charstring v_domainname; for(var integer i := 0; i < v_size_interfaces; i := i+1) { if (PX_PRODUCTS[p_ProductIdx].monitorInterfaces[i].interfaceName == "Gm"){ if (match(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[i].interfaceName, pattern "[Gg][Mm]")){ v_interface := i; } } Loading @@ -644,6 +644,44 @@ module AtsImsIot_Functions { } } /** * @desc Get the IBCF FQDN address of referenced EUT * @return if a IBCF is avaiable, the domainname of the IBCF, * otherwise error_string */ function f_GetEUTIbcfAddress(integer p_ProductIdx) return charstring { // TODO function not tested var integer v_size_interfaces := sizeof(PX_PRODUCTS[p_ProductIdx].monitorInterfaces); var integer v_size_ipinterfaceinfo; var integer v_interface := -1; var integer v_ipinterfaceinfo := -1; var charstring v_domainname; for(var integer i := 0; i < v_size_interfaces; i := i+1) { if (match(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[i].interfaceName, pattern "[Mm][Ww]")){ v_interface := i; } } if (v_interface > -1) { v_size_ipinterfaceinfo := sizeof(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo); for(var integer i := 0; i < v_size_ipinterfaceinfo; i := i+1) { v_domainname := PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo[i].domainName; if (match(substr(v_domainname, 0, 5), pattern "[Ii][Bb][Cc][Ff]")) { v_ipinterfaceinfo := i; } } } else { log ("IBCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."); return "IBCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."; } if (v_ipinterfaceinfo > -1) { return PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo[v_ipinterfaceinfo].domainName; } else { log ("IBCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."); return "IBCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."; } } /** * @desc Get the Public Id of referenced UE * @param p_ProductIdx index of the product the UE belongs to Loading AtsImsIot/AtsImsIot_Templates.ttcn +2 −2 Original line number Diff line number Diff line Loading @@ -258,8 +258,8 @@ module AtsImsIot_Templates { }, msgHeader := { via := mw_Via (?), // TODO recordRoute := ?, // TODO route := ?, // TODO recordRoute := mw_recordroute(?), // @TODO route := mw_route(?), // TODO pChargingVector := omit } } Loading AtsImsIot/AtsImsIot_TestCases_REG.ttcn +9 −7 Original line number Diff line number Diff line Loading @@ -338,21 +338,23 @@ module AtsImsIot_TestCases_REG { 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); var ImsUserInfo v_anyValidUser := f_getAnyValidUser(PX_EUT_B); // map/connect component ports f_cf_user_up(v_ueB); f_cf_roam_reg_up(v_gmA, 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, false); f_mtc_userTriggerRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 1 f_mtc_check_TP_IMS_5134_01_mw(v_mw); // Check1 f_mtc_check_TP_IMS_5405_01_mw(v_mw); // Check2 f_mtc_check_TP_IMS_5134_01_gm(v_gmA, false); // Check1 when f_mtc_check_TP_IMS_5134_01_mw(v_mw, false); // Check1 then f_mtc_userCheckRegistration(v_ueB, f_getAnyValidUser(PX_EUT_B)); f_mtc_check_TP_IMS_5405_01_gm(v_gmA, false); // Check2 when f_mtc_check_TP_IMS_5405_01_mw(v_mw, false); // Check2 then // @TODO mdw_TP_IMS_5405_01_mw needs to be checked f_mtc_userCheckRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 2 // postamble f_PO_user_home_deregistration(v_ueB); Loading Loading
AtsImsIot/AtsImsIot_Behavior.ttcn +90 −64 Original line number Diff line number Diff line Loading @@ -1081,8 +1081,8 @@ group checksTC_IMS_REG_0007 { * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5034_01_gm( ImsInterfaceMonitor p_monitorCompRef function f_mtc_check_TP_IMS_5134_01_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( Loading @@ -1090,9 +1090,9 @@ group checksTC_IMS_REG_0007 { {mw_SipRequest(mw_REGISTER_Request_Base)}, {}, {0, omit}, "TP_IMS_5034_01", "TP_IMS_5134_01 (gm)", false, false p_checkMessage ) ); p_monitorCompRef.done; Loading @@ -1103,11 +1103,9 @@ group checksTC_IMS_REG_0007 { * @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 := {request := valueof(m_INVITE_Dummy)}; ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { var charstring v_IBPC := f_GetEUTIbcfAddress(PX_EUT_A); p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5134_01_mw(v_IBPC))}, Loading @@ -1115,7 +1113,7 @@ group checksTC_IMS_REG_0007 { {0, omit}, "TP_IMS_5134_01", false, false p_checkMessage ) ); p_monitorCompRef.done; Loading @@ -1124,40 +1122,68 @@ group checksTC_IMS_REG_0007 { f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5134_01_mw(v_IBPC))}, {mw_SipRequest(mw_REGISTER_Request_Base)}, {1, mw_SipResponse(mw_Response_Base(c_statusLine401, ?, ?))}, // (ignore 401 Unauthorized) {0, omit}, "TP_IMS_5134_01", true, false p_checkMessage ) ); 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_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_SUBSCRIBE_Request_Base)}, {}, {0, omit}, "TP_IMS_5405_01 (gm)", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @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 := {request := valueof(m_INVITE_Dummy)}; ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { // check 1st SUBSCRIBE (step 10) p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5405_01_mw)}, {mw_SipRequest(mw_SUBSCRIBE_Request_Base)}, {1, mw_SipResponse(mw_Response_Base(c_statusLine200, ?, ?))}, // ignore 200 Ok {0, omit}, "TP_IMS_5405_01", true, false false, p_checkMessage ) ); p_monitorCompRef.done; // check 2nd SUBSCRIBE (step 15) p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5405_01_mw)}, {mw_SipRequest(mw_SUBSCRIBE_Request_Base)}, {0, omit}, "TP_IMS_5405_01", false, p_checkMessage ) ); p_monitorCompRef.done; f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); return v_sip.request; } } // group Loading
AtsImsIot/AtsImsIot_Functions.ttcn +40 −2 Original line number Diff line number Diff line Loading @@ -582,7 +582,7 @@ module AtsImsIot_Functions { var charstring v_domainname; for(var integer i := 0; i < v_size_interfaces; i := i+1) { if (PX_PRODUCTS[p_ProductIdx].monitorInterfaces[i].interfaceName == "Mw"){ if (match(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[i].interfaceName, pattern "[Mm][Ww]")){ v_interface := i; } } Loading Loading @@ -620,7 +620,7 @@ module AtsImsIot_Functions { var charstring v_domainname; for(var integer i := 0; i < v_size_interfaces; i := i+1) { if (PX_PRODUCTS[p_ProductIdx].monitorInterfaces[i].interfaceName == "Gm"){ if (match(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[i].interfaceName, pattern "[Gg][Mm]")){ v_interface := i; } } Loading @@ -644,6 +644,44 @@ module AtsImsIot_Functions { } } /** * @desc Get the IBCF FQDN address of referenced EUT * @return if a IBCF is avaiable, the domainname of the IBCF, * otherwise error_string */ function f_GetEUTIbcfAddress(integer p_ProductIdx) return charstring { // TODO function not tested var integer v_size_interfaces := sizeof(PX_PRODUCTS[p_ProductIdx].monitorInterfaces); var integer v_size_ipinterfaceinfo; var integer v_interface := -1; var integer v_ipinterfaceinfo := -1; var charstring v_domainname; for(var integer i := 0; i < v_size_interfaces; i := i+1) { if (match(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[i].interfaceName, pattern "[Mm][Ww]")){ v_interface := i; } } if (v_interface > -1) { v_size_ipinterfaceinfo := sizeof(PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo); for(var integer i := 0; i < v_size_ipinterfaceinfo; i := i+1) { v_domainname := PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo[i].domainName; if (match(substr(v_domainname, 0, 5), pattern "[Ii][Bb][Cc][Ff]")) { v_ipinterfaceinfo := i; } } } else { log ("IBCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."); return "IBCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."; } if (v_ipinterfaceinfo > -1) { return PX_PRODUCTS[p_ProductIdx].monitorInterfaces[v_interface].interfaceInfo.IpInterfaceInfo[v_ipinterfaceinfo].domainName; } else { log ("IBCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."); return "IBCF of " & PX_PRODUCTS[p_ProductIdx].productName & " not found."; } } /** * @desc Get the Public Id of referenced UE * @param p_ProductIdx index of the product the UE belongs to Loading
AtsImsIot/AtsImsIot_Templates.ttcn +2 −2 Original line number Diff line number Diff line Loading @@ -258,8 +258,8 @@ module AtsImsIot_Templates { }, msgHeader := { via := mw_Via (?), // TODO recordRoute := ?, // TODO route := ?, // TODO recordRoute := mw_recordroute(?), // @TODO route := mw_route(?), // TODO pChargingVector := omit } } Loading
AtsImsIot/AtsImsIot_TestCases_REG.ttcn +9 −7 Original line number Diff line number Diff line Loading @@ -338,21 +338,23 @@ module AtsImsIot_TestCases_REG { 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); var ImsUserInfo v_anyValidUser := f_getAnyValidUser(PX_EUT_B); // map/connect component ports f_cf_user_up(v_ueB); f_cf_roam_reg_up(v_gmA, 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, false); f_mtc_userTriggerRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 1 f_mtc_check_TP_IMS_5134_01_mw(v_mw); // Check1 f_mtc_check_TP_IMS_5405_01_mw(v_mw); // Check2 f_mtc_check_TP_IMS_5134_01_gm(v_gmA, false); // Check1 when f_mtc_check_TP_IMS_5134_01_mw(v_mw, false); // Check1 then f_mtc_userCheckRegistration(v_ueB, f_getAnyValidUser(PX_EUT_B)); f_mtc_check_TP_IMS_5405_01_gm(v_gmA, false); // Check2 when f_mtc_check_TP_IMS_5405_01_mw(v_mw, false); // Check2 then // @TODO mdw_TP_IMS_5405_01_mw needs to be checked f_mtc_userCheckRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 2 // postamble f_PO_user_home_deregistration(v_ueB); Loading