/** * @author STF 370 * @version $Id: $ * @desc This module provides ATS specific test case definitions. */ module AtsImsIot_TestCases_MESS { import from AtsImsIot_Behavior {function all;} import from AtsImsIot_Functions {function all;} import from LibCommon_VerdictControl {type FncRetCode;} import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;} import from LibIms_UpperTester {type ImsUserInfo;} import from LibIot_TestConfiguration { function f_cf_create_IotEquipmentUser; } import from AtsImsIot_TestConfiguration { const all; function all; } import from LibIot_TestInterface {type IotEquipmentUser;} import from AtsImsIot_TestSystem { type ImsInterfaceMonitor, ImsTestCoordinator, IotSystemInterface; } import from AtsImsIot_TestSystem {type CF_INT_CALL;} import from AtsImsIot_Templates all; /** * @desc * IMS network shall support SIP messages greater than 1500 bytes. * (in ETSI TS 186 011-2 V2.3.1 cause 4.5.1.1) */ testcase TC_IMS_MESS_0001() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); 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_ic := f_cf_create_monitor(c_ic); var CF_INT_CALL v_config := {v_gmA, v_ic, omit}; // map/connect component ports f_cf_adapter_up(); f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); // preamble f_cf_int_call_up(v_config); f_PR_user_home_registration(v_ueA, f_getAnyValidUser(PX_EUT_A)); f_PR_user_home_registration(v_ueB, f_getAnyValidUser(PX_EUT_B)); log("**** TC_IMS_MESS_0001: Preamble done. ****"); // test body f_mtc_userSendMessage(v_ueA, f_getMessageBody(1301)); f_mtc_check_TP_IMS_4002_01_gm(v_gmA); f_mtc_check_TP_IMS_4002_01_ic(v_ic); f_mtc_userCheckMessageReceipt(v_ueB); // postabmle f_PO_user_home_deregistration(v_ueA); f_PO_user_home_deregistration(v_ueB); f_cf_int_call_down(v_config); log("**** TC_IMS_MESS_0001: Postamble done. ****"); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_user_down(v_ueB); f_cf_adapter_down(); } /** * @desc * IMS network handles messaging with SIP identity correctly without * topology hiding. (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.1) */ testcase TC_IMS_MESS_0002() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); 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_gmB := f_cf_create_monitor(c_gm_B); var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic); var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB}; // map/connect component ports f_cf_adapter_up(); f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); f_cf_int_call_up(v_config); // preamble f_PR_user_home_registration(v_ueA, f_getSipUserId(PX_EUT_A)); f_PR_user_home_registration(v_ueB, f_getAnyValidUser(PX_EUT_B)); // test body f_mtc_userSendMessage(v_ueA, "test"); f_mtc_check_TP_IMS_5097_05_gm(v_gmA, false); // message not removed from port queue //f_mtc_check_TP_IMS_5097_07_gm(v_gmA, false); // message removed from port queue f_mtc_check_TP_IMS_5097_05_ic(v_ic, false);// message not removed from port queue //f_mtc_check_TP_IMS_5097_07_ic(v_ic, false);// message removed from port queue f_mtc_userCheckMessageReceipt(v_ueB); f_mtc_check_TP_IMS_5117_02_gm(v_gmB, true);// message not removed from port queue f_mtc_check_TP_IMS_5118_01_gm(v_gmB, false);// message removed from port queue f_mtc_check_TP_IMS_5117_02_ic(v_ic, true);// message not removed from port queue f_mtc_check_TP_IMS_5118_01_ic(v_ic, false);// message removed from port queue // postabmle f_PO_user_home_deregistration(v_ueA); f_PO_user_home_deregistration(v_ueB); f_cf_int_call_down(v_config); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_user_down(v_ueB); f_cf_adapter_down(); } /** * @desc * IMS network handles messaging with TEL URI identities correctly * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.2) */ testcase TC_IMS_MESS_0003() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); 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_gmB := f_cf_create_monitor(c_gm_B); var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic); var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB}; // map/connect component ports f_cf_adapter_up(); f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); f_cf_int_call_up(v_config); // preamble f_PR_user_home_registration(v_ueA, f_getTelUserId(PX_EUT_A)); f_PR_user_home_registration(v_ueB, f_getTelUserId(PX_EUT_B)); // test body f_mtc_userSendMessage(v_ueA, "test"); f_mtc_check_TP_IMS_5097_07_gm(v_gmA, false); f_mtc_check_TP_IMS_5097_07_ic(v_ic, false); f_mtc_userCheckMessageReceipt(v_ueB); f_mtc_check_TP_IMS_5117_02_gm(v_gmB, true);// message not removed from port queue f_mtc_check_TP_IMS_5118_01_gm(v_gmB, true);// message not removed from port queue f_mtc_check_TP_IMS_5117_06_gm(v_gmB, false);// message removed from port queue f_mtc_check_TP_IMS_5117_02_ic(v_ic, true);// message not removed from port queue f_mtc_check_TP_IMS_5118_01_ic(v_ic, true);// message not removed from port queue f_mtc_check_TP_IMS_5117_06_ic(v_ic, false);// message removed from port queue // postabmle f_PO_user_home_deregistration(v_ueA); f_PO_user_home_deregistration(v_ueB); f_cf_int_call_down(v_config); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_user_down(v_ueB); f_cf_adapter_down(); } /** * @desc * IMS network handles messaging with DNS/ENUM lookup procedure correctly * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.3) */ testcase TC_IMS_MESS_0004() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); 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_gmB := f_cf_create_monitor(c_gm_B); var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic); var CF_INT_CALL v_config := {v_gmA, v_ic, v_gmB}; // map/connect component ports f_cf_adapter_up(); f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); f_cf_int_call_up(v_config); // preamble f_PR_user_home_registration(v_ueA, f_getTelUserId(PX_EUT_A)); f_PR_user_home_registration(v_ueB, f_getTelUserId(PX_EUT_B)); // test body f_mtc_userSendMessage(v_ueA, "test"); f_mtc_check_TP_IMS_5097_08_gm(v_gmA, false); f_mtc_check_TP_IMS_5097_08_ic(v_ic, false); // TODO add DNS checks f_mtc_userCheckMessageReceipt(v_ueB); f_mtc_check_TP_IMS_5117_06_gm(v_gmB, false); f_mtc_check_TP_IMS_5117_06_ic(v_ic, false); // postabmle f_PO_user_home_deregistration(v_ueA); f_PO_user_home_deregistration(v_ueB); f_cf_int_call_down(v_config); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_user_down(v_ueB); f_cf_adapter_down(); } /** * @desc * IMS network handles messaging while roaming correctly. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.4) */ testcase TC_IMS_MESS_0005() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); 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_ic := f_cf_create_monitor(c_ic); // map/connect component ports f_cf_adapter_up(); f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); f_cf_roam_call_up(v_gmA, v_ic); // preamble f_PR_user_home_registration(v_ueA, f_getAnyValidUser(PX_EUT_A)); f_PR_user_roaming_registration(v_ueB, f_getAnyValidUser(PX_EUT_B)); // test body f_mtc_userSendMessage(v_ueA, "test"); f_mtc_check_TP_IMS_5108_02_ic(v_ic); // TODO must be checked f_mtc_userCheckMessageReceipt(v_ueB); f_mtc_check_TP_IMS_5118_01_gm(v_gmA, false); f_mtc_check_TP_IMS_5118_01_ic(v_ic, false); // postabmle f_PO_user_home_deregistration(v_ueA); f_PO_user_roaming_deregistration(v_ueB); f_cf_roam_call_down(v_gmA, v_ic); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_user_down(v_ueB); f_cf_adapter_down(); } /** * @desc * IMS network handles messaging correctly when receiving user is nit registered. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.5) */ testcase TC_IMS_MESS_0006() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A); var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic); var CF_INT_CALL v_config := {v_gmA, v_ic, omit}; // map/connect component ports f_cf_adapter_up(); f_cf_user_up(v_ueA); f_cf_int_call_up(v_config); // preamble f_PR_user_home_registration(v_ueA, f_getAnyValidUser(PX_EUT_A)); // test body f_mtc_userSendMessage(v_ueA, "test"); f_mtc_check_TP_IMS_5114_02_gm(v_gmA); f_mtc_check_TP_IMS_5114_02_ic(v_ic); f_mtc_userCheckMessageNotDelivered(v_ueA); // postabmle f_PO_user_home_deregistration(v_ueA); f_cf_int_call_down(v_config); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_adapter_down(); } /** * @desc * IMS network handles messaging correctly when receiving user is nit registered. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.6) */ testcase TC_IMS_MESS_0007() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); 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_ic := f_cf_create_monitor(c_ic); var CF_INT_CALL v_config := {v_gmA, v_ic, omit}; // map/connect component ports f_cf_adapter_up(); f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); f_cf_int_call_up(v_config); // preamble f_PR_user_home_registration(v_ueA, f_getAnyValidUser(PX_EUT_A)); f_PR_user_home_registration(v_ueB, f_getAnyValidUser(PX_EUT_B)); // test body f_mtc_userSendMessage(v_ueA, "test"); f_mtc_check_TP_IMS_5108_06_gm(v_gmA); f_mtc_check_TP_IMS_5108_06_ic(v_ic); f_mtc_userCheckMessageNotDelivered(v_ueA); // postabmle f_PO_user_home_deregistration(v_ueA); f_PO_user_home_deregistration(v_ueB); f_cf_int_call_down(v_config); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_user_down(v_ueB); f_cf_adapter_down(); } }