Loading AtsImsIot/AtsImsIot_Behavior.ttcn +250 −27 Original line number Diff line number Diff line Loading @@ -20,9 +20,10 @@ module AtsImsIot_Behavior { import from LibIot_TypesAndValues {type DefaultList;} import from LibSip_SIPTypesAndValues { type Request, Response, CallId, SipUrl; } import from LibSip_SIPTypesAndValues all; // import from LibSip_SIPTypesAndValues { // type Request, Response, CallId, SipUrl; // } import from LibSip_Templates all; Loading Loading @@ -206,7 +207,7 @@ module AtsImsIot_Behavior { group checks { group checksTC_IMS_0001 { group checksTC_IMS_MESS_0001{ /** * @desc Loading Loading @@ -248,7 +249,7 @@ group checksTC_IMS_0001 { } } // group group checksTC_IMS_0002 { group checksTC_IMS_REG_0001 { /** * @desc Starts monitor component behavior for TP_IMS_5011_01 * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -277,7 +278,7 @@ group checksTC_IMS_0002 { function f_mtc_check_TP_IMS_5011_01_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator return Request { var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); var charstring v_EUT_A_Addr := f_GetEUTPcscfAddress(PX_EUT_A); var SipMessage v_sip; p_monitorCompRef.start( f_imsIot_receive( Loading @@ -301,7 +302,7 @@ group checksTC_IMS_0002 { function f_mtc_check_TP_IMS_5011_02_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator return Request{ var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); var charstring v_EUT_A_Addr := f_GetEUTPcscfAddress(PX_EUT_A); var SipMessage v_sip; p_monitorCompRef.start( f_imsIot_receive( Loading @@ -326,7 +327,7 @@ group checksTC_IMS_0002 { function f_mtc_check_TP_IMS_5092_01_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator return Response { var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTAddress(PX_EUT_B)); var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B)); var SipMessage v_sip; p_monitorCompRef.start( f_imsIot_receive( Loading Loading @@ -379,8 +380,8 @@ group checksTC_IMS_0002 { ) runs on ImsTestCoordinator return Request { 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 template SipUrl v_eutAUri := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A)); var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTPublicId(PX_EUT_B)); var SipMessage v_sip; var charstring v_Epires200OK; var charstring v_EpiresSubscribe; Loading @@ -402,7 +403,7 @@ group checksTC_IMS_0002 { v_Epires200OK := p_200OK.msgHeader.expires.deltaSec; v_EpiresSubscribe := v_sip.request.msgHeader.expires.deltaSec; if (char2int(v_EpiresSubscribe) <= char2int(v_Epires200OK)) { setverdict(fail); setverdict(fail); // TODO use oracle functions for vericts } return v_sip.request; } Loading Loading @@ -436,7 +437,7 @@ group checksTC_IMS_0002 { v_Epires200OK := v_sip.response.msgHeader.expires.deltaSec; v_EpiresSubscribe := p_Subscribe.msgHeader.expires.deltaSec; if (char2int(v_EpiresSubscribe) >= char2int(v_Epires200OK)) { setverdict(fail); setverdict(fail); // TODO use oracle functions for verdicts } Loading @@ -445,7 +446,7 @@ group checksTC_IMS_0002 { } // group group checksTC_IMS_0003{ group checksTC_IMS_REG_0002{ /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -477,7 +478,7 @@ group checksTC_IMS_0003{ var SipMessage v_sip; //Get first Register var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); //var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); var Request v_RegisterStep4, v_RegisterStep2; p_monitorCompRef.start( f_imsIot_receive( Loading Loading @@ -514,7 +515,7 @@ group checksTC_IMS_0003{ } // group group checksTC_IMS_0003H{ group checksTC_IMS_REG_0002H{ /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -546,7 +547,7 @@ group checksTC_IMS_0003H{ var SipMessage v_sip; //Get first Register var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); //var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); var Request v_RegisterStep4, v_RegisterStep2; p_monitorCompRef.start( f_imsIot_receive( Loading Loading @@ -580,17 +581,17 @@ group checksTC_IMS_0003H{ // another entrypoint of IMS-B if (match (v_RegisterStep4.msgHeader, v_RegisterStep2.msgHeader)){ // Identical set of headers setverdict(pass); setverdict(pass); // TODO use oracle functions for verdicts } else { // Some headers differ setverdict(fail); setverdict(fail); // TODO use oracle functions for verdicts } if (match (v_RegisterStep4.requestLine, v_RegisterStep4.requestLine)){ // IMS-A used same entrypoint setverdict(fail); setverdict(fail); // TODO use oracle functions for verdicts } else { // IMS-A used a different entrypoint setverdict(pass); setverdict(pass); // TODO use oracle functions for verdicts } v_RegisterStep4 := v_sip.request; Loading @@ -599,7 +600,7 @@ group checksTC_IMS_0003H{ } // group group checksTC_IMS_0004{ group checksTC_IMS_REG_0003{ /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -648,7 +649,7 @@ group checksTC_IMS_0004{ } // group group checksTC_IMS_0004H{ group checksTC_IMS_REG_0003H{ /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -697,7 +698,7 @@ group checksTC_IMS_0004H{ } // group group checksTC_IMS_0005 { group checksTC_IMS_REG_0004 { /** * @desc Starts monitor component behavior for TP_IMS_5088_01 (gm) Loading Loading @@ -742,7 +743,7 @@ group checksTC_IMS_0005 { } } // group group checksTC_IMS_0006{ group checksTC_IMS_REG_0005{ /** * @desc Starts monitor component behavior for TP_IMS_5093_01 (mw) * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -790,7 +791,7 @@ group checksTC_IMS_0005 { p_monitorCompRef.done; } } // end group group checksTC_IMS_0007{ group checksTC_IMS_REG_0006{ /** * @desc Starts monitor component behavior for TP_IMS_5094_01 (mw) Loading Loading @@ -841,7 +842,7 @@ group checksTC_IMS_0005 { } // end group group checksTC_IMS_0008 { group checksTC_IMS_REG_0007 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -926,6 +927,228 @@ group checksTC_IMS_0008 { } } // group group checksTC_IMS_SS_0007 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5046_01_gm( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_INVITE_Request_Base)}, {}, "TP_IMS_5046_01", "INVITE request", 0, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5046_01_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { var template SipUrl v_pcscfEutAUrl := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A)); var SipMessage v_sip; var Route v_Route; var template Route vt_pcscfRoute := { fieldName := ROUTE_E, routeBody := {mw_routeBody(v_pcscfEutAUrl), *} }; var Via v_Via; var template Via vt_pcscfVia := { fieldName := VIA_E, viaBody := {mw_ViaBody_interface(v_pcscfEutAUrl.hostPort), *} }; p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5046_01_mw(v_pcscfEutAUrl))}, {}, "TP_IMS_5046_01", "INVITE request", 0, true ) ); p_monitorCompRef.done; f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); v_Route := v_sip.request.msgHeader.route; v_Via := v_sip.request.msgHeader.via; // Check Route header if (match(v_Route, vt_pcscfRoute)) { // TODO use oracle functions for verdicts setverdict(fail); // Route header shall not have P-CSCF of IMS A } else { // TODO use oracle functions for verdicts setverdict(pass); } // Check Via header if (match(v_Via, vt_pcscfVia)) { // TODO use oracle functions for verdicts setverdict(pass); } else { // TODO use oracle functions for verdicts setverdict(fail); } } // /** // * @desc Starts monitor component behavior for TP_IMS_5011_02 // * @param p_monitorCompRef Reference to monitor component // */ // function f_mtc_check_TP_IMS_5011_02_mw( // ImsInterfaceMonitor p_monitorCompRef // ) runs on ImsTestCoordinator return Request{ // var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); // var SipMessage v_sip; // p_monitorCompRef.start( // f_imsIot_receive( // {mw_SipRequest(mdw_TP_IMS_5011_02_mw(v_EUT_A_Addr))}, // {mw_SipRequest(mw_REGISTER_Request_Base)}, // "TP_IMS_5011_02", // "REGISTER request", // 0, // true // ) // ); // p_monitorCompRef.done; // // f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); // return v_sip.request; // } // // /** // * @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( // ImsInterfaceMonitor p_monitorCompRef // ) runs on ImsTestCoordinator return Response { // var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTAddress(PX_EUT_B)); // var SipMessage v_sip; // 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", // "200OK", // 0, // true // ) // ); // p_monitorCompRef.done; // // f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); // return v_sip.response; // } // // // /** // * @desc Starts monitor component behavior for TP_IMS_5089_01 // * @param p_monitorCompRef Reference to monitor component // */ // function f_mtc_check_TP_IMS_5089_01_mw( // ImsInterfaceMonitor p_monitorCompRef // ) runs on ImsTestCoordinator return Response { // var SipMessage v_sip; // p_monitorCompRef.start( // f_imsIot_receive( // {mw_SipResponse(mdw_TP_IMS_5089_01_mw)}, // {mw_SipResponse (mw_401Unauthorized_Base)}, // "TP_IMS_5089_01", // "401 Unauthorized", // 0, // true // ) // ); // p_monitorCompRef.done; // p_monitorCompRef.done; // f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); // return v_sip.response; // } // // // /** // * @desc Starts monitor component behavior for TP_IMS_5011_02 // * @param p_monitorCompRef Reference to monitor component // */ // function f_mtc_check_TP_IMS_5044_01_mw( // ImsInterfaceMonitor p_monitorCompRef, Response p_200OK // ) runs on ImsTestCoordinator return Request // { // 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 SipMessage v_sip; // var charstring v_Epires200OK; // var charstring v_EpiresSubscribe; // 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", // "SUBSCRIBE request", // 0, // true // ) // ); // p_monitorCompRef.done; // // 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" // v_Epires200OK := p_200OK.msgHeader.expires.deltaSec; // 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( // ImsInterfaceMonitor p_monitorCompRef, Request p_Subscribe // ) runs on ImsTestCoordinator return Response // { // var SipMessage v_sip; // var charstring v_Epires200OK; // var charstring v_EpiresSubscribe; // 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; // // 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" // v_Epires200OK := v_sip.response.msgHeader.expires.deltaSec; // v_EpiresSubscribe := p_Subscribe.msgHeader.expires.deltaSec; // if (char2int(v_EpiresSubscribe) >= char2int(v_Epires200OK)) { // setverdict(fail); // } // // // return v_sip.response; // } } // group } // end group Loading AtsImsIot/AtsImsIot_Functions.ttcn +31 −1 Original line number Diff line number Diff line Loading @@ -57,6 +57,23 @@ module AtsImsIot_Functions { return v_status; } /** * @desc * Starts user component behavior for initiating a call * @param p_userCompRef Reference to IMS UE user component * @param p_calledParty ImsUserInfo of called party * @return * true in case of successfull execution of the trigger command * otherwise false */ function f_mtc_userInitiateCall(EquipmentUser p_userCompRef, ImsUserInfo p_calledParty) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Starts user component behaviour for registration from test coordinator * @param p_userCompRef Reference to IMS UE user component Loading Loading @@ -228,10 +245,23 @@ module AtsImsIot_Functions { return v_status; } function f_GetEUTAddress(integer p_ProductIdx) return charstring { /** * @desc Get the S-CSCF FQN address of referenced EUT */ function f_GetEUTScscfAddress(integer p_ProductIdx) return charstring { // TODO return "TODO"; } /** * @desc Get the P-CSCF FQN address of referenced EUT */ function f_GetEUTPcscfAddress(integer p_ProductIdx) return charstring { // TODO return "TODO"; } /** * @desc Get the Public Id of referenced EUT */ function f_GetEUTPublicId(integer p_ProductIdx) return charstring { // TODO return "TODO"; Loading AtsImsIot/AtsImsIot_Templates.ttcn +41 −14 Original line number Diff line number Diff line Loading @@ -14,7 +14,6 @@ module AtsImsIot_Templates { SetFilterRsp, Status; } import from AtsImsIot_TypesAndValues {type SipMessage;} import from LibSip_SIPTypesAndValues all; Loading Loading @@ -84,9 +83,9 @@ module AtsImsIot_Templates { path := mw_PathDef (p_EUTHostname), require := mw_Require ({"path", *}), pChargingVector := mw_PChargingVector({ {id := "icid", paramValue := *}, {id := "orig", paramValue := *}, {id := "term", paramValue := *}, {id := "icid-value", paramValue := *}, {id := "orig-ioi", paramValue := *}, {id := "term-ioi", paramValue := *}, * }), authorization := m_Authorization(mw_credentialIntegrityNo), Loading Loading @@ -115,7 +114,7 @@ module AtsImsIot_Templates { path := mw_PathDef (p_EUTHostname), require := mw_Require ({"path", *}), pChargingVector := mw_PChargingVector({ {id := "icid", paramValue := *}, {id := "icid-value", paramValue := *}, {id := "orig-ioi", paramValue := *}, {id := "term-ioi", paramValue := *}, * Loading Loading @@ -183,7 +182,7 @@ module AtsImsIot_Templates { expires := ?, // to be checked outside the template pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(p_eutAUri)), pChargingVector := mw_PChargingVector({ {id := "icid", paramValue := *}, {id := "icid-value", paramValue := *}, * }) } Loading @@ -205,6 +204,34 @@ module AtsImsIot_Templates { } } /** * * @desc INVITE Request checking TP_IMS_5046_01 */ template INVITE_Request mdw_TP_IMS_5046_01_mw (template SipUrl p_pcscfEutAUri) modifies mw_INVITE_Request_Base := { msgHeader := { route := { fieldName := ROUTE_E, routeBody := ? // complement (mw_routeBody(p_pcscfEutAUri)) // to be checked outside template }, via := { fieldName := VIA_E, viaBody := ? // superset(mw_ViaBody_interface(p_pcscfEutAUri.hostPort)) // to be checked outside template }, recordRoute := { fieldName := RECORD_ROUTE_E, routeBody := {mw_routeBody(p_pcscfEutAUri), *} }, pPreferredID := omit, pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(p_pcscfEutAUri)), pChargingVector := mw_PChargingVector({ {id := "icid-value", paramValue := *}, * }) } } template Response mw_200OK_Base modifies m_Response_Dummy := Loading AtsImsIot/AtsImsIot_TestCases.ttcn +47 −30 File changed.Preview size limit exceeded, changes collapsed. Show changes TC-list.xls −6 KiB (38.5 KiB) File changed.No diff preview for this file type. View original file View changed file Loading
AtsImsIot/AtsImsIot_Behavior.ttcn +250 −27 Original line number Diff line number Diff line Loading @@ -20,9 +20,10 @@ module AtsImsIot_Behavior { import from LibIot_TypesAndValues {type DefaultList;} import from LibSip_SIPTypesAndValues { type Request, Response, CallId, SipUrl; } import from LibSip_SIPTypesAndValues all; // import from LibSip_SIPTypesAndValues { // type Request, Response, CallId, SipUrl; // } import from LibSip_Templates all; Loading Loading @@ -206,7 +207,7 @@ module AtsImsIot_Behavior { group checks { group checksTC_IMS_0001 { group checksTC_IMS_MESS_0001{ /** * @desc Loading Loading @@ -248,7 +249,7 @@ group checksTC_IMS_0001 { } } // group group checksTC_IMS_0002 { group checksTC_IMS_REG_0001 { /** * @desc Starts monitor component behavior for TP_IMS_5011_01 * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -277,7 +278,7 @@ group checksTC_IMS_0002 { function f_mtc_check_TP_IMS_5011_01_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator return Request { var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); var charstring v_EUT_A_Addr := f_GetEUTPcscfAddress(PX_EUT_A); var SipMessage v_sip; p_monitorCompRef.start( f_imsIot_receive( Loading @@ -301,7 +302,7 @@ group checksTC_IMS_0002 { function f_mtc_check_TP_IMS_5011_02_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator return Request{ var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); var charstring v_EUT_A_Addr := f_GetEUTPcscfAddress(PX_EUT_A); var SipMessage v_sip; p_monitorCompRef.start( f_imsIot_receive( Loading @@ -326,7 +327,7 @@ group checksTC_IMS_0002 { function f_mtc_check_TP_IMS_5092_01_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator return Response { var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTAddress(PX_EUT_B)); var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B)); var SipMessage v_sip; p_monitorCompRef.start( f_imsIot_receive( Loading Loading @@ -379,8 +380,8 @@ group checksTC_IMS_0002 { ) runs on ImsTestCoordinator return Request { 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 template SipUrl v_eutAUri := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A)); var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTPublicId(PX_EUT_B)); var SipMessage v_sip; var charstring v_Epires200OK; var charstring v_EpiresSubscribe; Loading @@ -402,7 +403,7 @@ group checksTC_IMS_0002 { v_Epires200OK := p_200OK.msgHeader.expires.deltaSec; v_EpiresSubscribe := v_sip.request.msgHeader.expires.deltaSec; if (char2int(v_EpiresSubscribe) <= char2int(v_Epires200OK)) { setverdict(fail); setverdict(fail); // TODO use oracle functions for vericts } return v_sip.request; } Loading Loading @@ -436,7 +437,7 @@ group checksTC_IMS_0002 { v_Epires200OK := v_sip.response.msgHeader.expires.deltaSec; v_EpiresSubscribe := p_Subscribe.msgHeader.expires.deltaSec; if (char2int(v_EpiresSubscribe) >= char2int(v_Epires200OK)) { setverdict(fail); setverdict(fail); // TODO use oracle functions for verdicts } Loading @@ -445,7 +446,7 @@ group checksTC_IMS_0002 { } // group group checksTC_IMS_0003{ group checksTC_IMS_REG_0002{ /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -477,7 +478,7 @@ group checksTC_IMS_0003{ var SipMessage v_sip; //Get first Register var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); //var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); var Request v_RegisterStep4, v_RegisterStep2; p_monitorCompRef.start( f_imsIot_receive( Loading Loading @@ -514,7 +515,7 @@ group checksTC_IMS_0003{ } // group group checksTC_IMS_0003H{ group checksTC_IMS_REG_0002H{ /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -546,7 +547,7 @@ group checksTC_IMS_0003H{ var SipMessage v_sip; //Get first Register var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); //var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); var Request v_RegisterStep4, v_RegisterStep2; p_monitorCompRef.start( f_imsIot_receive( Loading Loading @@ -580,17 +581,17 @@ group checksTC_IMS_0003H{ // another entrypoint of IMS-B if (match (v_RegisterStep4.msgHeader, v_RegisterStep2.msgHeader)){ // Identical set of headers setverdict(pass); setverdict(pass); // TODO use oracle functions for verdicts } else { // Some headers differ setverdict(fail); setverdict(fail); // TODO use oracle functions for verdicts } if (match (v_RegisterStep4.requestLine, v_RegisterStep4.requestLine)){ // IMS-A used same entrypoint setverdict(fail); setverdict(fail); // TODO use oracle functions for verdicts } else { // IMS-A used a different entrypoint setverdict(pass); setverdict(pass); // TODO use oracle functions for verdicts } v_RegisterStep4 := v_sip.request; Loading @@ -599,7 +600,7 @@ group checksTC_IMS_0003H{ } // group group checksTC_IMS_0004{ group checksTC_IMS_REG_0003{ /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -648,7 +649,7 @@ group checksTC_IMS_0004{ } // group group checksTC_IMS_0004H{ group checksTC_IMS_REG_0003H{ /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -697,7 +698,7 @@ group checksTC_IMS_0004H{ } // group group checksTC_IMS_0005 { group checksTC_IMS_REG_0004 { /** * @desc Starts monitor component behavior for TP_IMS_5088_01 (gm) Loading Loading @@ -742,7 +743,7 @@ group checksTC_IMS_0005 { } } // group group checksTC_IMS_0006{ group checksTC_IMS_REG_0005{ /** * @desc Starts monitor component behavior for TP_IMS_5093_01 (mw) * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -790,7 +791,7 @@ group checksTC_IMS_0005 { p_monitorCompRef.done; } } // end group group checksTC_IMS_0007{ group checksTC_IMS_REG_0006{ /** * @desc Starts monitor component behavior for TP_IMS_5094_01 (mw) Loading Loading @@ -841,7 +842,7 @@ group checksTC_IMS_0005 { } // end group group checksTC_IMS_0008 { group checksTC_IMS_REG_0007 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component Loading Loading @@ -926,6 +927,228 @@ group checksTC_IMS_0008 { } } // group group checksTC_IMS_SS_0007 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5046_01_gm( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_INVITE_Request_Base)}, {}, "TP_IMS_5046_01", "INVITE request", 0, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5046_01_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { var template SipUrl v_pcscfEutAUrl := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_A)); var SipMessage v_sip; var Route v_Route; var template Route vt_pcscfRoute := { fieldName := ROUTE_E, routeBody := {mw_routeBody(v_pcscfEutAUrl), *} }; var Via v_Via; var template Via vt_pcscfVia := { fieldName := VIA_E, viaBody := {mw_ViaBody_interface(v_pcscfEutAUrl.hostPort), *} }; p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5046_01_mw(v_pcscfEutAUrl))}, {}, "TP_IMS_5046_01", "INVITE request", 0, true ) ); p_monitorCompRef.done; f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); v_Route := v_sip.request.msgHeader.route; v_Via := v_sip.request.msgHeader.via; // Check Route header if (match(v_Route, vt_pcscfRoute)) { // TODO use oracle functions for verdicts setverdict(fail); // Route header shall not have P-CSCF of IMS A } else { // TODO use oracle functions for verdicts setverdict(pass); } // Check Via header if (match(v_Via, vt_pcscfVia)) { // TODO use oracle functions for verdicts setverdict(pass); } else { // TODO use oracle functions for verdicts setverdict(fail); } } // /** // * @desc Starts monitor component behavior for TP_IMS_5011_02 // * @param p_monitorCompRef Reference to monitor component // */ // function f_mtc_check_TP_IMS_5011_02_mw( // ImsInterfaceMonitor p_monitorCompRef // ) runs on ImsTestCoordinator return Request{ // var charstring v_EUT_A_Addr := f_GetEUTAddress(PX_EUT_A); // var SipMessage v_sip; // p_monitorCompRef.start( // f_imsIot_receive( // {mw_SipRequest(mdw_TP_IMS_5011_02_mw(v_EUT_A_Addr))}, // {mw_SipRequest(mw_REGISTER_Request_Base)}, // "TP_IMS_5011_02", // "REGISTER request", // 0, // true // ) // ); // p_monitorCompRef.done; // // f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); // return v_sip.request; // } // // /** // * @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( // ImsInterfaceMonitor p_monitorCompRef // ) runs on ImsTestCoordinator return Response { // var template SipUrl v_eutBUri := mw_SipUrl_Host(f_GetEUTAddress(PX_EUT_B)); // var SipMessage v_sip; // 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", // "200OK", // 0, // true // ) // ); // p_monitorCompRef.done; // // f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); // return v_sip.response; // } // // // /** // * @desc Starts monitor component behavior for TP_IMS_5089_01 // * @param p_monitorCompRef Reference to monitor component // */ // function f_mtc_check_TP_IMS_5089_01_mw( // ImsInterfaceMonitor p_monitorCompRef // ) runs on ImsTestCoordinator return Response { // var SipMessage v_sip; // p_monitorCompRef.start( // f_imsIot_receive( // {mw_SipResponse(mdw_TP_IMS_5089_01_mw)}, // {mw_SipResponse (mw_401Unauthorized_Base)}, // "TP_IMS_5089_01", // "401 Unauthorized", // 0, // true // ) // ); // p_monitorCompRef.done; // p_monitorCompRef.done; // f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); // return v_sip.response; // } // // // /** // * @desc Starts monitor component behavior for TP_IMS_5011_02 // * @param p_monitorCompRef Reference to monitor component // */ // function f_mtc_check_TP_IMS_5044_01_mw( // ImsInterfaceMonitor p_monitorCompRef, Response p_200OK // ) runs on ImsTestCoordinator return Request // { // 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 SipMessage v_sip; // var charstring v_Epires200OK; // var charstring v_EpiresSubscribe; // 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", // "SUBSCRIBE request", // 0, // true // ) // ); // p_monitorCompRef.done; // // 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" // v_Epires200OK := p_200OK.msgHeader.expires.deltaSec; // 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( // ImsInterfaceMonitor p_monitorCompRef, Request p_Subscribe // ) runs on ImsTestCoordinator return Response // { // var SipMessage v_sip; // var charstring v_Epires200OK; // var charstring v_EpiresSubscribe; // 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; // // 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" // v_Epires200OK := v_sip.response.msgHeader.expires.deltaSec; // v_EpiresSubscribe := p_Subscribe.msgHeader.expires.deltaSec; // if (char2int(v_EpiresSubscribe) >= char2int(v_Epires200OK)) { // setverdict(fail); // } // // // return v_sip.response; // } } // group } // end group Loading
AtsImsIot/AtsImsIot_Functions.ttcn +31 −1 Original line number Diff line number Diff line Loading @@ -57,6 +57,23 @@ module AtsImsIot_Functions { return v_status; } /** * @desc * Starts user component behavior for initiating a call * @param p_userCompRef Reference to IMS UE user component * @param p_calledParty ImsUserInfo of called party * @return * true in case of successfull execution of the trigger command * otherwise false */ function f_mtc_userInitiateCall(EquipmentUser p_userCompRef, ImsUserInfo p_calledParty) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Starts user component behaviour for registration from test coordinator * @param p_userCompRef Reference to IMS UE user component Loading Loading @@ -228,10 +245,23 @@ module AtsImsIot_Functions { return v_status; } function f_GetEUTAddress(integer p_ProductIdx) return charstring { /** * @desc Get the S-CSCF FQN address of referenced EUT */ function f_GetEUTScscfAddress(integer p_ProductIdx) return charstring { // TODO return "TODO"; } /** * @desc Get the P-CSCF FQN address of referenced EUT */ function f_GetEUTPcscfAddress(integer p_ProductIdx) return charstring { // TODO return "TODO"; } /** * @desc Get the Public Id of referenced EUT */ function f_GetEUTPublicId(integer p_ProductIdx) return charstring { // TODO return "TODO"; Loading
AtsImsIot/AtsImsIot_Templates.ttcn +41 −14 Original line number Diff line number Diff line Loading @@ -14,7 +14,6 @@ module AtsImsIot_Templates { SetFilterRsp, Status; } import from AtsImsIot_TypesAndValues {type SipMessage;} import from LibSip_SIPTypesAndValues all; Loading Loading @@ -84,9 +83,9 @@ module AtsImsIot_Templates { path := mw_PathDef (p_EUTHostname), require := mw_Require ({"path", *}), pChargingVector := mw_PChargingVector({ {id := "icid", paramValue := *}, {id := "orig", paramValue := *}, {id := "term", paramValue := *}, {id := "icid-value", paramValue := *}, {id := "orig-ioi", paramValue := *}, {id := "term-ioi", paramValue := *}, * }), authorization := m_Authorization(mw_credentialIntegrityNo), Loading Loading @@ -115,7 +114,7 @@ module AtsImsIot_Templates { path := mw_PathDef (p_EUTHostname), require := mw_Require ({"path", *}), pChargingVector := mw_PChargingVector({ {id := "icid", paramValue := *}, {id := "icid-value", paramValue := *}, {id := "orig-ioi", paramValue := *}, {id := "term-ioi", paramValue := *}, * Loading Loading @@ -183,7 +182,7 @@ module AtsImsIot_Templates { expires := ?, // to be checked outside the template pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(p_eutAUri)), pChargingVector := mw_PChargingVector({ {id := "icid", paramValue := *}, {id := "icid-value", paramValue := *}, * }) } Loading @@ -205,6 +204,34 @@ module AtsImsIot_Templates { } } /** * * @desc INVITE Request checking TP_IMS_5046_01 */ template INVITE_Request mdw_TP_IMS_5046_01_mw (template SipUrl p_pcscfEutAUri) modifies mw_INVITE_Request_Base := { msgHeader := { route := { fieldName := ROUTE_E, routeBody := ? // complement (mw_routeBody(p_pcscfEutAUri)) // to be checked outside template }, via := { fieldName := VIA_E, viaBody := ? // superset(mw_ViaBody_interface(p_pcscfEutAUri.hostPort)) // to be checked outside template }, recordRoute := { fieldName := RECORD_ROUTE_E, routeBody := {mw_routeBody(p_pcscfEutAUri), *} }, pPreferredID := omit, pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(p_pcscfEutAUri)), pChargingVector := mw_PChargingVector({ {id := "icid-value", paramValue := *}, * }) } } template Response mw_200OK_Base modifies m_Response_Dummy := Loading
AtsImsIot/AtsImsIot_TestCases.ttcn +47 −30 File changed.Preview size limit exceeded, changes collapsed. Show changes
TC-list.xls −6 KiB (38.5 KiB) File changed.No diff preview for this file type. View original file View changed file