Commit 5275ad82 authored by poglitsch's avatar poglitsch
Browse files

draft version for TC_0002

parent 78c72ed0
Loading
Loading
Loading
Loading
+58 −24
Original line number Diff line number Diff line
@@ -5,17 +5,18 @@
 */
module AtsImsIot_Behavior {
	
	import from LibIot_TypesAndValues {
		type DefaultList; 
	}
	import from LibIot_TestInterface {
		type TestCoordinator, InterfaceMonitor; 
	}
	import from AtsImsIot_Templates {template all;}

	import from AtsImsIot_TypesAndValues {type SipMessageList;}

	import from LibIot_TypesAndValues {type DefaultList;}
	import from LibIot_TestInterface {type TestCoordinator, InterfaceMonitor;}

	import from LibSip_SIPTypesAndValues {type Request, Response;}
	
	import from LibSip_Templates {
		template mw_ACK_Request_Base,
		template
			mw_ACK_Request_Base,
			mw_INVITE_Request_Base,
			mw_MESSAGE_Request_Base,
			mw_NOTIFY_Request_Base,
@@ -24,14 +25,6 @@ module AtsImsIot_Behavior {
			mw_Response_Base;
	}
	
 	import from AtsImsIot_TypesAndValues {
  		type SipMessageList, SipMessage;
 	}
 	
	import from AtsImsIot_Templates {
		template all;
	}
	
	//TODO move group to Function module
	group general_td_functions {
		
@@ -189,7 +182,7 @@ module AtsImsIot_Behavior {
        
	}// end group
	
	group td_IMS_0001 {
	group checks {
		
		 /**
          * @desc
@@ -230,6 +223,47 @@ module AtsImsIot_Behavior {
           p_monitorCompRef.done;
	    }
	    
	    /**
		 * @desc Starts monitor component behavior for TP_IMS_5011_01
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5011_01_gm(
	    	InterfaceMonitor p_monitorCompRef
	    ) runs on TestCoordinator {
		   	    		
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mdw_TP_IMS_5011_01_gm)},
                {mw_SipRequest(mw_REGISTER_Request_Base)},
                "TP_IMS_5011_01",
                "REGISTER request",
                0,
                false
            )
           );
           p_monitorCompRef.done;
	    }
	    
	    /**
		 * @desc Starts monitor component behavior for TP_IMS_5011_01
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5011_01_mw(
	    	InterfaceMonitor p_monitorCompRef
	    ) runs on TestCoordinator {
		   	    		
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mdw_TP_IMS_5011_01_mw)},
                {mw_SipRequest(mw_REGISTER_Request_Base)},
                "TP_IMS_5011_01",
                "REGISTER request",
                0,
                false
            )
           );
           p_monitorCompRef.done;
	    }
	}


+41 −10
Original line number Diff line number Diff line
@@ -11,13 +11,42 @@ module AtsImsIot_Functions {

 	import from LibIot_TestInterface {type EutTrigger, TestCoordinator;}
 	
 	
 	group ue {
 		
 		/**
		  * @desc
		  *     Starts user component behavior for triggering the registration
		  *     procedures at the UE from test coordinator.
		  * @param p_userCompRef Reference to IMS UE user component
		  * @param p_publicId public user identity
		  * @param p_privateId private user identity
		  * @param p_pw user password
		  * @return
		  *     true in case of successfull execution of the trigger command
		  *     otherwise false
		  */
 		function f_mtc_userTriggerRegistration(EutTrigger p_userCompRef, integer p_productIdx) runs on TestCoordinator return boolean {
 			// TODO fill content
 			return true;
 		}
 		
 		/**
		  * @desc
		  *     Starts user component behavior for checking the successful
		  *     registration.
		  * @param p_userCompRef Reference to IMS UE user component
		  * @return
		  *     true in case of successfull execution of the trigger command
		  *     otherwise false
		  */
 		function f_mtc_userCheckRegistration(EutTrigger p_userCompRef) runs on TestCoordinator return boolean {
 			// TODO fill content
 			return true;
 		}
 		
 		/**
		  * @desc Starts user component behaviour for registration from test coordinator
		  * @param p_userCompRef Reference ot IMS UE user component
		  * @param p_userCompRef Reference to IMS UE user component
		  * @param p_publicId public user identity
		  * @param p_privateId private user identity
		  * @param p_pw user password
@@ -26,13 +55,16 @@ module AtsImsIot_Functions {
		  *     otherwise false
		  */
 		function f_mtc_userRegister(EutTrigger p_userCompRef, charstring p_publicId, charstring p_privateId, charstring p_pw) runs on TestCoordinator return boolean {
 			// TODO server address parameter may needed
 			var boolean v_success := false;
 			
 			p_userCompRef.start(f_userRegistration(p_publicId, p_privateId, p_pw));
 			
 			p_userCompRef.done;
 			
      // TODO add setting of v_success based on e2e verdict
 			if(vc_e3e_verdict.verdict == pass) {
 				v_success := true;	
 			}
     		
     		return v_success;
 		}
@@ -52,7 +84,9 @@ module AtsImsIot_Functions {
 			
 			p_userCompRef.done;
     		
      // TODO add setting of v_success based on e2e verdict
     		if(vc_e3e_verdict.verdict == pass) {
 				v_success := true;	
 			}
     		
     		return v_success;
 		}
@@ -97,7 +131,6 @@ module AtsImsIot_Functions {
     		return v_success;
 		}
 		
 		
 		function f_getUserInfo(integer p_productIdx, out ImsUserInfo p_userInfo) return boolean {
 		  var integer v_size := sizeof(PX_IMS_USER_DATA);
 		  
@@ -106,7 +139,6 @@ module AtsImsIot_Functions {
 		      p_userInfo :=  PX_IMS_USER_DATA[i].userInfos[0]; // TODO improve this
 		      return true;
 		    }
 		    
 		  }
 		  return false;
 		}
@@ -139,7 +171,6 @@ module AtsImsIot_Functions {
     		
     		v_status := f_mtc_userDeregister(p_userCompRef, "*"); // deregister all previous users
     		
     		
     		return v_status;
     	}
 	}
+27 −0
Original line number Diff line number Diff line
@@ -50,6 +50,33 @@ module AtsImsIot_Templates {
				textplain := pattern "?#(1500,)" 
			}
		}
		
		/**
		 * 
		 * @desc REGISTER Request containing secuity client header.
		 */
		template REGISTER_Request mdw_TP_IMS_5011_01_gm modifies mw_REGISTER_Request_Base := {
			msgHeader := {
				securityClient := ?
			}
		}
		
		
		/**
		 * 
		 * @desc REGISTER Request checking TP_IMS_5011_01.
		 */
		template REGISTER_Request mdw_TP_IMS_5011_01_mw modifies mw_REGISTER_Request_Base := {
			msgHeader := {
				path := ?, // TODO check contant
				require := ?, // TODO check contant
				pChargingVector := ?, // TODO check contant
				authorization := ?, // TODO check contant
				securityClient := omit,
				securityVerify :=omit,
				pVisitedNetworkID := ?
			}
		}
	}//end group
	
}//end module
 No newline at end of file
+48 −9
Original line number Diff line number Diff line
@@ -5,6 +5,8 @@
 */
module AtsImsIot_TestCases {
 
	import from LibIms_ConfigAndTrigger {type ImsUserInfo;}

	import from Interface_configuration {modulepar PX_EUT_A, PX_EUT_B;}

	import from AtsImsIot_Functions {function all;}
@@ -28,18 +30,20 @@ module AtsImsIot_TestCases {
	}
	
	group constantDefinitions {
		
	 	// interface monitor name Gm A
	 	//* interface monitor name Gm A
		const charstring c_gm_A := "Gm A";
		//interface monitor name Gm B
		//* interface monitor name Gm B
		const charstring c_gm_B := "Gm B";
		//interface monitor name Mw
		//* interface monitor name Mw
		const charstring c_mw := "Mw";
		//interface monitor name Isc A
		//* interface monitor name Isc A
		const charstring c_isc_A := "Isc A";
		//interface monitor name Isc B
		//* interface monitor name Isc B
		const charstring c_isc_B := "Isc B";
		
		//* eut trigger name User A
		const charstring c_trigger_A := "User A";
		//* eut trigger name User B
		const charstring c_trigger_B := "User B";
	}
	
	/**
@@ -49,8 +53,8 @@ module AtsImsIot_TestCases {
	 */
	testcase TC_IMS_0001() runs on TestCoordinator system SystemInterface {
		// create components
		var EutTrigger v_ueA := f_cf_create_trigger("User A");
		var EutTrigger v_ueB := f_cf_create_trigger("User B");
		var EutTrigger v_ueA := f_cf_create_trigger(c_trigger_A);
		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);
		
@@ -77,6 +81,41 @@ module AtsImsIot_TestCases {
		//unmap/disconnet component ports
		f_cf_trigger_down(v_ueA);
		f_cf_trigger_down(v_ueB);
		f_cf_monitor_down(v_gmA);
		f_cf_monitor_down(v_mw);
	}
	
	/**
	 * @desc
	 *     First time registration in a visited IMS network.
	 *     (TD_IMS_0002 in ETSI TS 186 011-2 V2.3.1 cause 4.5.2.1)
	 */
	testcase TC_IMS_0002() 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_5011_01_gm(v_gmA);
		f_mtc_check_TP_IMS_5011_01_mw(v_mw);
		
		f_mtc_userCheckRegistration(v_ueB);
		
		// 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);
	}