Commit 5bad4d4c authored by juvancic's avatar juvancic
Browse files

added tests of 308-309 group

parent 905d4fc7
Loading
Loading
Loading
Loading
+416 −1
Original line number Diff line number Diff line
@@ -8188,7 +8188,7 @@ module SipIsup_IMS_TCFunctions {

					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					f_sendResponse(m_Response_4XXonINVITE(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
     				f_sendResponse(m_Response_XXXonINVITE(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
@@ -8198,12 +8198,427 @@ module SipIsup_IMS_TCFunctions {
 
				}// end function f_IMS_TC_308_003
				


				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_308_004
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_308_004(in CSeq p_cSeq_s) runs on ImsComponent {

					// expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP308004 - Table 14
					var StatusLine v_statusLine[37]; 
					// dummy value for index 0 (unused)
					v_statusLine[0] := c_statusLine100;//not used
					v_statusLine[1] := c_statusLine400;
					v_statusLine[2] := c_statusLine401;
					v_statusLine[3] := c_statusLine402;
					v_statusLine[4] := c_statusLine403;
					v_statusLine[5] := c_statusLine405;
					v_statusLine[6] := c_statusLine406;
					v_statusLine[7] := c_statusLine407;
					v_statusLine[8] := c_statusLine408;
					v_statusLine[9] := c_statusLine410;
					v_statusLine[10] := c_statusLine413;
					v_statusLine[11] := c_statusLine414;
					v_statusLine[12] := c_statusLine415;
					v_statusLine[13] := c_statusLine416;
					v_statusLine[14] := c_statusLine420;
					v_statusLine[15] := c_statusLine421;
					v_statusLine[16] := c_statusLine423;
					v_statusLine[17] := c_statusLine480;
					v_statusLine[18] := c_statusLine481;
					v_statusLine[19] := c_statusLine482;
					v_statusLine[20] := c_statusLine483;
					v_statusLine[21] := c_statusLine485;
					v_statusLine[22] := c_statusLine486;
					v_statusLine[23] := c_statusLine488;
					v_statusLine[24] := c_statusLine493;
					v_statusLine[25] := c_statusLine500;
					v_statusLine[26] := c_statusLine501;
					v_statusLine[27] := c_statusLine502;
					v_statusLine[28] := c_statusLine503;
					v_statusLine[29] := c_statusLine504;
					v_statusLine[30] := c_statusLine505;
					v_statusLine[31] := c_statusLine513;
					v_statusLine[32] := c_statusLine580;
					v_statusLine[33] := c_statusLine600;
					v_statusLine[34] := c_statusLine603;
					v_statusLine[35] := c_statusLine604;
					v_statusLine[36] := c_statusLine606;

					// PREAMBLE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
					// TESTBODY

					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					f_sendResponse(m_Response_XXXonINVITE_Reason(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,PX_CauseValue));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done

					// POSTAMBLE
					f_SIP_postamble_IMS1_withoutRegistration ()
 
				}// end function f_IMS_TC_308_004
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_308_005
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_308_005(in CSeq p_cSeq_s) runs on ImsComponent {

					// expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP308005 - Table 14
					var StatusLine v_statusLine[37]; 
					// dummy value for index 0 (unused)
					v_statusLine[0] := c_statusLine100;//not used
					v_statusLine[1] := c_statusLine400;
					v_statusLine[2] := c_statusLine401;
					v_statusLine[3] := c_statusLine402;
					v_statusLine[4] := c_statusLine403;
					v_statusLine[5] := c_statusLine405;
					v_statusLine[6] := c_statusLine406;
					v_statusLine[7] := c_statusLine407;
					v_statusLine[8] := c_statusLine408;
					v_statusLine[9] := c_statusLine410;
					v_statusLine[10] := c_statusLine413;
					v_statusLine[11] := c_statusLine414;
					v_statusLine[12] := c_statusLine415;
					v_statusLine[13] := c_statusLine416;
					v_statusLine[14] := c_statusLine420;
					v_statusLine[15] := c_statusLine421;
					v_statusLine[16] := c_statusLine423;
					v_statusLine[17] := c_statusLine480;
					v_statusLine[18] := c_statusLine481;
					v_statusLine[19] := c_statusLine482;
					v_statusLine[20] := c_statusLine483;
					v_statusLine[21] := c_statusLine485;
					v_statusLine[22] := c_statusLine486;
					v_statusLine[23] := c_statusLine488;
					v_statusLine[24] := c_statusLine493;
					v_statusLine[25] := c_statusLine500;
					v_statusLine[26] := c_statusLine501;
					v_statusLine[27] := c_statusLine502;
					v_statusLine[28] := c_statusLine503;
					v_statusLine[29] := c_statusLine504;
					v_statusLine[30] := c_statusLine505;
					v_statusLine[31] := c_statusLine513;
					v_statusLine[32] := c_statusLine580;
					v_statusLine[33] := c_statusLine600;
					v_statusLine[34] := c_statusLine603;
					v_statusLine[35] := c_statusLine604;
					v_statusLine[36] := c_statusLine606;

					// PREAMBLE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
					// TESTBODY

					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					
					select(PX_SIP_MESSAGE_VA) {           
						case(1){f_sendResponse(m_Response_18XonINVITE(c_statusLine180,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case(2){f_sendResponse(m_Response_18XonINVITE(c_statusLine181,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case(3){f_sendResponse(m_Response_18XonINVITE(c_statusLine182,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case(4){f_sendResponse(m_Response_18XonINVITE(c_statusLine183,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case else {log("Invalid PX_SIP_MESSAGE_VA variant (",PX_SIP_MESSAGE_VA,"), available variant 1-4");}
					}
					
					f_sendResponse(m_Response_XXXonINVITE_Reason(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,PX_CauseValue));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done

					// POSTAMBLE
					f_SIP_postamble_IMS1_withoutRegistration ()
 
				}// end function f_IMS_TC_308_005
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_308_006
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_308_006(in CSeq p_cSeq_s) runs on ImsComponent {

					// expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP308006 - Table 16
					var StatusLine v_statusLine[6]; 
					// dummy value for index 0 (unused)
					v_statusLine[0] := c_statusLine100;//not used
					v_statusLine[1] := c_statusLine300;
					v_statusLine[2] := c_statusLine301;
					v_statusLine[3] := c_statusLine302;
					v_statusLine[4] := c_statusLine305;
					v_statusLine[5] := c_statusLine380;
										
					// PREAMBLE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
					// TESTBODY

					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					f_sendResponse(m_Response_XXXonINVITE(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done

					// POSTAMBLE
					f_SIP_postamble_IMS1_withoutRegistration ()
 
				}// end function f_IMS_TC_308_006

			} // end group TP308_Sending_REL
	
			group TP309_AutonomousRelease {
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_309_001
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_309_001(in CSeq p_cSeq_s) runs on ImsComponent {
										
					var StatusLine v_statusLine[6]; 
					// dummy value for index 0 (unused)
					v_statusLine[0] := c_statusLine100;//not used
					v_statusLine[1] := c_statusLine484;
					v_statusLine[2] := c_statusLine404;

					//if (not(PICS_3_2)){
					//	log("Check setting of PICS_3_2");
					//	setverdict(inconc); 
					//	stop;
					//}
					// PREAMBLE
					// IMS component interface initialization
					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
					// TESTBODY
					
					//Awaiting INVITE	
					//f_awaitingINVITE(mw_INVITE_Request_Base); 
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
										
					f_sendResponse(m_Response_4XXonINVITE(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
					
					f_wait(PX_Timeout_TOIW3 - PX_Timeout_TOIW3/0.1); // wait T(I/W)3 before end
					
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point
										
					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_IMS1_withoutRegistration ()
    					
				}// end function f_IMS_TC_309_001
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_309_002
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_309_002(in CSeq p_cSeq_s) runs on ImsComponent {
										
					var StatusLine v_statusLine[6]; 
					// dummy value for index 0 (unused)
					v_statusLine[0] := c_statusLine100;//not used
					v_statusLine[1] := c_statusLine484;
					v_statusLine[2] := c_statusLine404;

					//if (PICS_3_2){
					//	log("Check setting of PICS_3_2");
					//	setverdict(inconc); 
					//	stop;
					//}
					// PREAMBLE
					// IMS component interface initialization
					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
					// TESTBODY
					
					//Awaiting INVITE	
					//f_awaitingINVITE(mw_INVITE_Request_Base); 
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
										
					f_sendResponse(m_Response_4XXonINVITE(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_awaitingACK(mw_ACK_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_IMS1_withoutRegistration ()
    					
				}// end function f_IMS_TC_309_002
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_309_003
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_309_003(in CSeq p_cSeq_s) runs on ImsComponent {
					
					// PREAMBLE
					// IMS component interface initialization
					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
					// TESTBODY
					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
										
					f_awaitingCANCEL(mw_CANCEL_Request_Base(vc_callId));
					f_sendResponse(m_Response_onCANCEL(c_statusLine200,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_sendResponse(m_Response_onCANCEL(c_statusLine487,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done

					// POSTAMBLE
					f_SIP_postamble_IMS1_withoutRegistration ()
						
				}// end function f_IMS_TC_309_003
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_309_004
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_309_004(in CSeq p_cSeq_s) runs on ImsComponent {
					
					// PREAMBLE
					// IMS component interface initialization
					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
					// TESTBODY
					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point
										
					f_awaitingCANCEL(mw_CANCEL_Request_Base(vc_callId));
					f_sendResponse(m_Response_onCANCEL(c_statusLine200,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_sendResponse(m_Response_onCANCEL(c_statusLine487,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done

					// POSTAMBLE
					f_SIP_postamble_IMS1_withoutRegistration ()
					
				}// end function f_IMS_TC_309_004
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_309_005
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_309_005(in CSeq p_cSeq_s) runs on ImsComponent {
					
					// PREAMBLE
					// IMS component interface initialization
					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
					// TESTBODY
					
					//Awaiting INVITE	
					//f_awaitingINVITE(mw_INVITE_Request_Base); 
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
										
					f_sendResponse(m_Response_XXXonINVITE(c_statusLine580,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_awaitingACK(mw_ACK_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_IMS1_withoutRegistration ()
    					
				}// end function f_IMS_TC_309_005				

				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_309_006
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_309_006(in CSeq p_cSeq_s) runs on ImsComponent {
					
					// PREAMBLE
					// IMS component interface initialization
					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
					// TESTBODY
					
					//Awaiting INVITE	
					//f_awaitingINVITE(mw_INVITE_Request_Base); 
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
										
					f_sendResponse(m_Response_18XonINVITE(c_statusLine183,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_awaitingPRACK_sendReply(mw_PRACK_Request_Base(vc_callId));
					f_sendResponse(m_Response_XXXonINVITE(c_statusLine580,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_awaitingACK(mw_ACK_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_IMS1_withoutRegistration ()
    					
				}// end function f_IMS_TC_309_006

			} // end group TP309_AutonomousRelease
			
			group TP310_Receiving_RSC {
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_310_001
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_310_001(in CSeq p_cSeq_s) runs on ImsComponent {
					
					// PREAMBLE
					// IMS component interface initialization
					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
					// TESTBODY
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done

					// POSTAMBLE
					f_SIP_postamble_IMS1_withoutRegistration ()
						
				}// end function f_IMS_TC_310_001
				
			} // end group TP310_Receiving_RSC
			
			group TP311_Receiving_GRS {