Commit 629061d9 authored by pintar's avatar pintar
Browse files

additional tests added

parent 87ac7a99
Loading
Loading
Loading
Loading
+121 −2
Original line number Diff line number Diff line
@@ -89,7 +89,9 @@ module DiameterGx_Gx_TCFunctions {
        
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
		
                f_awaiting_CCA(mw_CCA_ResultCode_BearerControlMode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess)));
                f_awaiting_CCA(mw_CCA_ResultCode_BearerControlMode(vc_sessionId, vc_originHost, vc_originRealm, 
                													mw_resultCode(mw_resultCode_diameterSuccess),
                													mw_bearerControlMode(UE_NW_E)));
            
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
@@ -588,7 +590,7 @@ module DiameterGx_Gx_TCFunctions {
                
                //modification of PCC rule
                f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost,
                												mw_chrgRuleInstall_Definition));
                												mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition)));
        
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
@@ -673,8 +675,125 @@ module DiameterGx_Gx_TCFunctions {

            } // end function f_TC_PCRF_PCC_07

            /*
            *  @desc	This is the test case function TC_PCRF_PCC_08
            *  @param	
            */
            function f_TC_PCRF_PCC_08()
            runs on DiameterComponent {
		
                f_preamble_PCEF();
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				//establishement of the session
                f_send_CCR(m_CCR_InitialRequest_OnlineOffline(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_awaiting_CCA(mw_CCA_ResultCode_OnlineOffline(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess)));
        
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
                f_postamble_PCEF();

            } // end function f_TC_PCRF_PCC_08

            /*
            *  @desc	This is the test case function TC_PCRF_PCC_09
            *  @param	
            */
            function f_TC_PCRF_PCC_09()
            runs on DiameterComponent {
		
                f_preamble_PCEF();
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				//establishement of the session
                f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess)));
                
                //remove group of PCC rules
                f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost,
                												mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition_qosInfoNoBearerID)));
        
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess)));
		        
                //postamble
                //session termination
				f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm));
                f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
                f_postamble_PCEF();

            } // end function f_TC_PCRF_PCC_09
            
        }//end group TP_PCRFRole_PCC
        group TP_PCRFRole_EMS {	//Emergency services

            /*
            *  @desc	This is the test case function TC_PCRF_EMS_01
            *  @param	
            */
            function f_TC_PCRF_EMS_01()
            runs on DiameterComponent {
		
                f_preamble_PCEF();
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				//establishement of the session
                f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess)));
                
                //remove group of PCC rules
                f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost,
                												mw_chrgRuleInstall_Definition(mw_chrgRuleDefinition_qosInfo_AllocRetPrio)));
        
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess)));
		        
                //postamble
                //session termination
				f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm));
                f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
                f_postamble_PCEF();

            } // end function f_TC_PCRF_EMS_01

            /*
            *  @desc	This is the test case function TC_PCRF_EMS_02
            *  @param	
            */
            function f_TC_PCRF_EMS_02()
            runs on DiameterComponent {
		
                f_preamble_PCEF();
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				//establishement of the session with Called-Station-Id: set value emergency APN with PX_CALLED_STATION_ID_DATA
                f_send_CCR(m_CCR_InitialRequest_CalledStationId(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_awaiting_CCA(mw_CCA_ResultCode_BearerControlMode(vc_sessionId, vc_originHost, vc_originRealm, 
                													mw_resultCode(mw_resultCode_diameterSuccess),
                													mw_bearerControlMode(?)));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
                f_postamble_PCEF();

            } // end function f_TC_PCRF_EMS_02
        
        }//end group TP_PCRFRole_EMS
        group TP_PCRFRole_UMC {	//Usage monitoring control
        }//end group TP_PCRFRole_UMC
+11 −1
Original line number Diff line number Diff line
@@ -253,6 +253,16 @@ module DiameterGx_PIXITS
        */
        modulepar Rule_Failure_Code PX_RULE_FAILURE_CODE := UNKNOWN_RULE_NAME_E;  
        
        /** @desc	enumerated type PCC_Rule_Status, PIXIT item A.1/
         * avp_Data within Offline_AVP is of enumerated type Offline
        */
        modulepar Offline PX_OFFLINE_DATA := DISABLE_OFFLINE_E;  
        
        /** @desc	enumerated type PCC_Rule_Status, PIXIT item A.1/
         * avp_Data within Online_AVP is of enumerated type Online
        */
        modulepar Online PX_ONLINE_DATA := ENABLE_ONLINE_E; 
        
	} //end group DiameterCommonGxData

} // end module DiameterGx_PIXITS
 No newline at end of file
+111 −21
Original line number Diff line number Diff line
@@ -121,6 +121,29 @@ module DiameterGx_Templates {
                aVP_Type := *
            }    
                
            template QoS_Information_AVP mw_qoS_Information_dummy :=
            {
                aVP_Header := mw_aVP_Header_any,
                qoS_Class_Identifier := *,
                max_Requested_Bandwidth_UL := *,
                max_Requested_Bandwidth_DL := *,
                guaranteed_Bitrate_UL := *,
                guaranteed_Bitrate_DL := *,
                bearer_Identifier := *,
                allocation_Retention_Priority := *,
                aPN_Aggregate_Max_Bitrate_UL := *,
                aPN_Aggregate_Max_Bitrate_DL := *,
                aVP_Type := *
            }     
                
            template Allocation_Retention_Priority_AVP mw_allocRetentionPrio_dummy :=
            {
                aVP_Header := mw_aVP_Header_any,
                priority_Level := ?,
                pre_emption_Capability := *,
                pre_emption_Vulnerability := *
            }
            
        } //end group DummyAVPHeaders
    
     	group SpecificAVPHeaders {
@@ -447,6 +470,18 @@ module DiameterGx_Templates {
                aVP_Data := p_avpData
            } 
                
            template Offline_AVP m_offline(Offline p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdOffline_AVP, 4, omit),
                aVP_Data := p_avpData
            } 
                
            template Online_AVP m_online(Online p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdOnline_AVP, 4, omit),
                aVP_Data := p_avpData
            }
            
     	  }//end group sendingTemplatesForAVPs
     	  group awaitingTemplatesForAVPs{
    
@@ -548,11 +583,10 @@ module DiameterGx_Templates {
                resource_Allocation_Notification := mw_resourceAllocNotif
            }         
                
            template Charging_Rule_Install_AVP mw_chrgRuleInstall_Definition modifies mw_chrgRuleInstall_dummy :=
            template Charging_Rule_Install_AVP mw_chrgRuleInstall_Definition(template Charging_Rule_Definition_AVP p_chrgRuleDefinition) modifies mw_chrgRuleInstall_dummy :=
            {
                aVP_Header := mw_aVP_Header_any,
                charging_Rule_Definition := {mw_chrgRuleDefinition},
                charging_Rule_Name := {mw_chrgRuleName}
                charging_Rule_Definition := {p_chrgRuleDefinition}
            }     
                
            template Charging_Rule_Install_AVP mw_chrgRuleInstall_BaseName modifies mw_chrgRuleInstall_dummy:=
@@ -579,6 +613,29 @@ module DiameterGx_Templates {
                charging_Rule_Name := mw_chrgRuleName
            }       
   
            template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_qosInfoNoBearerID modifies mw_chrgRuleDefinition_dummy:=
            {
                aVP_Header := mw_aVP_Header_any,
                charging_Rule_Name := mw_chrgRuleName,
                qoS_Information := mw_qoSInfo_noBearerID
            }        
   
            template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_qosInfo_AllocRetPrio modifies mw_chrgRuleDefinition_dummy:=
            {
                aVP_Header := mw_aVP_Header_any,
                qoS_Information := mw_qoSInfo_allocRetPriority
            }     
                
            template QoS_Information_AVP mw_qoSInfo_noBearerID modifies mw_qoS_Information_dummy :=
            {
                bearer_Identifier := omit
            }    
                
            template QoS_Information_AVP mw_qoSInfo_allocRetPriority modifies mw_qoS_Information_dummy :=
            {
                allocation_Retention_Priority := mw_allocRetentionPrio_dummy
            }     
                
            template Charging_Rule_Name_AVP mw_chrgRuleName:=
            {
                aVP_Header := mw_aVP_Header_any,
@@ -597,27 +654,30 @@ module DiameterGx_Templates {
                aVP_Data := ENABLE_NOTIFICATION_E
            } 
                
            template Offline_AVP mw_offline_any :=
            {
                aVP_Header := mw_aVP_Header_any,
                aVP_Data := ?
            } 
                
            template Online_AVP mw_online_any :=
            {
                aVP_Header := mw_aVP_Header_any,
                aVP_Data := ?
            } 
                
            template Bearer_Control_Mode_AVP mw_bearerControlMode(template Bearer_Control_Mode p_aVP_Data) :=
            {
                aVP_Header := mw_aVP_Header_any,
                aVP_Data := p_aVP_Data
            }
            
     	  }//end group awaitingTemplatesForAVPs
        } //end group SpecificAVPHeaders
    } //end group HeaderFieldTemplates
	
	/** Message templates for RAR, RAA, CCR, CCA.... methods  */
    group GxMessageTemplates {
      group Gxdummy_templates {
          group Gxdummy_request_templates_send {

		  }//end group Gxdummy_request_templates_send
          group Gxdummy_request_templates_receive {
   
          }//end group Gxdummy_request_templates_receive
          group Gxdummy_answer_templates_send {

              
          }//end group Gxdummy_answer_templates_send
          group Gxdummy_answer_templates_receive {
              
          }//end group Gxdummy_answer_templates_receive
      } //end group Gxdummy_templates
      group Gxbase_templates {
          
        group Gxbasic_request_templates_send {
@@ -790,6 +850,15 @@ module DiameterGx_Templates {
                event_Trigger := {m_event_Trigger(IP_CAN_CHANGE_E)}
            }
            
            template CCR_MSG m_CCR_InitialRequest_CalledStationId(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 Framed_IP_Address_AVP p_framedIpAddress,
            							template Framed_IPv6_Prefix_AVP p_framedIp6Address) modifies m_CCR_InitialRequest := {
				called_Station_Id := m_called_Station_Id(PX_CALLED_STATION_ID_DATA)
 			}
            
            template CCR_MSG m_CCR_UpdateRequest_allReqAVPs(template Session_Id_AVP p_sessionId,
                                        template Origin_Host_AVP p_originHost,
                                        template Origin_Realm_AVP p_originRealm,
@@ -867,6 +936,16 @@ module DiameterGx_Templates {
                cC_Request_Number := m_cC_Request_Number(1)
            }
            
            template CCR_MSG m_CCR_InitialRequest_OnlineOffline(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 Framed_IP_Address_AVP p_framedIpAddress,
            							template Framed_IPv6_Prefix_AVP p_framedIp6Address) modifies m_CCR_InitialRequest := {
                online := m_online(PX_ONLINE_DATA),
                offline := m_offline(PX_OFFLINE_DATA)
            }

          } //     end group Gxmodified_request_templates_send

		  group Gxmodified_request_templates_receive {
@@ -956,10 +1035,11 @@ module DiameterGx_Templates {
              template CCA_MSG mw_CCA_ResultCode_BearerControlMode( template Session_Id_AVP p_sessionId,
                                                           template Origin_Host_AVP p_originHost,
                                                           template Origin_Realm_AVP p_originRealm,
                                                           template Result_Code_AVP p_resultCode) modifies mw_CCA_basic := 
                                                           template Result_Code_AVP p_resultCode,
                                                           template Bearer_Control_Mode_AVP p_bearerControleMode ) modifies mw_CCA_basic := 
              {
                  result_Code := p_resultCode,
                  bearer_Control_Mode := ?
                  bearer_Control_Mode := p_bearerControleMode
              }
          
              template CCA_MSG mw_CCA_PCCrules_ChrgRuleInstall( template Session_Id_AVP p_sessionId,
@@ -977,6 +1057,16 @@ module DiameterGx_Templates {
                  experimental_Result := p_experimentalResult
              }
          
              template CCA_MSG mw_CCA_ResultCode_OnlineOffline( template Session_Id_AVP p_sessionId,
                                                           template Origin_Host_AVP p_originHost,
                                                           template Origin_Realm_AVP p_originRealm,
                                                           template Result_Code_AVP p_resultCode) modifies mw_CCA_basic := 
              {
                  result_Code := p_resultCode,
                  online := mw_online_any ifpresent,
                  offline := mw_offline_any ifpresent
              }
          
          } // end group Gxmodified_answer_templates_receive
          
	  } //end group Gxmodified_templates
+84 −0
Original line number Diff line number Diff line
@@ -482,9 +482,93 @@ module DiameterGx_TestCases
                f_cf_1GxEDown(v_diameterComponent_pcef);
		
            } // end TC_PCRF_PCC_07
            
            /*
            * @desc TC_PCRF_PCC_08
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_PCRF_PCC_08() 
            runs on ServerSyncComp
            system TestAdapter {
                //Variables
                var DiameterComponent v_diameterComponent_pcef;
                f_cf_1GxEUp(v_diameterComponent_pcef);
		
                //Start
                v_diameterComponent_pcef.start(f_TC_PCRF_PCC_08());
                
                // synchronize PTC on 3 sychronization points
                f_serverSync1Client({c_prDone, c_tbDone, c_poDone});
		
                f_cf_1GxEDown(v_diameterComponent_pcef);
		
            } // end TC_PCRF_PCC_08
            
            /*
            * @desc TC_PCRF_PCC_09
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_PCRF_PCC_09() 
            runs on ServerSyncComp
            system TestAdapter {
                //Variables
                var DiameterComponent v_diameterComponent_pcef;
                f_cf_1GxEUp(v_diameterComponent_pcef);
		
                //Start
                v_diameterComponent_pcef.start(f_TC_PCRF_PCC_09());
                
                // synchronize PTC on 3 sychronization points
                f_serverSync1Client({c_prDone, c_tbDone, c_poDone});
		
                f_cf_1GxEDown(v_diameterComponent_pcef);
		
            } // end TC_PCRF_PCC_09
        }//end group TP_PCRFRole_PCC
        
        group TP_PCRFRole_EMS {	//Emergency services
            
            /*
            * @desc TC_PCRF_EMS_01
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_PCRF_EMS_01() 
            runs on ServerSyncComp
            system TestAdapter {
                //Variables
                var DiameterComponent v_diameterComponent_pcef;
                f_cf_1GxEUp(v_diameterComponent_pcef);
		
                //Start
                v_diameterComponent_pcef.start(f_TC_PCRF_EMS_01());
                
                // synchronize PTC on 3 sychronization points
                f_serverSync1Client({c_prDone, c_tbDone, c_poDone});
		
                f_cf_1GxEDown(v_diameterComponent_pcef);
		
            } // end TC_PCRF_EMS_01
            
            /*
            * @desc TC_PCRF_EMS_02
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_PCRF_EMS_02() 
            runs on ServerSyncComp
            system TestAdapter {
                //Variables
                var DiameterComponent v_diameterComponent_pcef;
                f_cf_1GxEUp(v_diameterComponent_pcef);
		
                //Start
                v_diameterComponent_pcef.start(f_TC_PCRF_EMS_02());
                
                // synchronize PTC on 3 sychronization points
                f_serverSync1Client({c_prDone, c_tbDone, c_poDone});
		
                f_cf_1GxEDown(v_diameterComponent_pcef);
		
            } // end TC_PCRF_EMS_02
        }//end group TP_PCRFRole_EMS
        
        group TP_PCRFRole_UMC {	//Usage monitoring control