Commit 9f95f792 authored by rennoch's avatar rennoch
Browse files

Gx tests: PCEF_MSI01/02

parent 426610ae
Loading
Loading
Loading
Loading
+83 −2
Original line number Diff line number Diff line
@@ -1046,7 +1046,7 @@ module DiameterGx_Gx_TCFunctions {

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

                f_awaiting_CCR(mw_CCR_InitialRequest(vc_sessionId, 
                f_awaiting_CCR(mw_CCR_Request(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
@@ -1076,7 +1076,7 @@ module DiameterGx_Gx_TCFunctions {

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

                f_awaiting_CCR(mw_CCR_InitialRequest(vc_sessionId, 
                f_awaiting_CCR(mw_CCR_Request(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
@@ -1098,8 +1098,89 @@ module DiameterGx_Gx_TCFunctions {
            
            
        }//end group TP_PCEFRole_IPS
        
        group TP_PCEFRole_MSI {	//Modification of Session Information
        
            /*
            *  @desc	This is the test case function TC_PCEF_MSI_01
            *  @param	
            */
            function f_TC_PCEF_MSI_01()
            runs on DiameterComponent {

               f_preamble_PCRF();
                
               f_awaiting_CCR(mw_CCR_Request(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(INITIAL_REQUEST_E),
                									*, *, *));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_awaiting_CCR(mw_CCR_Request_ChrgRuleRep_EvtTrig(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(UPDATE_REQUEST_E),
                									mw_chargRuleReport_Status,
                									mw_eventTrigger(IP_CAN_CHANGE_E),
                									*));

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

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();

            } // end function f_TC_PCEF_MSI_01
        
            /*
            *  @desc	This is the test case function TC_PCEF_MSI_02
            *  @param	
            */
            function f_TC_PCEF_MSI_02()
            runs on DiameterComponent {

               f_preamble_PCRF();
                
               f_awaiting_CCR(mw_CCR_Request(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(INITIAL_REQUEST_E),
                									*, *, *));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_awaiting_CCR(mw_CCR_Request_ChrgRuleRep_EvtTrig(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(UPDATE_REQUEST_E),
                									mw_chargRuleReport_Status,
                									mw_eventTrigger(IP_CAN_CHANGE_E),
                									mw_routing_Rule_Installs));

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

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();

            } // end function f_TC_PCEF_MSI_02

        }//end group  TP_PCEFRole_MSI
        
        group TP_PCEFRole_INV {	//Invalid Behaviour 
        }//end group TP_PCEFRole_INV
        group TP_PCEFRole_ST {	//Session Termination
+42 −3
Original line number Diff line number Diff line
@@ -181,6 +181,18 @@ module DiameterGx_Templates {
				aVP_Type := *
			}
			
			template Charging_Rule_Report_AVP mw_chargRuleReport_dummy :=
            {
                aVP_Header := mw_aVP_Header(c_vendIdCharging_Rule_Report_AVP),//<AVP header: 1011 ....>
                charging_Rule_Name := *,
                charging_Rule_Base_Name := *,
                bearer_Identifier := *,
                pCC_Rule_Status := *,
                rule_Failure_Code := *,
                final_Unit_Indication := *,
                aVP_Type := * 
            }


            
        } //end group DummyAVPHeaders
@@ -575,11 +587,18 @@ module DiameterGx_Templates {
                
            template Routing_Rule_Install_AVP mw_routing_Rule_Install :=
            {
                aVP_Header := mw_aVP_Header_any,
                aVP_Header := mw_aVP_Header(c_vendIdRouting_Rule_Install_AVP),
                routing_Rule_Definition := {mw_routing_Rule_Definition},
                aVP_Type := *
            }
            
            template Routing_Rule_Install_AVP mw_routing_Rule_Installs :=
            {
                aVP_Header := mw_aVP_Header(c_vendIdRouting_Rule_Install_AVP),
                routing_Rule_Definition := {mw_routing_Rule_Definition,*},
                aVP_Type := *
            }
            
            template Routing_Rule_Definition_AVP mw_routing_Rule_Definition :=
            {            
                aVP_Header := mw_aVP_Header_any,
@@ -760,6 +779,11 @@ module DiameterGx_Templates {
                aVP_Data := p_avpData
                };
                
            template Charging_Rule_Report_AVP mw_chargRuleReport_Status modifies mw_chargRuleReport_dummy  :=
            {
                pCC_Rule_Status := ?
            } 
            
     	  }//end group awaitingTemplatesForAVPs
        } //end group SpecificAVPHeaders
    } //end group HeaderFieldTemplates
@@ -1038,7 +1062,7 @@ module DiameterGx_Templates {

		  group Gxmodified_request_templates_receive {
            
            template CCR_MSG mw_CCR_InitialRequest(template Session_Id_AVP p_sessionId,
            template CCR_MSG mw_CCR_Request(template Session_Id_AVP p_sessionId,
                                        template Origin_Host_AVP p_originHost,
                                        template Origin_Realm_AVP p_originRealm,
                                        template Destination_Realm_AVP p_destinationRealm,
@@ -1055,6 +1079,21 @@ module DiameterGx_Templates {
                routing_Rule_Install := p_routing_Rule_Install
            }
            
            template CCR_MSG mw_CCR_Request_ChrgRuleRep_EvtTrig(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 CC_Request_Type_AVP p_cCRequestType,
            							template Charging_Rule_Report_AVP p_chargingRuleReport,
            							template Event_Trigger_AVP p_eventTrigger,
                                        template Routing_Rule_Install_AVP p_routing_Rule_Install
                                        ) modifies mw_CCR_basic := {
                subscription_Id := {mw_subscription_Id(mw_subscription_Id_Type(PX_SUBSCRIPTION_ID_TYPE),mw_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA))},
                charging_Rule_Report := superset(p_chargingRuleReport),
                event_Trigger := superset(p_eventTrigger),
                routing_Rule_Install := p_routing_Rule_Install
            }
                        
            template RAR_MSG mw_RAR_sessReleaseCause(template Session_Id_AVP p_sessionId,
                                        template Origin_Host_AVP p_originHost,
                                        template Origin_Realm_AVP p_originRealm,
+43 −0
Original line number Diff line number Diff line
@@ -803,6 +803,49 @@ module DiameterGx_TestCases
        }//end group TP_PCEFRole_IPS
        
        group TP_PCEFRole_MSI {	//Modification of Session Information
        
            /*
            * @desc TC_PCEF_MSI_01
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_PCEF_MSI_01() 
            runs on ServerSyncComp
            system TestAdapter {
                //Variables
                var DiameterComponent v_diameterComponent_pcrf;
                f_cf_1GxRUp(v_diameterComponent_pcrf);
		
                //Start
                v_diameterComponent_pcrf.start(f_TC_PCEF_MSI_01());
                
                // synchronize PTC on 3 sychronization points
                f_serverSync1Client({c_prDone, c_tbDone, c_poDone});
		
                f_cf_1GxRDown(v_diameterComponent_pcrf);
		
            } // end TC_PCEF_MSI_01

            /*
            * @desc TC_PCEF_MSI_02
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_PCEF_MSI_02() 
            runs on ServerSyncComp
            system TestAdapter {
                //Variables
                var DiameterComponent v_diameterComponent_pcrf;
                f_cf_1GxRUp(v_diameterComponent_pcrf);
		
                //Start
                v_diameterComponent_pcrf.start(f_TC_PCEF_MSI_02());
                
                // synchronize PTC on 3 sychronization points
                f_serverSync1Client({c_prDone, c_tbDone, c_poDone});
		
                f_cf_1GxRDown(v_diameterComponent_pcrf);
		
            } // end TC_PCEF_MSI_02
        
        }//end group  TP_PCEFRole_MSI
        
        group TP_PCEFRole_INV {	//Invalid Behaviour