Commit 1ec41645 authored by ringst's avatar ringst
Browse files

TC_IMS_REG_0007 updated

f_GetEUTIbcfAddress added
parent 232758e3
Loading
Loading
Loading
Loading
+90 −64
Original line number Diff line number Diff line
@@ -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(
@@ -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;
@@ -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))},
@@ -1115,7 +1113,7 @@ group checksTC_IMS_REG_0007 {
                    {0, omit},
                    "TP_IMS_5134_01",
                    false,
                false
					p_checkMessage
    			)
   			);
   			p_monitorCompRef.done;
@@ -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

+40 −2
Original line number Diff line number Diff line
@@ -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;
				}
			}
@@ -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;
		  	}
		  }
@@ -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 
+2 −2
Original line number Diff line number Diff line
@@ -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
          }
    }
+9 −7
Original line number Diff line number Diff line
@@ -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);