Commit 5efcac9f authored by rennoch's avatar rennoch
Browse files

missing RT08-10, correction of RT-Answer in other RTxx

parent fff60a2a
Loading
Loading
Loading
Loading
+221 −33
Original line number Diff line number Diff line
@@ -2610,17 +2610,12 @@ module DiameterCxDx_Cx_TCFunctions {
                                                                //     indicating any deregistration reason
                                    mw_reason_Code_AVP
                    ))));
                    //TODO: DF: Are you sure this is 'awaiting'?
                    f_awaiting_RTA(
                        mw_RTA_Msg(
                            vc_sessionId, 
                            mw_RTA_ResulExpre(
                                mw_resultCode(
                                    DIAMETER_SUCCESS_E          // containing a Result-Code AVP
                                                                //     indicating DIAMETER_SUCCESS
                                ),
                                omit                            // not containing an Experimental-Result AVP
                    )));
                    f_send_RTA(m_RTA_Msg(vc_sessionId,
                                         m_RTA_basic(vc_originHost,
                                                     vc_originRealm,
                                                     m_resultCode
                                                     (DIAMETER_SUCCESS_E),
                                                     omit)));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    
                    // Postamble
@@ -2661,8 +2656,14 @@ module DiameterCxDx_Cx_TCFunctions {
                                ),
                                superset(vc_publicIdentity)
                    )));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    f_send_RTA(m_RTA_Msg(vc_sessionId,
                                         m_RTA_basic(vc_originHost,
                                                     vc_originRealm,
                                                     m_resultCode
                                                     (DIAMETER_SUCCESS_E),
                                                     omit)));                    
                    // Postamble
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                    f_postamble_HSS();
@@ -2709,7 +2710,12 @@ module DiameterCxDx_Cx_TCFunctions {
                                }
                    )));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    
                    f_send_RTA(m_RTA_Msg(vc_sessionId,
                                         m_RTA_basic(vc_originHost,
                                                     vc_originRealm,
                                                     m_resultCode
                                                     (DIAMETER_SUCCESS_E),
                                                     omit)));                    
                    // Postamble
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                    f_postamble_HSS();
@@ -2762,6 +2768,12 @@ module DiameterCxDx_Cx_TCFunctions {
                    }
                    
                    // Postamble
                    f_send_RTA(m_RTA_Msg(vc_sessionId,
                                         m_RTA_basic(vc_originHost,
                                                     vc_originRealm,
                                                     m_resultCode
                                                     (DIAMETER_SUCCESS_E),
                                                     omit)));
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                    f_postamble_HSS();
                    
@@ -2812,17 +2824,12 @@ module DiameterCxDx_Cx_TCFunctions {
                    } else {
                        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    }
                    f_awaiting_RTA(
                        mw_RTA_Msg(
                            vc_sessionId, 
                            mw_RTA_ResulExpreAssEnt(
                                mw_resultCode(
                                    DIAMETER_SUCCESS_E          // containing a Result-Code AVP
                                                                //     indicating DIAMETER_SUCCESS
                                ),
                                omit,                           // not containing an Experimental-Result AVP
                                ? // TODO To be refined
                    )));
                    f_send_RTA(m_RTA_Msg(vc_sessionId,
                                         m_RTA_basic(vc_originHost,
                                                     vc_originRealm,
                                                     m_resultCode
                                                     (DIAMETER_SUCCESS_E),
                                                     omit)));
                    
                    // Postamble
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
@@ -2880,6 +2887,12 @@ module DiameterCxDx_Cx_TCFunctions {
                    }
                    
                    // Postamble
                    f_send_RTA(m_RTA_Msg(vc_sessionId,
                                         m_RTA_basic(vc_originHost,
                                                     vc_originRealm,
                                                     m_resultCode
                                                     (DIAMETER_SUCCESS_E),
                                                     omit)));
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                    f_postamble_HSS();
                    
@@ -2932,23 +2945,198 @@ module DiameterCxDx_Cx_TCFunctions {
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    } else {
                        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    };
                    f_send_RTA(m_RTA_Msg(vc_sessionId,
                                         m_RTA_basic(vc_originHost,
                                                     vc_originRealm,
                                                     m_resultCode
                                                     (DIAMETER_SUCCESS_E),
                                                     omit)));
                    // Postamble
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                    f_postamble_HSS();
                    
                } // End of function f_TC_CX_HSS_RT_07_I_S

                /*
                 *  @desc    Verify that the IUT can successfully indicate a change of S-CSCF server.
                 */
                function f_TC_CX_HSS_RT_08_I_S2() runs on DiameterCx {
                    
                    // Local variables
                    
                    // Preamble
                    // Clause 'Initial conditions'
                    f_preamble_HSS();
                    f_registratonCx(PX_UserName, PX_ServiceIdentity); // Public Service Identities
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                    
                    // Test Body
                    // Clause 'when': the IUT is requested to indicate a request for change of S-CSCF server
                    action("The IUT is requested to indicate a request for change of S-CSCF server");
                    
                    // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer
                    f_awaiting_RTR(
                        mw_RTR_Msg(
                            vc_sessionId,                       // containing a Session-ID AVP
                            mw_RTR_publicIdentity(
                                vc_originHost,
                                vc_originRealm,
                                vc_destinationHost,
                                vc_destinationRealm,
                                vc_userName,                                            // containing a User-Name AVP
                                                                                        //     indicating the private user identity
                                mw_deregistration_Reason_AVP(                           // containing a Deregistration-Reason AVP
                                                                                        //     indicating any deregistration reason
                                    mw_reason_Code_AVP
                                ),
                                {                                                       // containing more than one Public-Identity AVP
                                                                                        //     indicating a public service identity matching the wildcarded public service identity provided by the SA-Request message
                                    valueof(vc_publicIdentity)
                                }
                    f_awaiting_RTA(
                        mw_RTA_Msg(
                            vc_sessionId, 
                            mw_RTA_ResulExpre(
                                mw_resultCode(
                                    DIAMETER_SUCCESS_E          // containing a Result-Code AVP
                                                                //     indicating DIAMETER_SUCCESS
                    )));
                    if (ispresent(vc_recvDiamMsg.rTR_MSG.rTR_Body.public_Identity)) {           // not containing a list of Public-Identity AVP
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    } else if (
                        vc_recvDiamMsg.rTR_MSG.rTR_Body.deregistration_Reason.reason_Code.aVP_Data != NEW_SERVER_ASSIGNED_E 
                    ) {
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    } else {
                        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    }
                    f_send_RTA(m_RTA_Msg(vc_sessionId,
                                         m_RTA_basic(vc_originHost,
                                                     vc_originRealm,
                                                     m_resultCode
                                                     (DIAMETER_SUCCESS_E),
                                                     omit)));

                    
                    // Postamble
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                    f_postamble_HSS();
                    
                } // End of function f_TC_CX_HSS_RT_08_I_S2

                /*
                 *  @desc    Verify that the IUT can successfully indicate a change of S-CSCF server.
                 */
                function f_TC_CX_HSS_RT_09_I_S2() runs on DiameterCx {
                    
                    // Local variables
                    
                    // Preamble
                    // Clause 'Initial conditions'
                    f_preamble_HSS();
                    f_registratonCx(PX_UserName, PX_ServiceIdentity); // Public Service Identities
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                    
                    // Test Body
                    // Clause 'when': the IUT is requested to indicate a change of S-CSCF server
                    action("The IUT is requested to indicate a change of S-CSCF server");
                    
                    // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer
                    f_awaiting_RTR(
                        mw_RTR_Msg(
                            vc_sessionId,                       // containing a Session-ID AVP
                            mw_RTR_publicIdentity(
                                vc_originHost,
                                vc_originRealm,
                                vc_destinationHost,
                                vc_destinationRealm,
                                vc_userName,                                            // containing a User-Name AVP
                                                                                        //     indicating the private user identity
                                mw_deregistration_Reason_AVP(                           // containing a Deregistration-Reason AVP
                                                                                        //     indicating any deregistration reason
                                    mw_reason_Code_AVP
                                ),
                                omit                            // not containing an Experimental-Result AVP
                                {                                                       // containing more than one Public-Identity AVP
                                                                                        //     indicating a public service identity matching the wildcarded public service identity provided by the SA-Request message
                                    valueof(vc_publicIdentity)
                                }
                    )));
                    if (ispresent(vc_recvDiamMsg.rTR_MSG.rTR_Body.public_Identity)) {           // not containing a list of Public-Identity AVP
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    } else if (
                        vc_recvDiamMsg.rTR_MSG.rTR_Body.deregistration_Reason.reason_Code.aVP_Data != SERVER_CHANGE_E 
                    ) {
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    } else {
                        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    }
                    f_send_RTA(m_RTA_Msg(vc_sessionId,
                                         m_RTA_basic(vc_originHost,
                                                     vc_originRealm,
                                                     m_resultCode
                                                     (DIAMETER_SUCCESS_E),
                                                     omit)));

                    
                    // Postamble
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                    f_postamble_HSS();
                    
                } // End of function f_TC_CX_HSS_RT_07_I_S
                } // End of function f_TC_CX_HSS_RT_09_I_S2

                /*
                 *  @desc    Verify that the IUT can successfully indicate removing of a S-CSCF server.
                 */
                function f_TC_CX_HSS_RT_10_I_S() runs on DiameterCx {
                    
                    // Local variables
                    
                    // Preamble
                    // Clause 'Initial conditions'
                    f_preamble_HSS();
                    f_registratonCx(PX_UserName, PX_ServiceIdentity); // Public Service Identities
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                    
                    // Test Body
                    // Clause 'when': the IUT is requested to indicate removing of a S-CSCF server
                    action("The IUT is requested to indicate removing of a S-CSCF server");
                    
                    // Clause 'then': the IUT sends an RT-Request and receives an RT-Answer
                    f_awaiting_RTR(
                        mw_RTR_Msg(
                            vc_sessionId,                       // containing a Session-ID AVP
                            mw_RTR_publicIdentity(
                                vc_originHost,
                                vc_originRealm,
                                vc_destinationHost,
                                vc_destinationRealm,
                                vc_userName,                                            // containing a User-Name AVP
                                                                                        //     indicating the private user identity
                                mw_deregistration_Reason_AVP(                           // containing a Deregistration-Reason AVP
                                                                                        //     indicating any deregistration reason
                                    mw_reason_Code_AVP
                                ),
                                {                                                       // containing more than one Public-Identity AVP
                                                                                        //     indicating a public service identity matching the wildcarded public service identity provided by the SA-Request message
                                    valueof(vc_publicIdentity)
                                }
                    )));
                    if (ispresent(vc_recvDiamMsg.rTR_MSG.rTR_Body.public_Identity)) {           // not containing a list of Public-Identity AVP
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    } else if (
                        vc_recvDiamMsg.rTR_MSG.rTR_Body.deregistration_Reason.reason_Code.aVP_Data != REMOVE_S_CSCF_E 
                    ) {
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    } else {
                        f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    }
                    f_send_RTA(m_RTA_Msg(vc_sessionId,
                                         m_RTA_basic(vc_originHost,
                                                     vc_originRealm,
                                                     m_resultCode
                                                     (DIAMETER_SUCCESS_E),
                                                     omit)));

                    
                    // Postamble
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                    f_postamble_HSS();
                    
                } // End of function f_TC_CX_HSS_RT_10_I_S
                
            } // group TP_HSSRole_RT
            
+61 −10
Original line number Diff line number Diff line
@@ -3041,7 +3041,7 @@ module DiameterCxDx_TestCases
                runs on DiameterCx
                system TestAdapter {
                    // Local variables
                    var DiameterCx v_diameterComponent_hss, v_diameterComponent_scscf,v_diameterComponent_scscf2;
                    var DiameterCx v_diameterComponent_hss;
                    
                    // Test control
                    if (not PICS_HSS_IUT) {
@@ -3050,18 +3050,69 @@ module DiameterCxDx_TestCases
                    }

                    // Test component configuration
                    f_cf_3CxUp_HSS(v_diameterComponent_hss, v_diameterComponent_scscf, v_diameterComponent_scscf2);
                    f_cf_1CxUp_HSS(v_diameterComponent_hss);
                    
                    // Start
                    //v_diameterComponent_hss.start(f_TC_CX_HSS_RT_08_I());
                    //v_diameterComponent_scscf.start(f_TC_CX_HSS_RT_08_S());
                    //v_diameterComponent_scscf.start(f_TC_CX_HSS_RT_08_S2());
                    v_diameterComponent_hss.start(f_TC_CX_HSS_RT_08_I_S2());
                    
                    // synchronize PTC on 3 sychronization points
                    f_serverSyncNClients(3,{c_prDone, c_tbDone, c_poDone});
                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClients(1, {c_prDone, c_tbDone, c_poDone});
                    
                    f_cf_1CxDown_HSS(v_diameterComponent_hss);

                    f_cf_3CxDown_HSS(v_diameterComponent_hss, v_diameterComponent_scscf, v_diameterComponent_scscf2);
                } // End of TC_CX_HSS_RT_08
                

                testcase TC_CX_HSS_RT_09()
                runs on DiameterCx
                system TestAdapter {
                    // Local variables
                    var DiameterCx v_diameterComponent_hss;
                    
                    // Test control
                    if (not PICS_HSS_IUT) {
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); 
                        stop;
                    }

                    // Test component configuration
                    f_cf_1CxUp_HSS(v_diameterComponent_hss);
                    
                    // Start
                    v_diameterComponent_hss.start(f_TC_CX_HSS_RT_09_I_S2());
                    
                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClients(1, {c_prDone, c_tbDone, c_poDone});
                    
                    f_cf_1CxDown_HSS(v_diameterComponent_hss);

                } // End of TC_CX_HSS_RT_09                

                testcase TC_CX_HSS_RT_10()
                runs on DiameterCx
                system TestAdapter {
                    // Local variables
                    var DiameterCx v_diameterComponent_hss;
                    
                    // Test control
                    if (not PICS_HSS_IUT) {
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); 
                        stop;
                    }

                    // Test component configuration
                    f_cf_1CxUp_HSS(v_diameterComponent_hss);
                    
                    // Start
                    v_diameterComponent_hss.start(f_TC_CX_HSS_RT_10_I_S());
                    
                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClients(1, {c_prDone, c_tbDone, c_poDone});
                    
                    f_cf_1CxDown_HSS(v_diameterComponent_hss);

                } // End of TC_CX_HSS_RT_10
                
            } // group TP_HSSRole_RT
            
            group TP_HSSRole_LI {//Cx LI
+3 −0
Original line number Diff line number Diff line
@@ -77,6 +77,9 @@ module DiameterCxDx_TestControl {
                execute(TC_CX_HSS_RT_05());
                execute(TC_CX_HSS_RT_06());
                execute(TC_CX_HSS_RT_07());
                execute(TC_CX_HSS_RT_08());
                execute(TC_CX_HSS_RT_09());
                execute(TC_CX_HSS_RT_10());
            }
            execute(TC_CX_HSS_RT_08());