Commit 78f5150f authored by rennoch's avatar rennoch
Browse files

CX_CSCF_RT tests

parent ce1f46e4
Loading
Loading
Loading
Loading
+190 −0
Original line number Diff line number Diff line
@@ -3936,6 +3936,196 @@ module DiameterCxDx_Cx_TCFunctions {

            } // group TP_CSCFRole_SA
            group TP_CSCFRole_RT {//Cx RT

                function f_TC_CX_CSCF_RT_01_UA(in CSeq p_cSeq_s) runs on ImsComponent {

                    f_TC_CX_CSCF_SA_04_UA(p_cSeq_s)

                }

                function f_TC_CX_CSCF_RT_01_HSS() runs on DiameterCx {
                    // Local variables
                    // Preamble
                    // Clause 'Initial conditions'
                    f_preamble_HSS();
                    
                    //waiting for the first registration message
                    f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR));
                    f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                  
                    f_awaiting_MAR(mw_MAR_Msg(?, mw_MAR_basic));
                    f_send_UAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

                    //waiting for the first (authorized) registration message                    
                    f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR()));
                    f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                    
                    f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic));
                    f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                    
                    // Test Body
					// the IUT sends a RT-Request (network initiated
					// de-registration)
					f_send_RTR(m_RTR_Msg(vc_sessionId,
										 m_RTR_basic
										 (vc_originHost, vc_originRealm,
										  vc_destinationHost,
										  vc_destinationRealm, vc_userName,
										  m_deregistrationReason
										  (// containing a Deregistration-Reason
										   // AVP
										   // indicating any deregistration
										   // reason
										   m_reasonCode
										   (PERMANENT_TERMINATION_E)))));

                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    
                    // Postamble

                    f_awaiting_RTA(mw_RTA_Msg(?, mw_RTA_basic));

                    f_postamble_HSS();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                }

				function f_TC_CX_CSCF_RT_02_UA(in CSeq p_cSeq_s) runs on ImsComponent {

					// Preamble
					// Send the IMS emergency registration
					f_preamble_UE_emergencyRegistration(p_cSeq_s);
					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
					// Postamble
					f_RemoveRegistration(vc_cSeq); // deregistration in SUT
					f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());

				}

				function f_TC_CX_CSCF_RT_02_HSS() runs on DiameterCx {
					// Local variables
					// Preamble
					// Clause 'Initial conditions'
					f_preamble_HSS();
					
                    //waiting for the first registration message
                    f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR));
                    f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                  
                    f_awaiting_MAR(mw_MAR_Msg(?, mw_MAR_basic));
                    f_send_UAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

                    //waiting for the first (authorized) registration message                    
                    f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR()));
                    f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                    
                    f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic));
                    f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                    
					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                    
					// Test Body

					f_send_RTR(m_RTR_Msg(vc_sessionId,
										 m_RTR_basic
										 (vc_originHost, vc_originRealm,
										  vc_destinationHost,
										  vc_destinationRealm, vc_userName,
										  m_deregistrationReason
										  (// containing a Deregistration-Reason
										   // AVP
										   // indicating permanent termination
										   // reason
										   m_reasonCode
										   (PERMANENT_TERMINATION_E)))));
					f_awaiting_RTA(mw_RTA_Msg(?, mw_RTA_ResulExpreIDwER(

					           mw_resultCode(DIAMETER_UNABLE_TO_COMPLY_E),omit,
					           ? // list of private/public identity pair

                                )));

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    
					// Postamble
					//de-registration
					f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR()));
					f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

					f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic));
					f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

                    
					f_postamble_HSS();
					f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
				}
				function f_TC_CX_CSCF_RT_03_UA(in CSeq p_cSeq_s) runs on ImsComponent {

					f_TC_CX_CSCF_RT_02_UA(p_cSeq_s)

				}

				function f_TC_CX_CSCF_RT_03_HSS() runs on DiameterCx {
					// Local variables
					// Preamble
					// Clause 'Initial conditions'
					f_preamble_HSS();
                    
					//waiting for the first registration message
					f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR));
					f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                  
					f_awaiting_MAR(mw_MAR_Msg(?, mw_MAR_basic));
					f_send_UAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

					//waiting for the first (authorized) registration message                    
					f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR()));
					f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                    
					f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic));
					f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                    
					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                    
					// Test Body

					f_send_RTR(m_RTR_Msg(vc_sessionId,
										 m_RTR_basic
										 (vc_originHost, vc_originRealm,
										  vc_destinationHost,
										  vc_destinationRealm, vc_userName,
										  m_deregistrationReason
										  (// containing a Deregistration-Reason
										   // AVP
										   // indicating permanent termination
										   // reason
										   m_reasonCode
										   (REMOVE_S_CSCF_E)))));
					f_awaiting_RTA(mw_RTA_Msg(?, mw_RTA_ResulExpreIDwER(

							   mw_resultCode(DIAMETER_LIMITED_SUCCESS_E),omit,
							   ? // list of private/public identity pair

								)));

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    
					// Postamble
					//de-registration
					f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR()));
					f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

					f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic));
					f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

                    
					f_postamble_HSS();
					f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
				}
				
            } // group TP_CSCFRole_RT
            group TP_CSCFRole_LI {//Cx LI
            } // group TP_CSCFRole_LI
+10 −7
Original line number Diff line number Diff line
@@ -1365,6 +1365,15 @@ module DiameterCxDx_Templates {
                    experimental_Result := p_experimentalResult
                }

				template RTA_Body_AVP mw_RTA_ResulExpreIDwER (template Result_Code_AVP p_resultCode, 
														 template Experimental_Result_AVP p_experimentalResult,
														 template RTA_Body_AVP.identity_with_Emergency_Registration p_identityWithEmergencyRegistration)
				modifies mw_RTA_basic := {
					result_Code := p_resultCode,
					experimental_Result := p_experimentalResult,
					identity_with_Emergency_Registration := p_identityWithEmergencyRegistration
				}
                
				template RTA_Body_AVP mw_RTA_ResulExpreAssEnt (template Result_Code_AVP p_resultCode, 
															   template Experimental_Result_AVP p_experimentalResult,
															   template Associated_Identities_AVP p_associatedIdentities
@@ -1372,12 +1381,6 @@ module DiameterCxDx_Templates {
					associated_Identities := p_associatedIdentities
				}                	
                  
                template Failed_AVP mmm := {
                	aVP_Header := ?,
                    aVP := ?
                }
                	
                  
                template RTA_Body_AVP mw_RTA_ResulExpreFailedAVP (template Result_Code_AVP p_resultCode, 
                                                                  template Experimental_Result_AVP p_experimentalResult,
                                                                  template (present) AVP_Code p_code