Commit 667e8ede authored by rennoch's avatar rennoch
Browse files

add declarations for TC_HPCRF_VST

parent 9b4da170
Loading
Loading
Loading
Loading
+129 −0
Original line number Diff line number Diff line
@@ -995,6 +995,135 @@ module DiameterS9_S9_TCFunctions {

        group TP_HPCRFRole_VST {//S9 visited access (session/subsession termination)

            /*
            *  @desc    This is the test case function TC_HPCRF_VST_01
            *  @param
            */
            function f_TC_HPCRF_VST_01()
            runs on DiameterComponent {

                f_preamble_VPCRF();
                
                f_initiate_session_VPCRF();

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

                f_send_CCR(m_CCR_TerminationRequestBBERFatt(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm,
                                				m_qoS_Information_dummy // BBERF attributes TODO: to check more required AVPs         								    
                								));

                f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess)));

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

                f_postamble_VPCRF();

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

            } // end function TC_HPCRF_VST_01

            /*
            *  @desc    This is the test case function TC_HPCRF_VST_02
            *  @param
            */
            function f_TC_HPCRF_VST_02()
            runs on DiameterComponent {

                f_preamble_VPCRF();
                
                f_initiate_session_VPCRF();

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

                f_send_CCR(m_CCR_UpdateRequest_SubSessEnfInf_Qos(vc_sessionId,
                                                vc_originHost,
                                                vc_originRealm,
                                                vc_destinationRealm,
                                                {m_qoSRuleReport_dummy},
                                                m_qoS_Information_dummy, // BBERF attributes TODO: to check more required AVPs 
                                                {m_subsesEnforcementInfo_Operation(m_subsessionId_dummy(1),
                                                        m_subsessionOperation_dummy(Subsession_Operation_Code:TERMINATION_E))}                                                        								    
                                                )
                                                );

                f_awaiting_CCA(mw_CCA_ResultCode_SubsesDecInfo(vc_sessionId,
                    vc_originHost_IUT, vc_originRealm_IUT,
                    mw_resultCode(mw_resultCode_diameterSuccess),
                    {mw_SubsesDecisionInfo_resultCode(mw_subsessionId_dummy(1),mw_resultCode(mw_resultCode_diameterSuccess))}) );

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

                f_postamble_VPCRF();

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

            } // end function TC_HPCRF_VST_02

            /*
            *  @desc    This is the test case function TC_HPCRF_VST_03
            *  @param
            */
            function f_TC_HPCRF_VST_03()
            runs on DiameterComponent {

                f_preamble_VPCRF();
                
                f_initiate_session_VPCRF();

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

                action("Please trigger PCRF for RAR to terminate session.");

                //activation of PCC rule
                f_awaiting_RAR(mw_RAR_sessReleaseCause(vc_sessionId, ?, ?, ?, ?));

                f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess)));


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

                //session termination
                f_terminate_session_VPCRF();

                f_postamble_VPCRF();

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

            } // end function TC_HPCRF_VST_03

            /*
            *  @desc    This is the test case function TC_HPCRF_VST_04
            *  @param
            */
            function f_TC_HPCRF_VST_04()
            runs on DiameterComponent {

                f_preamble_VPCRF();
                
                f_initiate_session_VPCRF();

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

                action("Please trigger PCRF for RAR to terminate session.");

                //activation of PCC rule
                f_awaiting_RAR(mw_RAR_SubsessDecInfo(vc_sessionId, ?, ?, ?, ?,
                                                                {mw_SubsesDecisionInfo_SessRelCause(mw_subsessionId_dummy(1),?)}));

                f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess)));


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

                //session termination
                f_terminate_session_VPCRF();

                f_postamble_VPCRF();

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

            } // end function TC_HPCRF_VST_04
        
        } // group TP_HPCRFRole_VST   
        
    } // group TP_HPCRFRole