Commit ce1f46e4 authored by rennoch's avatar rennoch
Browse files

CX_CSCF_SA tests

parent 1b186b6a
Loading
Loading
Loading
Loading
+175 −17
Original line number Diff line number Diff line
@@ -3529,7 +3529,13 @@ module DiameterCxDx_Cx_TCFunctions {
                    f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                    
                    f_postamble_HSS();
                    //de-registration?
                    //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_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                }

@@ -3597,7 +3603,13 @@ module DiameterCxDx_Cx_TCFunctions {

                    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))));
                    // de-registration?
					//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_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                }

@@ -3724,7 +3736,13 @@ module DiameterCxDx_Cx_TCFunctions {
                    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))));

                    // de-registration?
					//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());
@@ -3733,49 +3751,189 @@ module DiameterCxDx_Cx_TCFunctions {
            } // group TP_CSCFRole_UA
            group TP_CSCFRole_SA {//Cx SA
                function f_TC_CX_CSCF_SA_01_UA(in CSeq p_cSeq_s) runs on ImsComponent {

					f_TC_CX_CSCF_UA_01_UA(p_cSeq_s)

                }
                function f_TC_CX_CSCF_SA_01_HSS() runs on DiameterCx {
                    // Local variables
                    // Preamble
                    //Registration
                    f_preamble_UE_registration(p_cSeq_s);
                    // Clause 'Initial conditions'
                    f_preamble_HSS();
                    
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                    
                    // Send registration message to I-CSCF
                    // NOTE: internal behaviour of SUT
                    // Test Body
                    // the IUT sends a UA-Request
                    
                    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_MAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

                    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(?,?,?,omit,mw_authSessionState(NO_STATE_MAINTAINED_E),{?},?,mw_serverAssignmentType(REGISTRATION_E),?)));
        
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    
                    // Postamble
                    f_RemoveRegistration(vc_cSeq); // deregistration in SUT
					f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

					//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_SA_01_HSS() runs on DiameterCx {

                function f_TC_CX_CSCF_SA_02_UA(in CSeq p_cSeq_s) runs on ImsComponent {

					f_TC_CX_CSCF_UA_02_UA(p_cSeq_s)

                }
                function f_TC_CX_CSCF_SA_02_HSS() runs on DiameterCx {
                    // Local variables
                    // Preamble: first complete registration
                    f_preamble_HSS();

                    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_MAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                  
                    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 UA-Request due to re-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(?,?,?,omit,mw_authSessionState(NO_STATE_MAINTAINED_E),{?},?,mw_serverAssignmentType(RE_REGISTRATION_E),?)));
        
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    
                    // Postamble
                    f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

					//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_SA_03_UA(in CSeq p_cSeq_s) runs on ImsComponent {

					f_TC_CX_CSCF_UA_03_UA(p_cSeq_s)

				}

                function f_TC_CX_CSCF_SA_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
                    // the IUT sends a UA-Request
                    // the IUT sends a UA-Request (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(?,?,?,omit,mw_authSessionState(NO_STATE_MAINTAINED_E),{?},?,mw_serverAssignmentType(USER_DEREGISTRATION_E),?)));

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

                    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_SA_04_UA(in CSeq p_cSeq_s) runs on ImsComponent {
					// Preamble
					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
					// Send the IMS emergency registration
					f_preamble_UE_emergencyRegistration(p_cSeq_s);
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
					// Postamble
					// network-initiated de-registration in SUT
					f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
				}

                function f_TC_CX_CSCF_SA_04_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_MAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                    f_send_UAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));

                    f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR));
                    //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(?,?,?,omit,mw_authSessionState(NO_STATE_MAINTAINED_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 SA-Request (network initiated de-registration)

                    f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR(?,?,?,omit,mw_authSessionState(NO_STATE_MAINTAINED_E),{?},?,mw_serverAssignmentType(TIMEOUT_DEREGISTRATION_E),?)));

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

                    f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E))));
                    // de-registration?

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

            } // group TP_CSCFRole_SA
            group TP_CSCFRole_RT {//Cx RT
            } // group TP_CSCFRole_RT
+1 −1
Original line number Diff line number Diff line
@@ -275,7 +275,7 @@ module DiameterCxDx_Templates {
                    aVP_Type       := *
                }
                
				template Server_Assignment_Type_AVP mw_serverAssignmentType(template (value) Srv_Assgmt_Type_Code p_avpData) := {
				template Server_Assignment_Type_AVP mw_serverAssignmentType(template Srv_Assgmt_Type_Code p_avpData) := {
					aVP_Header := mw_aVP_Header_VMbit1(c_server_Assignment_Type_AVP_Code),
					aVP_Data := p_avpData
				}