Commit 77c9ec55 authored by pintar's avatar pintar
Browse files

new tests for groups VPCRF_HST and VPCRF_HMB

parent 3a506df9
Loading
Loading
Loading
Loading
+177 −0
Original line number Diff line number Diff line
@@ -347,6 +347,183 @@ module DiameterS9_Gxx_TCFunctions {

            } // end function f_TC_VPCRF_HPQ_04_BBERF1
        }// end group TP_VPCRFRole_HPQ

        group TP_VPCRFRole_HST{

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

                f_preamble_BBERF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                //CCR INITIAL REQUEST
                f_initiate_session_BBERF_case2a();
                //CCR SESSION TERMINATION
                f_send_CCR(m_CCR_Gxx_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, omit));

                f_awaiting_CCA(mw_CCA_Gxx_basic(vc_sessionId, vc_originHost, vc_originRealm));

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

                f_postamble_BBERF();

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

            } // end function f_TC_VPCRF_HST_01_BBERF1

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

                f_preamble_BBERF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                //CCR INITIAL REQUEST
                f_initiate_session_BBERF_case2b();
                //CCR SESSION TERMINATION
                f_send_CCR(m_CCR_Gxx_TerminationRequest(vc_sessionId, 
                                                        vc_originHost,
                                                        vc_originRealm,
                                                        vc_destinationRealm,
                                                        m_called_Station_Id(PX_CALLED_STATION_ID_PDN)
                                                        ));

                f_awaiting_CCA(mw_CCA_Gxx_basic(vc_sessionId, vc_originHost, vc_originRealm));

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

                f_postamble_BBERF();

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

            } // end function f_TC_VPCRF_HST_02_BBERF1

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

                f_preamble_BBERF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                //CCR INITIAL REQUEST
                f_initiate_session_BBERF_case2a();
                //RAR SESSION TERMINATION
                f_awaiting_RAR(mw_RAR_Gxx_SessRelCause(vc_sessionId, 
                                                    vc_originHost,
                                                    vc_originRealm,
                                                    vc_destinationRealm,
                                                    vc_destinationHost,
                                                    ?
                                                    ));

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

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

                f_terminate_session_BBERF(); // postamble

                f_postamble_BBERF();

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

            } // end function f_TC_VPCRF_HST_03_BBERF1

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

                f_preamble_BBERF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                //CCR INITIAL REQUEST
                f_initiate_session_BBERF_case2b();
                //RAR SESSION TERMINATION
                f_awaiting_RAR(mw_RAR_Gxx_SessRelCause(vc_sessionId, 
                                                    vc_originHost,
                                                    vc_originRealm,
                                                    vc_destinationRealm,
                                                    vc_destinationHost,
                                                    ?
                                                    ));

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

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

                f_terminate_session_BBERF(); // postamble

                f_postamble_BBERF();

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

            } // end function f_TC_VPCRF_HST_04_BBERF1
        }// end group TP_VPCRFRole_HST
        group TP_VPCRFRole_HMB{

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

                f_preamble_BBERF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                //CCR INITIAL REQUEST
                f_initiate_session_BBERF_case2a();

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

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

                f_terminate_session_BBERF(); // postamble

                f_postamble_BBERF();

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

            } // end function f_TC_VPCRF_HMB_01_BBERF1

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

                f_preamble_BBERF2();

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

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

                //CCR INITIAL REQUEST
                f_initiate_session_BBERF_case2a();

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

                f_terminate_session_BBERF(); // postamble

                f_postamble_BBERF();

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

            } // end function f_TC_VPCRF_HMB_01_BBERF2
        }// end group TP_VPCRFRole_HMB
    } // group TP_VPCRFRole    
    
}// end module DiameterS9_Gxx_TCFunctions
 No newline at end of file
+23 −3
Original line number Diff line number Diff line
@@ -366,20 +366,40 @@ module DiameterS9_Gxx_Templates {
                    }
                }

                
                template CCR_MSG m_CCR_Gxx_TerminationRequest(template Session_Id_AVP p_sessionId,
                                            template Origin_Host_AVP p_originHost,
                                            template Origin_Realm_AVP p_originRealm,
                                            template Destination_Realm_AVP p_destinationRealm)
                                            template Destination_Realm_AVP p_destinationRealm,
                                            template CCR_MSG.cCR_Body.called_Station_Id p_calledStationId)
                    modifies m_CCR_Gxx_basic :=
                {
                    cCR_Body := {
                        cC_Request_Type := m_cC_Request_Type(TERMINATION_REQUEST_E),
                        cC_Request_Number := m_cC_Request_Number(1)
                        cC_Request_Number := m_cC_Request_Number(1),
                        called_Station_Id     := p_calledStationId
                    }
                }
            } // end group Gxxmodified_request_templates_send
            group Gxxmodified_request_templates_receive {

                template RAR_MSG mw_RAR_Gxx_SessRelCause(template Session_Id_AVP            p_sessionId,
                                                         template Origin_Host_AVP        p_originHost,
                                                         template Origin_Realm_AVP       p_originRealm,
                                                         template Destination_Realm_AVP  p_destinationRealm,
                                                         template Destination_Host_AVP   p_destinationHost,
                                                         template RAR_MSG.rAR_Body.session_Release_Cause p_session_Release_Cause ) 
                modifies mw_RAR_Gxx_basic := {
                    header                    := mw_diameterHeaderReq_dummy ( RAR_E, c_applIdGxx ),
                    session_Id                := p_sessionId,
                    rAR_Body := {
                        auth_Application_Id   := mw_authApplicationId ( c_applIdGxx ),
                        origin_Host           := p_originHost,
                        origin_Realm          := p_originRealm,
                        destination_Realm     := p_destinationRealm,
                        destination_Host      := p_destinationHost,
                        session_Release_Cause := p_session_Release_Cause
                    }
                }
            } // end group Gxxmodified_request_templates_receive
            group Gxxmodified_answer_templates_send {
            } // end group Gxxmodified_answer_templates_send
+443 −0

File added.

Preview size limit exceeded, changes collapsed.

+228 −10
Original line number Diff line number Diff line
@@ -1163,10 +1163,16 @@ module DiameterS9_S9_TCFunctions {
                                                {m_qosRuleInstall_RuleName({m_qoSRuleName_dummy(PX_QOS_RULE_NAME_NOT_ACCEPTABLE)})}
                                               ));

                f_awaiting_RAA(mw_RAA_ResultCode(vc_sessionId,
                f_awaiting_RAA(mw_RAA_ExpResult_QoSRuleReport_QosInfo_SubsessEnfInfo
                                (vc_sessionId,
                                 vc_originHost,
                                 vc_originRealm,
                                                 mw_resultCode(mw_resultCode_diameterSuccess)));
                                 mw_experimentalResult(mw_expResultCode(DIAMETER_PCC_RULE_EVENT_E)),//experimental_result
                                 mw_qoS_Information_dummy,//qoS_Information
                                 {mw_qoSRuleReport_RuleName_FailureCode({mw_qoSRuleName_dummy(PX_QOS_RULE_NAME_NOT_ACCEPTABLE)},
                                                                         mw_ruleFailureCode_dummy(UNSUCCESSFUL_QOS_VALIDATION_E))},//qoS_Rule_Report
                                 *//subsesion_Enforcement_Info
                                 )); 

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

@@ -1200,10 +1206,18 @@ module DiameterS9_S9_TCFunctions {
                                                                                    {m_qosRuleInstall_RuleName({m_qoSRuleName_dummy(PX_QOS_RULE_NAME_NOT_ACCEPTABLE)})})}
                                               ));

                f_awaiting_RAA(mw_RAA_ResultCode(vc_sessionId,
                f_awaiting_RAA(mw_RAA_ExpResult_QoSRuleReport_QosInfo_SubsessEnfInfo
                                (vc_sessionId,
                                 vc_originHost,
                                 vc_originRealm,
                                                 mw_resultCode(mw_resultCode_diameterSuccess)));
                                 mw_experimentalResult(mw_expResultCode(DIAMETER_PCC_RULE_EVENT_E)),//experimental_result
                                 *,//qoS_Information within subsesEnforcementInfo
                                 *,//qoS_Rule_Report within subsesEnforcementInfo
                                 {mw_subsesEnforcementInfo_qosInfo(mw_subsessionId_dummy(?),
                                                                   mw_qoS_Information_dummy,//await QoS Information indicating acceptable Qos
                                                                   {mw_qoSRuleReport_RuleName_FailureCode({mw_qoSRuleName_dummy(PX_QOS_RULE_NAME_NOT_ACCEPTABLE)},
                                                                                                           mw_ruleFailureCode_dummy(UNSUCCESSFUL_QOS_VALIDATION_E))})}//subsesion_Enforcement_Info
                                 )); 

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

@@ -1274,10 +1288,16 @@ module DiameterS9_S9_TCFunctions {
                                                                                    {m_qosRuleInstall_RuleName({m_qoSRuleName_dummy(PX_QOS_RULE_NAME)})})}
                                               ));

                f_awaiting_RAA(mw_RAA_ResultCode(vc_sessionId,
                f_awaiting_RAA(mw_RAA_ExpResult_QoSRuleReport_QosInfo_SubsessEnfInfo
                                (vc_sessionId,
                                 vc_originHost,
                                 vc_originRealm,
                                                 mw_resultCode(mw_resultCode_diameterSuccess)));
                                 mw_experimentalResult(mw_expResultCode(DIAMETER_PCC_RULE_EVENT_E)),//experimental_result
                                 *,//qoS_Information within subsesEnforcementInfo
                                 *,//qoS_Rule_Report within subsesEnforcementInfo
                                 {mw_subsesEnforcementInfo_resultCode(mw_subsessionId_dummy(?),
                                                                      mw_resultCode(mw_resultCode_diameterSuccess))}//subsesion_Enforcement_Info
                                 )); //mw_subsesEnforcementInfo_resultCode

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

@@ -1289,6 +1309,204 @@ module DiameterS9_S9_TCFunctions {

            } // end function f_TC_VPCRF_HPQ_04
        }// end group TP_VPCRFRole_HPQ
        group TP_VPCRFRole_HST{

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

                f_preamble_HPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                //CCR INITIAL REQUEST
                f_await_initial_session_send_response_HPCRF();

                //CCR TERMINATE REQUEST
                f_awaiting_CCR(mw_CCR_basic(?,
                                            vc_originHost,
                                            vc_originRealm,
                                            vc_destinationRealm,
                                            mw_cC_Request_Type(TERMINATION_REQUEST_E)));

                f_send_CCA(m_CCA_basic(vc_sessionId,
                                       vc_originHost,
                                       vc_originRealm,
                                       m_cC_Request_Type(TERMINATION_REQUEST_E),
                                       m_resultCode(m_resultCode_diameterSuccess)));

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

                f_postamble_HPCRF();

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

            } // end function f_TC_VPCRF_HST_01

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

                f_preamble_HPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                //CCR INITIAL REQUEST
                f_await_initial_session_send_response_HPCRF();

                //CCR UPDATE REQUEST
                f_awaiting_CCR(mw_CCR_UpdateRequest_SubSessEnfInf_QoS(?,
                                                          vc_originHost,
                                                          vc_originRealm,
                                                          vc_destinationRealm,
                                                          mw_cC_Request_Type(UPDATE_REQUEST_E),
                                                          *,//Subscription id
                                                          {mw_subsesEnforcementInfo_Operation(mw_subsessionId_dummy(?),
                                                                                              mw_subsessionOperation_dummy(Subsession_Operation_Code:TERMINATION_E),
                                                                                              *//qoS_Rule_Report
                                                                                             )},
                                                          *,//QoS_Rule_Report 
                                                          *//QoS_information
                                                          ));

                f_send_CCA(m_CCA_basic(vc_sessionId,
                                       vc_originHost,
                                       vc_originRealm,
                                       m_cC_Request_Type(UPDATE_REQUEST_E),
                                       m_resultCode(m_resultCode_diameterSuccess)));

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

                f_terminate_session_HPCRF(); // postamble for termination of the rest of the subsessions 

                f_postamble_HPCRF();

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

            } // end function f_TC_VPCRF_HST_02

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

                f_preamble_HPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                //CCR INITIAL REQUEST
                f_await_initial_session_send_response_HPCRF();

                f_send_RAR(m_RAR_SessRelCause(vc_sessionId,
                                              vc_originHost,
                                              vc_originRealm,
                                              vc_destinationRealm,
                                              vc_destinationHost,
                                              m_sessReleaseCause(UNSPECIFIED_REASON_E)
                                               ));

                f_awaiting_RAA(mw_RAA_ResultCode(vc_sessionId,
                                                 vc_originHost,
                                                 vc_originRealm,
                                                 mw_resultCode(mw_resultCode_diameterSuccess)));

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

                f_terminate_session_HPCRF(); // postamble

                f_postamble_HPCRF();

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

            } // end function f_TC_VPCRF_HST_03

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

                f_preamble_HPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                //CCR INITIAL REQUEST
                f_await_initial_session_send_response_HPCRF();

                f_send_RAR(m_RAR_SubsesDecInfo(vc_sessionId,
                                                vc_originHost,
                                                vc_originRealm,
                                                vc_destinationRealm,
                                                vc_destinationHost,
                                                {m_SubsesDecisionInfo_SessRelCause(m_subsessionId_dummy(PX_SUBSESSION_ID),
                                                                                   m_sessReleaseCause(UNSPECIFIED_REASON_E))}
                                               ));

                f_awaiting_RAA(mw_RAA_ResultCode(vc_sessionId,
                                                 vc_originHost,
                                                 vc_originRealm,
                                                 mw_resultCode(mw_resultCode_diameterSuccess)));

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

                f_terminate_session_HPCRF(); // postamble

                f_postamble_HPCRF();

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

            } // end function f_TC_VPCRF_HST_04
        }// end group TP_VPCRFRole_HST
        group TP_VPCRFRole_HMB{

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

                f_preamble_HPCRF();

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

                //CCR INITIAL REQUEST from BBERF1
                f_await_initial_session_send_response_HPCRF();

                f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync
                //CCR REQUEST from BBERF2
                f_awaiting_CCR(mw_CCR_InitialRequest_AnGw_MultiBBERFact(?,
                                                          vc_originHost,
                                                          vc_originRealm,
                                                          vc_destinationRealm,
                                                          mw_cC_Request_Type(INITIAL_REQUEST_E),
                                                          {mw_subscription_Id(mw_subscription_Id_Type(END_USER_IMSI_E),
                                                                              mw_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA))},
                                                          {mw_anGwAddress(f_IPAdress(PX_SGW_AGW_ipv4,PX_SGW_AGW_ipv6))},
                                                          mw_multipleBBERFAction_dummy(ESTABLISHMENT_E)
                                                          ));

                f_send_CCA(m_CCA_basic(vc_sessionId,
                                       vc_originHost,
                                       vc_originRealm,
                                       m_cC_Request_Type(INITIAL_REQUEST_E),
                                       m_resultCode(m_resultCode_diameterSuccess)));

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

                f_terminate_session_HPCRF(); // postamble

                f_postamble_HPCRF();

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

            } // end function f_TC_VPCRF_HMB_01
        }// end group TP_VPCRFRole_HMB
    } // group TP_VPCRFRole    
    
}// end module DiameterS9_S9_TCFunctions
 No newline at end of file
+2 −2
Original line number Diff line number Diff line
@@ -411,8 +411,8 @@
         */
        function f_terminate_session_BBERF() runs on DiameterComponent
        {
            f_send_CCR(m_CCR_Gxx_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm));
            f_awaiting_CCA(mw_CCA_Gxx_basic(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT));
            f_send_CCR(m_CCR_Gxx_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, omit));
            f_awaiting_CCA(mw_CCA_Gxx_basic(vc_sessionId, vc_originHost, vc_originRealm));
        }

        function f_ConfigRun_HPCRF_BBERF(DiameterComponent p_diameterComponent_hpcrf,
Loading