Commit f34f6a66 authored by rennoch's avatar rennoch
Browse files

Gx/PCEF tests: PCC-04/05

parent db0c7079
Loading
Loading
Loading
Loading
+88 −0
Original line number Diff line number Diff line
@@ -1633,6 +1633,94 @@ module DiameterGx_Gx_TCFunctions {
            } // end function f_TC_PCEF_PCC_03


            /*
            *  @desc	This is the test case function TC_PCEF_PCC_04
            *  @param	
            */
            function f_TC_PCEF_PCC_04()
            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_send_RAR(DiameterGx_Templates.m_RAR_CharRuleInst // RAR in Rx-module has different header!
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_chrgRuleInstall_Definition(m_chrgRuleDefinition(PX_CHARGING_RULE_NAME_DATA))));
                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									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));
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();

            } // end function f_TC_PCEF_PCC_04


            /*
            *  @desc	This is the test case function TC_PCEF_PCC_05
            *  @param	
            */
            function f_TC_PCEF_PCC_05()
            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_send_RAR(DiameterGx_Templates.m_RAR_CharRuleRemove // RAR in Rx-module has different header!
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_chrgRuleRemove_Name(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA))));
                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									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));
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();

            } // end function f_TC_PCEF_PCC_05
        
        }//end group TP_PCEFRole_PCC
        group TP_PCEFRole_EMS {	//Emergency services
+65 −4
Original line number Diff line number Diff line
@@ -127,6 +127,14 @@ module DiameterGx_Templates {
                aVP_Type := *
            }  
            
            template Charging_Rule_Remove_AVP m_chrgRuleRemove_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Remove_AVP, 0, omit),
                charging_Rule_Name := omit,
                charging_Rule_Base_Name := omit,
                aVP_Type := omit
            } 
                
            template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_dummy :=
            {
                aVP_Header := mw_aVP_Header_any,
@@ -150,6 +158,29 @@ module DiameterGx_Templates {
                aVP_Type := *
            }    
                
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, 0, omit),
                charging_Rule_Name := m_charging_Rule_Name(''O),
                service_Identifier := omit,
                rating_Group := omit,
                flow_Information := omit,
                flow_Status := omit,
                qoS_Information := omit,
				reporting_Level := omit,
                online := omit,
                offline := omit,
                metering_Method := omit,
                precedence := omit,
                aF_Charging_Identifier := omit,
                flows := omit,
                monitoring_Key := omit,
                aF_Signalling_Protocol := omit,
                sponsor_Identity := omit,
                application_Service_Provider_Identity := omit,
                aVP_Type := omit
            }   
                            
            template QoS_Information_AVP mw_qoS_Information_dummy :=
            {
                aVP_Header := mw_aVP_Header_any,
@@ -470,31 +501,49 @@ module DiameterGx_Templates {
            }   
            
                        
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Definition(template Charging_Rule_Definition_AVP p_chargingRuleDefinition) modifies m_chrgRuleInstall_dummy:=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleDefinition)), omit),
                charging_Rule_Definition := {p_chargingRuleDefinition}
            }
                                    
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Name(template Charging_Rule_Name_AVP p_chargingRuleName) modifies m_chrgRuleInstall_dummy:=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleName))+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleName)), omit),
                charging_Rule_Name := {p_chargingRuleName}
            }
                        
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Name_RAN(template Charging_Rule_Name_AVP p_chargingRuleName, template Resource_Allocation_Notification_AVP p_resourceAllocationNotification) modifies m_chrgRuleInstall_dummy:=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_resourceAllocationNotification))+lengthof(encvalue(p_chargingRuleName))+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_resourceAllocationNotification))+lengthof(encvalue(p_chargingRuleName)), omit),
                charging_Rule_Name := {p_chargingRuleName},
                resource_Allocation_Notification := p_resourceAllocationNotification
            }            
                                    
            template Charging_Rule_Install_AVP m_chrgRuleInstall_2Name(template Charging_Rule_Base_Name_AVP p_chargingRuleBName1,template Charging_Rule_Base_Name_AVP p_chargingRuleBName2) modifies m_chrgRuleInstall_dummy:=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleBName1))+lengthof(encvalue(p_chargingRuleBName2))+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleBName1))+lengthof(encvalue(p_chargingRuleBName2)), omit),
                charging_Rule_Base_Name := {p_chargingRuleBName1, p_chargingRuleBName2}
            }
            
                                                
            template Charging_Rule_Remove_AVP m_chrgRuleRemove_Name(template Charging_Rule_Name_AVP p_chargingRuleName) modifies m_chrgRuleRemove_dummy:=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Remove_AVP, lengthof(encvalue(p_chargingRuleName)), omit),
                charging_Rule_Name := {p_chargingRuleName}
            }
                
            template Charging_Rule_Name_AVP m_charging_Rule_Name(octetstring p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Name_AVP, lengthof(p_avpData), omit),
                aVP_Data := p_avpData
            } 	
                            
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition (octetstring p_avpData) modifies m_chrgRuleDefinition_dummy:=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_charging_Rule_Name(p_avpData))), omit),
                charging_Rule_Name := m_charging_Rule_Name(p_avpData)
            }    
                            
            template Charging_Rule_Base_Name_AVP m_chrgRuleBaseName(UTF8String p_avpData):=
            {
@@ -1161,6 +1210,18 @@ module DiameterGx_Templates {
              	  charging_Rule_Install := {p_chargingRuleInstall}
              }
              
                          
              template RAR_MSG m_RAR_CharRuleRemove(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 Charging_Rule_Remove_AVP p_chargingRuleRemove)
                  modifies m_RAR_dummy := 
              {
              	  charging_Rule_Remove := {p_chargingRuleRemove}
              }                                        

          } //     end group Gxmodified_request_templates_send

		  group Gxmodified_request_templates_receive {