Commit 2a54547a authored by ringst's avatar ringst
Browse files

Base f[r TC_IMS_0005 added, need to be rechecked and completed

parent 337ad0cc
Loading
Loading
Loading
Loading
+41 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ module AtsImsIot_Behavior {
	import from LibIot_TypesAndValues {type DefaultList;}
	import from LibIot_TestInterface {type TestCoordinator, InterfaceMonitor;}

	import from LibSip_SIPTypesAndValues {type Request, Response;}
	import from LibSip_SIPTypesAndValues {type Request, Response, CallId;}
	
	import from LibSip_Templates {
		template
@@ -266,6 +266,46 @@ module AtsImsIot_Behavior {
	    }
	}

	/**
	* @desc Starts monitor component behavior for TP_IMS_5088_01 (gm)
	* @param p_monitorCompRef Reference to monitor component
	*/
	function f_mtc_check_TP_IMS_5088_01_gm(InterfaceMonitor p_monitorCompRef) 
		runs on TestCoordinator {
   	    		
		p_monitorCompRef.start(
			f_imsIot_receive(
				{mw_SipRequest(mdw_TP_IMS_5088_01_gm)},
    			{mw_SipRequest(mw_MESSAGE_Request_Base(?))},
    			"TP_IMS_5088_01_gm",
    			"REGISTER request",
    			0,
    			false
    		)
    	);
    	p_monitorCompRef.done;
	}

	/**
	* @desc Starts monitor component behavior for TP_IMS_5088_01 (mw)
	* @param p_monitorCompRef Reference to monitor component
	*/
	function f_mtc_check_TP_IMS_5088_01_mw(InterfaceMonitor p_monitorCompRef) 
		runs on TestCoordinator {
		
    	var CallId v_callId; // TODO what it the call id? not initialized
    		
    	p_monitorCompRef.start(
			f_imsIot_receive(
						{mw_SipRequest(mdw_TP_IMS_5088_01_mw(v_callId, mw_SIP_URI("hostname")))}, // TODO getHostname(PCSCF) how to hande the callid?
						{mw_SipRequest(mw_MESSAGE_Request_Base(?))},
						"TP_IMS_5088_01_mw",
						"200_OK response",
						0,
						false
			)
    	);
    	p_monitorCompRef.done;
}	
 	
}// end module
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
@@ -194,6 +194,7 @@ module AtsImsIot_Functions {
     		
     		return v_status;
     	}
     	
 	}
 
 
+34 −1
Original line number Diff line number Diff line
@@ -78,7 +78,40 @@ module AtsImsIot_Templates {
			}
		}

		template REGISTER_Request mdw_TP_IMS_5088_01_gm  modifies mw_REGISTER_Request_Base := {
			msgHeader := {
				authorization := {
            		fieldName := AUTHORIZATION_E,
            		body := ? // TODO Authorization_header containing an integrity-protected_parameter indicating no 
				}
			}
		}
    	
        template NOTIFY_Request mdw_TP_IMS_5088_01_mw(CallId p_callId, template SipUrl p_PCSCF_SIP_URI) modifies mw_NOTIFY_Request_Base := { 
        	requestLine := { requestUri := p_PCSCF_SIP_URI }, // TODO check if this is the P-CSCF_SIP_URI
        	msgHeader := { 
        		event := {
        			fieldName := EVENT_E, 
        			eventType := pattern "*reg_event*", // TODO check content
        			eventParams := *},
        		route := ? }, // TODO route header indicating the original Route_header from SUBSCRIBE 
        	messageBody := ? // TODO 
        }

	}//end group
	
	group config {
	
		template SipUrl mw_SIP_URI (charstring p_host):= {
			scheme := "sip",  
			userInfo := *,
			hostPort := {
				host := p_host, 
				portField := *
			},
			urlParameters := *,
			headers := *
		}

	} // end group
	
+32 −1
Original line number Diff line number Diff line
@@ -107,7 +107,7 @@ module AtsImsIot_TestCases {
		f_mtc_check_TP_IMS_5011_01_gm(v_gmA);
		f_mtc_check_TP_IMS_5011_01_mw(v_mw);
		
		f_mtc_userCheckRegistration(v_ueB);
		f_mtc_userCheckRegistration(v_ueB, PX_EUT_B);
		
		// postamble
		f_PO_user_home_deregistration(v_ueB);
@@ -118,6 +118,37 @@ module AtsImsIot_TestCases {
		f_cf_monitor_down(v_mw);
	}
	
	/**
	* @desc IMS network supports network initiated re-registration 
	* upon receipt of a new registration with new contact information
	* @see TD_IMS_0005 in ETSI TS 186 011-2 V2.3.1 cause 4.5.2.6
	*/
	testcase TC_IMS_0005() 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);
		
		// 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_B);
		
		f_mtc_check_TP_IMS_5088_01_gm(v_gmA);
		f_mtc_check_TP_IMS_5088_01_mw(v_mw);
		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 supports properly application services based on