Commit 3ddb1de0 authored by bergengruen's avatar bergengruen
Browse files

Test SS_0007 added

parent 2ef9ecd2
Loading
Loading
Loading
Loading
+250 −27
Original line number Diff line number Diff line
@@ -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;
	
@@ -206,7 +207,7 @@ module AtsImsIot_Behavior {
	
group checks {

group checksTC_IMS_0001 {
group checksTC_IMS_MESS_0001{
		
		 /**
          * @desc
@@ -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
@@ -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(
@@ -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(
@@ -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(
@@ -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;
@@ -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;
	    }
@@ -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
           }


@@ -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
@@ -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(
@@ -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
@@ -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(
@@ -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;                      
@@ -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
@@ -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
@@ -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)
@@ -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
@@ -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)
@@ -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
@@ -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
+31 −1
Original line number Diff line number Diff line
@@ -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
@@ -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";
+41 −14
Original line number Diff line number Diff line
@@ -14,7 +14,6 @@ module AtsImsIot_Templates {
			SetFilterRsp,
			Status;
	}

	import from AtsImsIot_TypesAndValues {type SipMessage;}

	import from LibSip_SIPTypesAndValues all;
@@ -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), 
@@ -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 := *}, 
            *
@@ -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 := *}, 
            *
          })
      }
@@ -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 :=
+47 −30

File changed.

Preview size limit exceeded, changes collapsed.

−6 KiB (38.5 KiB)

File changed.

No diff preview for this file type.