Commit 7ac634d4 authored by rennoch's avatar rennoch
Browse files

TP_AF_SN_05/06 added

new testcases definitions using new SIP scenarios 
parent 98e630b1
Loading
Loading
Loading
Loading
+287 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ module DiameterRx_ImsGm_TCFunctions {
	    								  const c_statusLine200;}
	import from LibSip_Templates all;
	import from LibSip_Steps all;
	import from LibSip_SIPTypesAndValues all;
	// LibIms
	import from LibIms_Templates all;
	import from LibIms_Steps all;
@@ -141,4 +142,290 @@ module DiameterRx_ImsGm_TCFunctions {
			} // end function f_Sip_TC_IMST2_GM_INI_04_UE2

	} //end group TP_BasicCall
	
	// source from AtsIms_Gm_TCFunctions (STF346)
	group TP_Termination {

	/*
	*  @desc	This is the test case function (SIP originating side - UE1) for TC_IMST2_GM_SUB_06_UE1
	*  @param	p_cSeq_s
	*/
			function f_TC_IMST2_GM_SUB_06_UE1(in CSeq p_cSeq_s)
			runs on ImsComponent {

				var REGISTER_Request v_register;

				v_register :=
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
													p_cSeq_s, vc_from, vc_to,
													vc_via_REG, vc_contact,
													vc_authorization));
				// preamble with send REGISTER, await 401, send REGISTER, await
				// 200 OK and user profile setting
				f_IMS_preamble_withRegistration(c_userProfile_UE1atSUThome,
												p_cSeq_s, v_register);
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				// point
				// preamble
				// done
				// TESTBODY
				// prepare and send INVITE UE2
				// @SUT
				LibIms_Steps
				.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome);
				f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_contact, omit,
												 vc_route_REG, omit,
												 m_MBody_SDP(vc_sdp_local)));

				// await response - 200 ...
				f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId,
													vc_cSeq));
				// send ACK
				LibSip_Steps.f_setHeadersACK();
				f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq,
											 vc_from, vc_to, vc_via));
											 
				f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync before STR
				
				// SendBYE and await response
				f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq,
								   vc_caller_From, vc_caller_To);

				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				// point
				// test
				// body
				// done
				// POSTAMBLE
				// send REGISTER, await 401, send REGISTER, await 200 OK
				f_RemoveRegistration(vc_cSeq); // deregistration in SUT
				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
				// point
				// postamble
				// done
				f_SIP_postamble_UE1_withoutRegistration();
			} // end function f_Sip_TC_IMST2_GM_SUB_06_UE1

			/*
	*  @desc	This is the test case function (SIP terminating side - UE2) for TC_IMST2_GM_SUB_06_UE2
	*  @param	loc_CSeq_s
	*/
			function f_TC_IMST2_GM_SUB_06_UE2(in CSeq p_cSeq_s)
			runs on ImsComponent {

				var REGISTER_Request v_register;

				v_register :=
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
													p_cSeq_s, vc_from, vc_to,
													vc_via_REG, vc_contact,
													vc_authorization));

				// IMS1 component interface initialization
				f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF2);
				// preamble with send REGISTER, await 401, send REGISTER, await
				// 200 OK and user profile setting
				f_IMS_preamble_withRegistration(c_userProfile_UE2atSUThome,
												p_cSeq_s, v_register);

				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				// point
				// preamble
				// done
				// TESTBODY
				// Awaiting INVITE
				f_awaitingINVITE(mw_INVITE_Request_Base);
				f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200,
														 vc_callId, vc_cSeq,
														 vc_caller_From,
														 vc_caller_To, vc_via,
														 vc_contact, f_recordroute(),
														 valueof(m_MBody_SDP(
																	 vc_sdp_local
																 ))));
																 
				f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync before STR

				// await BYE and send 200OK
				f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));

				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				// point
				// test
				// body
				// done
				// POSTAMBLE
				// send REGISTER, await 401, send REGISTER, await 200 OK
				f_RemoveRegistration(vc_cSeq);

				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
				// point
				// postamble
				// done
				f_SIP_postamble_UE2_withoutRegistration();
			} // end function f_Sip_TC_IMST2_GM_SUB_06_UE2
			
	} // end TP_Termination


	// source from AtsIms_Gm_TCFunctions (STF346)
	group TP_TargetRefresh {
	
	/*
	*  @desc	This is the test case function (SIP originating side - UE1) for TC_IMST2_GM_TAR_07_UE1
	*  @param	p_cSeq_s
	*/
			function f_TC_IMST2_GM_TAR_07_UE1(in CSeq p_cSeq_s)
			runs on ImsComponent {

				var REGISTER_Request v_register;

				v_register :=
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
													p_cSeq_s, vc_from, vc_to,
													vc_via_REG, vc_contact,
													vc_authorization));
				// preamble with send REGISTER, await 401, send REGISTER, await
				// 200 OK and user profile setting
				f_IMS_preamble_withRegistration(c_userProfile_UE1atSUThome,
												p_cSeq_s, v_register);
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				// point
				// preamble
				// done
				// TESTBODY
				// prepare and send INVITE UE2
				// @SUT
				LibIms_Steps
				.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome);
				f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_contact, omit,
												 vc_route_REG, omit,
												 m_MBody_SDP(vc_sdp_local)));

				// await response - 200 ...
				f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId,
													vc_cSeq));
				// send ACK
				LibSip_Steps.f_setHeadersACK();
				f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq,
											 vc_from, vc_to, vc_via));

				f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync1 before modification starts

				// ReINVITE ...
				// prepare and send RE-INVITE UE2
				// @SUT
				// TODO Check function to set headers for reinvite on
				// originating side
				LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true);
				f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_contact, omit,
												 vc_route, omit,
												 m_MBody_SDP(vc_sdp_local)));

				// await response - 200 ...
				f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId,
													vc_cSeq));
				// send ACK
				LibSip_Steps.f_setHeadersACK();
				f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq,
											 vc_from, vc_to, vc_via));

				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				// point
				// test
				// body
				// done
				// POSTAMBLE
				// SendBYE and await response
				f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq,
								   vc_caller_From, vc_caller_To);

				// send REGISTER, await 401, send REGISTER, await 200 OK
				f_RemoveRegistration(vc_cSeq); // deregistration in SUT
				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
				// point
				// postamble
				// done
				f_SIP_postamble_UE1_withoutRegistration();
			} // end function f_Sip_TC_IMST2_GM_TAR_07_UE1

			/*
	*  @desc	This is the test case function (SIP terminating side - UE2) for TC_IMST2_GM_TAR_07_UE2
	*  @param	loc_CSeq_s
	*/
			function f_TC_IMST2_GM_TAR_07_UE2(in CSeq p_cSeq_s)
			runs on ImsComponent {

				var REGISTER_Request v_register;

				v_register :=
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
													p_cSeq_s, vc_from, vc_to,
													vc_via_REG, vc_contact,
													vc_authorization));

				// IMS1 component interface initialization
				f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF2);
				// preamble with send REGISTER, await 401, send REGISTER, await
				// 200 OK and user profile setting
				f_IMS_preamble_withRegistration(c_userProfile_UE2atSUThome,
												p_cSeq_s, v_register);

				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				// point
				// preamble
				// done
				// TESTBODY
				// Awaiting INVITE
				f_awaitingINVITE(mw_INVITE_Request_Base);
				f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200,
														 vc_callId, vc_cSeq,
														 vc_caller_From,
														 vc_caller_To, vc_via,
														 vc_contact, f_recordroute(),
														 valueof(m_MBody_SDP(
																	 vc_sdp_local
																 ))));
				
				f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync1 before modification starts
				
				// Awaiting RE-INVITE
				f_awaitingINVITE(mw_INVITE_Request_Base);
				f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200,
														 vc_callId, vc_cSeq,
														 vc_caller_From,
														 vc_caller_To, vc_via,
														 vc_contact, f_recordroute(),
														 valueof(m_MBody_SDP(
																	 vc_sdp_local
																 ))));

				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				// point
				// test
				// body
				// done
				// POSTAMBLE
				// await BYE and send 200OK
				f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));

				// send REGISTER, await 401, send REGISTER, await 200 OK
				f_RemoveRegistration(vc_cSeq);

				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
				// point
				// postamble
				// done
				f_SIP_postamble_UE2_withoutRegistration();
			} // end function f_Sip_TC_IMST2_GM_TAR_07_UE2
	
	} //end group TP_TargetRefresh	
	
} // end module AtsIms_Gm_TCFunctions
 No newline at end of file
+100 −10
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ module DiameterRx_Rx_TCFunctions {
	
	// LibSip
	import from LibSip_Steps {function f_getVerdict;};
	import from LibSip_SIPTypesAndValues all;
	import from LibSip_PIXITS all;
	
	// LibDiameter
@@ -115,9 +116,11 @@ module DiameterRx_Rx_TCFunctions {
				
                    f_preamble_PCRF();
                    		
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); //     sync of UEs      
                                 
                    f_IUT_session_esthablishment(); //     IUT esthablishes the session		
				
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); //     sync
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync1 before modification starts 
					                   
    				f_awaiting_AAR(mw_AAR_FIP_Media1(?,?,?,?,?,
                    	?, // indicating UE
@@ -144,9 +147,11 @@ module DiameterRx_Rx_TCFunctions {
				
                    f_preamble_PCRF();                    
                    		
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); //     sync of SIP UEs
                    
                    f_IUT_session_esthablishment(); //     IUT esthablishes the session		
                    
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); //     sync
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync1 before modification starts 
					                    
    				f_awaiting_AAR(mw_AAR_basic(?,?,?,?,?)); // should be present
								                                                                                         				
@@ -196,7 +201,7 @@ module DiameterRx_Rx_TCFunctions {
        *  @desc	This is the test case function TC_AF_GPR
        *  @param	
        */
                function f_TC_AF_GPR_01()
                function f_TC_AF_GRP_01()
                runs on DiameterComponent {
				
                    f_preamble_PCRF();
@@ -218,7 +223,7 @@ module DiameterRx_Rx_TCFunctions {
				
                    f_postamble_PCRF();

                } // end function f_TC_AF_PGR_01
                } // end function f_TC_AF_GRP_01

        /*
        *  @desc	This is the test case function TC_AF_ST
@@ -233,6 +238,8 @@ module DiameterRx_Rx_TCFunctions {
                    		
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				                    		
                    f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync before SIP termination

                    f_awaiting_STR(mw_STR_dummy);
                    				
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
@@ -398,6 +405,89 @@ module DiameterRx_Rx_TCFunctions {

                } // end function f_TC_AF_SN_04

                
        /*
        *  @desc	This is the test case function TC_AF_SN_05
        *  @param	
        */
                function f_TC_AF_SN_05()
                runs on DiameterComponent {
				
                    f_preamble_PCRF();
				
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); //     sync
                    f_awaiting_AAR(mw_AAR_FIP_supSA_supMedia
                                   (?, ?, ?, ?, ?, f_framedIpAddress4(),
                                    //     indicating UE
                                    f_framedIpAddress6(),
                                    //     indicationg UE (IPv6)
                                    *,
                    				mw_mediaComponentDescription_basic(
                    				  	mw_mediaComponentNr(0),
										{mw_mediaSubComponent_basic
										    (mw_flowNumber(?),
										     (?,*),
										     mw_flowStatus(ENABLED_E),
										     mw_flowUsage(AF_SIGNALLING_E),
										     omit,
										     omit,
										     mw_afSignallingProtocolSIP,
										     omit)},
                    					omit,omit,omit,omit,omit,omit,omit,omit,omit
                                     	)
                                   ));
				
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                   
                    f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm));
				
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
				
                    f_postamble_PCRF();

                } // end function f_TC_AF_SN_05

                
        /*
        *  @desc	This is the test case function TC_AF_SN_06
        *  @param	
        */
                function f_TC_AF_SN_06()
                runs on DiameterComponent {
				
                    f_preamble_PCRF();
				
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); //     sync
					f_awaiting_AAR(mw_AAR_FIP_supSA_supMedia
								   (?, ?, ?, ?, ?, f_framedIpAddress4(),
									//     indicating UE
									f_framedIpAddress6(),
									//     indicationg UE (IPv6)
									mw_specificAction
									((INDICATION_OF_RELEASE_OF_BEARER_E,
									  INDICATION_OF_LOSS_OF_BEARER_E)),
									mw_mediaComponentDescription_mediaSubComponent1
									(mw_mediaSubComponent_basic
									 (?,*,*,mw_flowUsage(AF_SIGNALLING_E),*,*,*,*))));
				
                                       
                    f_send_AAA(m_AAA_basic(vc_sessionId, vc_originHost, vc_originRealm));

                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); //     sync

                    f_awaiting_STR(mw_STR_dummy);
                    				
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                    
                    f_send_STA(m_STA_basic(vc_sessionId, m_resultCode(m_resultCode_diameterSuccess), vc_originHost,
                                           vc_originRealm));  
				
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
				
                    f_postamble_PCRF();

                } // end function f_TC_AF_SN_06

        /*
        *  @desc	This is the test case function TC_AF_TPE
        *  @param	
+8 −2
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ module DiameterRx_Templates {
        }


        template Flow_Status_AVP mw_flowStatus := 
        template Flow_Status_AVP mw_flowStatus(template (present) Flow_Status_Type p_avpData) := 
        {
    		aVP_Header := 
    		{
@@ -69,7 +69,7 @@ module DiameterRx_Templates {
    			aVP_len := ?,
    			aVP_vid := ?
    		},
    		aVP_Data := ?
    		aVP_Data := p_avpData
    	}
    	
        template Flow_Usage_AVP mw_flowUsage(template (present) Flow_Usage_Type p_avpData) := 
@@ -115,6 +115,12 @@ module DiameterRx_Templates {
          };


        template AF_Signalling_Protocol_AVP mw_afSignallingProtocolSIP := {
          //Ref: ETSI TS 129 214 AF_Signalling_Protocol AVP
             aVP_Header := m_aVP_HeaderVid(c_vendIdAF_Signalling_Protocol_AVP, 4, omit),
             aVP_Data := SIP_E
          };
    
        template Media_Sub_Component_AVP m_mediaSubComponentUN (template UInt32 p_flowNumber, template Flow_Usage_Type p_flowUsageType ) := {
             aVP_Header := m_aVP_HeaderVid(c_vendIdMedia_Sub_Component_AVP,
             								12 // flow_Number
+217 −0

File changed.

Preview size limit exceeded, changes collapsed.