Commit 370f5124 authored by poglitsch's avatar poglitsch
Browse files

MESS_005,6,7, TC added

parent 19882a0e
Loading
Loading
Loading
Loading
+241 −5
Original line number Diff line number Diff line
@@ -1909,7 +1909,7 @@ group checksTC_IMS_SS_0007 {
            f_imsIot_receive(
                {},
                {
                	mw_SipRequest(mdw_TP_IMS_5097_05f_mw(*, mw_SipUrl_Host(v_EUT_A_Addr))), 
                	mw_SipRequest(mdw_TP_IMS_5097_05_f_mw(*, mw_SipUrl_Host(v_EUT_A_Addr))), 
                	mw_SipRequest(mw_MESSAGE_Request_Base(*))
                },
                {0, omit},
@@ -1923,7 +1923,7 @@ group checksTC_IMS_SS_0007 {
           
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mdw_TP_IMS_5097_05p_mw(*, mw_SipUrl_Host(v_EUT_A_Addr)))},
                {mw_SipRequest(mdw_TP_IMS_5097_05_p_mw(*, mw_SipUrl_Host(v_EUT_A_Addr)))},
                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
                {0, omit},
                "TP_IMS_5097_05",
@@ -2155,8 +2155,244 @@ group checksTC_IMS_SS_0007 {
	    }	
		
		 
	    /**
	     * @desc Starts monitor component behavior for TP_IMS_5108_02
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5108_02_gm(
	    	ImsInterfaceMonitor p_monitorCompRef,
	    	boolean p_checkMessage
	    ) runs on ImsTestCoordinator {
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
                {},
                {0, omit},
                "TP_IMS_5108_02",
                false,
                p_checkMessage
            )
           );
           p_monitorCompRef.done;
	    }
	    
	    /**
		 * @desc Starts monitor component behavior for TP_IMS_5108_02
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5108_02_mw(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator {
	       var template SipUrl v_SCSCF_IMS_B := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B)); 
           var SemicolonParam_List p_paramList;
           var GenericParam p_param;
           var SipMessage v_sip;
           
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mdw_TP_IMS_5108_02a_mw(*))},
                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
                {0, omit},
                "TP_IMS_5108_02",
                true,
                true
            )
           );
           p_monitorCompRef.done;
           
           f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
           p_paramList := v_sip.request.msgHeader.pChargingVector.chargeParams;
           for(var integer i := 0; i < lengthof(p_paramList); i:= i+1) {
           		if(p_paramList[i].id == "icid-value") {
           			p_param := p_paramList[i];
           		}
           }
           
           p_monitorCompRef.start(
            f_imsIot_receive(
                {},
                {
                	mw_SipRequest(mdw_TP_IMS_5108_02b_f_mw(*)),
                	mw_SipRequest(mw_MESSAGE_Request_Base(*))
                },
                {0, omit},
                "TP_IMS_5108_02",
                false,
                true
            )
           );
           p_monitorCompRef.done;
           
           
           p_monitorCompRef.start(
            f_imsIot_receive(
                {},
                {
                	mw_SipRequest(mdw_TP_IMS_5108_02b_p_mw(*, v_SCSCF_IMS_B, p_param)),
                	mw_SipRequest(mw_MESSAGE_Request_Base(*))
                },
                {0, omit},
                "TP_IMS_5108_02",
                false,
                false
            )
           );
           p_monitorCompRef.done;
	    }
	 
	    /**
	     * @desc Starts monitor component behavior for TP_IMS_5050_01
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5050_01_gm(
	    	ImsInterfaceMonitor p_monitorCompRef,
	    	boolean p_checkMessage
	    ) runs on ImsTestCoordinator {
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
                {},
                {0, omit},
                "TP_IMS_5050_01",
                false,
                p_checkMessage
            )
           );
           p_monitorCompRef.done;
	    }
	
	  
	    /**
	     * @desc Starts monitor component behavior for TP_IMS_5050_01
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5050_01_mw(
	    	ImsInterfaceMonitor p_monitorCompRef,
	    	boolean p_checkMessage
	    ) runs on ImsTestCoordinator {
	    	var template SipUrl v_PCSCF_IMS_B := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_B)); 
	    	var template SipUrl v_UE_A := mw_SipUrl_Host(f_GetEUTPublicId(PX_EUT_A)); 
	    	
           p_monitorCompRef.start(
            f_imsIot_receive(
           		{mw_SipRequest(mdw_TP_IMS_5050_01_mw(*, v_PCSCF_IMS_B, v_UE_A))},
                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
                {0, omit},
                "TP_IMS_5050_01",
                false,
                p_checkMessage
            )
           );
           p_monitorCompRef.done;
	    }	
	    
	    /**
	     * @desc Starts monitor component behavior for TP_IMS_5050_01
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5114_02_gm(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator {
	    	
	      p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
                {},
                {0, omit},
                "TP_IMS_5114_02",
                false,
                false
            )
           );
           p_monitorCompRef.done;	
	    }
	    
	    /**
	     * @desc Starts monitor component behavior for TP_IMS_5050_01
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5114_02_mw(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator {
	    	
	      p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
                {},
                {0, omit},
                "TP_IMS_5114_02",
                false,
                false
            )
           );
           p_monitorCompRef.done;	
	    
           p_monitorCompRef.start(
            f_imsIot_receive(
           		{mw_SipResponse(mdw_4XX_Base)},
                {},
                {0, omit},
                "TP_IMS_5114_02",
                false,
                false
            )
           );
           p_monitorCompRef.done;
	    }
	    
	    /**
	     * @desc Starts monitor component behavior for TP_IMS_5108_06
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5108_06_gm(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator {
	       p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
                {},
                {0, omit},
                "TP_IMS_5108_06",
                false,
                false
            )
           );
           p_monitorCompRef.done;
	    }
	    
	    /**
	     * @desc Starts monitor component behavior for TP_IMS_5108_06
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5108_06_mw(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator {
	    	
	      p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_MESSAGE_Request_Base(*))},
                {},
                {0, omit},
                "TP_IMS_5108_06",
                false,
                false
            )
           );
           p_monitorCompRef.done;	
	    
           p_monitorCompRef.start(
            f_imsIot_receive(
           		{mw_SipResponse(mw_404NotFound_Base)},
                {},
                {0, omit},
                "TP_IMS_5114_02",
                false,
                false
            )
           );
           p_monitorCompRef.done;
	    }
	}
	
} // end group
}// end module
 No newline at end of file
+20 −0
Original line number Diff line number Diff line
@@ -317,6 +317,26 @@ module AtsImsIot_Functions {
 			
 			p_userCompRef.done;
     		
            if(f_getE2EVerdict() == pass) {
      			v_success := true;
  			}
     		
     		return v_success;
 		}
 		
 		/**
 		 * 
 		 * @desc Starts user component behaviour for checking message receipt from test coordinator 
 		 * @param p_userCompRef Reference ot IMS UE user component
 		 * @param p_content Content of meessage to be received
 		 */
 		function f_mtc_userCheckMessageNotDelivered(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean {
 			var boolean v_success := false;
 			
 			p_userCompRef.start(f_userCheckMessageNotDelivered());
 			
 			p_userCompRef.done;
     		
            if(f_getE2EVerdict() == pass) {
      			v_success := true;
  			}
+104 −2
Original line number Diff line number Diff line
@@ -337,6 +337,7 @@ module AtsImsIot_Templates {
      }
    }
    
   
	/**
	  * @desc INVITE Request checking TP_IMS_5097_02
	  */
@@ -597,7 +598,7 @@ module AtsImsIot_Templates {
      }
    }
    
    template MESSAGE_Request mdw_TP_IMS_5097_05p_mw(
    template MESSAGE_Request mdw_TP_IMS_5097_05_p_mw(
    	template CallId p_callId,
    	template SipUrl p_SCSCF_SIP_URI
    ) modifies mw_MESSAGE_Request_Base := {
@@ -621,7 +622,7 @@ module AtsImsIot_Templates {
        }
    }
    
    template MESSAGE_Request mdw_TP_IMS_5097_05f_mw(
    template MESSAGE_Request mdw_TP_IMS_5097_05_f_mw(
    	template CallId p_callId,
    	template SipUrl p_SCSCF_SIP_URI
    ) modifies mw_MESSAGE_Request_Base := {
@@ -677,6 +678,62 @@ module AtsImsIot_Templates {
        }
    }
    
    template Request mdw_TP_IMS_5108_02a_mw(
      template CallId p_callId
    ) modifies mw_MESSAGE_Request_Base := {
       	msgHeader := {
       		pChargingVector := {
                fieldName := P_CHARGING_VECTOR_E,
                chargeParams := {
                    {id := "icid-value", paramValue := ?},
                    *
                }
            }	
       	}
    }
    
    template Request mdw_TP_IMS_5108_02b_p_mw(
      template CallId p_callId,
      template SipUrl p_SCSCF_Uri,
      template GenericParam p_param
    ) modifies mw_MESSAGE_Request_Base := {
       	msgHeader := {
       		route := omit, // TODO TP is not clear please double check
       		recordRoute := {
       			fieldName := RECORD_ROUTE_E,
       			routeBody := {{
       				nameAddr := {
       					displayName := *,
       					addrSpec := p_SCSCF_Uri	
       				},
       				rrParam := *
       			}}
       		},
       		pChargingVector := {
                fieldName := P_CHARGING_VECTOR_E,
                chargeParams := {
                    p_param,
                    *
                }
            }	
       	}
    }
    
    template Request mdw_TP_IMS_5108_02b_f_mw(
      template CallId p_callId
    ) modifies mw_MESSAGE_Request_Base := {
       	msgHeader := {
       		pChargingVector := {
                fieldName := P_CHARGING_VECTOR_E,
                chargeParams := {
                    {id := "orig-ioi", paramValue := ?},
	                {id := "term-ioi", paramValue := ?},
	                *
                }
            }	
       	}
    }
    
    template Response mw_TP_IMS_5117_02_mw modifies mdw_2XX_Base := {
	    msgHeader := {
	        pChargingVector := {
@@ -715,6 +772,36 @@ module AtsImsIot_Templates {
	    }   
    }
    
    template Request mdw_TP_IMS_5050_01_mw(
      template CallId p_callId,
      template SipUrl p_PCSCF_URI,
      template SipUrl p_UE_A_URI
    ) modifies mw_MESSAGE_Request_Base := {
       	msgHeader := {
       		route := {
       			fieldName := ROUTE_E,
       			routeBody := {
       				{
       					nameAddr := {
	       					displayName := *,
	       					addrSpec := complement(p_PCSCF_URI)	
	       				},
	       				rrParam := *
       				},*
       			}
       		},
       		pPreferredID := omit,
       		pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(p_UE_A_URI)),
       		pChargingVector := {
                fieldName := P_CHARGING_VECTOR_E,
                chargeParams := {
                    {id := "icid-value", paramValue := ?},
	                *
                }
            }	
       	}
    }

	template Response mdw_2XX_Base modifies m_Response_Dummy := {
		statusLine := {c_sipNameVersion, (200..299), *},
		msgHeader := ?,
@@ -750,6 +837,14 @@ module AtsImsIot_Templates {
		messageBody := omit,
		payload	:= omit
		}
		
  template Response mdw_4XX_Base modifies m_Response_Dummy :=
  {
		statusLine := {c_sipNameVersion, (400..499), *},
		msgHeader := ?,
		messageBody := omit,
		payload	:= omit
  }
  template Response mw_403Forbidden_Base  modifies m_Response_Dummy :=
		{
		statusLine := c_statusLine403,
@@ -757,6 +852,13 @@ module AtsImsIot_Templates {
		messageBody := omit,
		payload	:= omit
		}
	template Response mw_404NotFound_Base  modifies m_Response_Dummy :=
	{
		statusLine := c_statusLine404,
		msgHeader := ?,
		messageBody := omit,
		payload	:= omit
	}

		template REGISTER_Request mdw_TP_IMS_5088_01_gm  modifies mw_REGISTER_Request_Base := {
			msgHeader := {
+129 −1
Original line number Diff line number Diff line
@@ -179,7 +179,7 @@ module AtsImsIot_TestCases_MESS {
	
	/**
     * @desc
     *     IMS netwirk handles messaging with DNS/ENUM lookup procedure correctly
     *     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 {
@@ -225,4 +225,132 @@ module AtsImsIot_TestCases_MESS {
		f_cf_monitor_down(v_gmB);
		f_cf_monitor_down(v_mw);
	}	
	
	
	
	/**
     * @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_gmB := f_cf_create_monitor(c_gm_B);
		var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw);
		
		// map/connect component ports
		f_cf_user_up(v_ueA);
		f_cf_user_up(v_ueB);
		f_cf_monitor_up(v_gmA);
		f_cf_monitor_up(v_gmB);
		f_cf_monitor_up(v_mw);
		
		// 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_5050_01_gm(v_gmA, false); // TODO must be checked
		f_mtc_check_TP_IMS_5050_01_mw(v_mw, true);
		f_mtc_check_TP_IMS_5108_02_mw(v_mw); // TODO must be checked
		
		f_mtc_userCheckMessageReceipt(v_ueB);
		
		f_mtc_check_TP_IMS_5118_01_gm(v_gmB, false);
		f_mtc_check_TP_IMS_5118_01_mw(v_mw, false);
		
		// postabmle
		f_PO_user_home_deregistration(v_ueA);
		f_PO_user_roaming_deregistration(v_ueB);
		
		//unmap/disconnet component ports
		f_cf_user_down(v_ueA);
		f_cf_user_down(v_ueB);
		f_cf_monitor_down(v_gmA);
		f_cf_monitor_down(v_gmB);
		f_cf_monitor_down(v_mw);
	}
	
	/**
     * @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_mw := f_cf_create_monitor(c_mw);
		
		// map/connect component ports
		f_cf_user_up(v_ueA);
		f_cf_monitor_up(v_gmA);
		f_cf_monitor_up(v_mw);
		
		// 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_mw(v_mw); 
		
		f_mtc_userCheckMessageNotDelivered(v_ueA);
		
		// postabmle
		f_PO_user_home_deregistration(v_ueA);
		
		//unmap/disconnet component ports
		f_cf_user_down(v_ueA);
		f_cf_monitor_down(v_gmA);
		f_cf_monitor_down(v_mw);
	}
	
		
	/**
     * @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_mw := f_cf_create_monitor(c_mw);
		
		// map/connect component ports
		f_cf_user_up(v_ueA);
		f_cf_user_up(v_ueB);
		f_cf_monitor_up(v_gmA);
		f_cf_monitor_up(v_mw);
		
		// 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_mw(v_mw); 
		
		f_mtc_userCheckMessageNotDelivered(v_ueA);
		
		// postabmle
		f_PO_user_home_deregistration(v_ueA);
		f_PO_user_home_deregistration(v_ueB);
		
		//unmap/disconnet component ports
		f_cf_user_down(v_ueA);
		f_cf_user_down(v_ueB);
		f_cf_monitor_down(v_gmA);
		f_cf_monitor_down(v_mw);
	}
}
 No newline at end of file
+14 −2
Original line number Diff line number Diff line
@@ -44,6 +44,12 @@ module LibIms_UpperTester {
				 * @desc Command to check if UE has receipt of a message
				 */
				const EquipmentCommand c_UE_CHECK_MESSAGE_RECEIPT := "UE_CHECK_MESSAGE_RECEIPT";
				
				
				/**
				 * @desc Command to check if UE is informed about that the message request could not be delivered.
				 */
				const EquipmentCommand c_UE_CHECK_MESSAGE_NOT_DELIVERED := "UE_CHECK_MESSAGE_NOT_DELIVERED";		
			}
		}
		
@@ -97,7 +103,13 @@ module LibIms_UpperTester {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_MESSAGE_RECEIPT, {})));
			}
				
 			
			/**
			 * 
			 * @desc Trigger checking the receipt of instant message at UE
			 */
			function f_userCheckMessageNotDelivered() runs on EquipmentUser {
				f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_MESSAGE_NOT_DELIVERED,  {})));
			}
 		}
	}