Commit b34b260b authored by juvancic's avatar juvancic
Browse files

Updated tests

parent 7a8404d2
Loading
Loading
Loading
Loading
+55 −3
Original line number Diff line number Diff line
@@ -8,12 +8,12 @@

    //LibCommon
    import from LibCommon_DataStrings {type Bit1, Bit4, Bit5, Bit8;}//all;
    import from LibCommon_BasicTypesAndValues {type UInt8;};//LibCommon
    import from LibCommon_BasicTypesAndValues {type UInt8;type UInt32;};//LibCommon
    import from LibCommon_Sync all ;
    import from LibCommon_VerdictControl all ;

    //LibDiameter
    import from LibDiameter_Types_S9_AVPs all;
    import from LibDiameter_Types_RfRo_AVPs all;
    import from LibDiameter_Types_Base_AVPs all;
    import from LibDiameter_TypesAndValues all;
    import from LibDiameter_Templates all;
@@ -21,7 +21,7 @@
    import from LibDiameter_PIXITS all;
    import from LibDiameter_Interface all;
    
    //DiameterS9
    //DiameterRFRo
    import from DiameterRfRo_PIXITS all;
    import from DiameterRfRo_Templates all;
    import from DiameterRfRo_SIP_Templates all;
@@ -106,6 +106,58 @@
        
        //TODO check for 2nd Ro or Rf configuration!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

        group RF{
            group TypeOfCharging{
                /**
                 * @desc Function used to send AC-Request and receive AC-Answer
                 * @param p_art        accounting record type - EVENT_E,START_E,INTERIM_E,STOP_E
                 *        p_acc_rec_nr acc record number
                 *        p_ts         timestamp of event
                 * @verdict depend on receive message and its matching with template
                 */
                function f_sendACR_awaitACA_(in Acc_Record_Type p_art, in UInt32 p_acc_rec_nr, in UInt32 p_ts) runs on DiameterComponent
                {
                    f_send_ACR(
                       md_aCR(
                           vc_sessionId, 
                           md_acrBodyAvps_TypeOfCharging_Session(
                               vc_originHost,                 // containing an Origin-Host AVP
                               vc_originRealm,                // containing an Origin-Realm AVP
                               m_accounting_Record_Type(      // containing an Accounting-Record-Type AVP
                                   p_art
                               ),
                               m_accounting_Record_Number(    // containing an Accounting-Record-Number AVP
                                   p_acc_rec_nr               //     indicating the value 
                               ),
                               m_event_timestamp(p_ts),
                               m_service_Information_AVP_dummy // FIXME To be continue by creating a m_service_Information template modifying m_service_Information_AVP_dummy 
                           )
                       )
                   );

                   f_awaiting_ACA(
                       mdw_aCA( 
                           vc_sessionId,                       // containing a Session-ID AVP
                           mdw_acaBodyAvps(
                               mw_resultCode(                  // containing a Result-Code AVP
                                   DIAMETER_SUCCESS_E          //     indicating DIAMETER_SUCCESS
                               ),
                               vc_originHost,                  // containing an Origin-Host AVP
                               vc_originRealm,                 // containing an Origin-Realm AVP
                               mw_accounting_Record_Type(      // containing an Accounting-Record-Type AVP
                                   p_art
                               ),
                               mw_accounting_Record_Number(    // containing an Acct-Application-Id AVP
                                  p_acc_rec_nr                 //     indicating the value
                               )
                       ))
                   );
                }

            }//End group TypeOfCharging

        }//End group RF

    } // Endgroup GlobalSteps

    group Preambles{
+212 −4
Original line number Diff line number Diff line
@@ -10,6 +10,8 @@ module DiameterRfRo_TCFunctions {
    import from LibCommon_VerdictControl all ;

    // LibDiameter
    //import from Diameter_PIXITS all;
    
    import from LibDiameter_TypesAndValues all;
    import from LibDiameter_Types_Base_AVPs all;
    import from LibDiameter_Types_RfRo_AVPs all;
@@ -30,7 +32,7 @@ module DiameterRfRo_TCFunctions {
        group TP_RF_CDF_Role { 
            
            // 5.2.2.1.2 Message Syntax
            group messageSyntax {
            group MessageSyntax {
                
                /**
                 * @desc    Verify that the IUT can successfully process all mandatory AVPs in an AC-Request received due to Charging Data Transfer
@@ -149,8 +151,8 @@ module DiameterRfRo_TCFunctions {
                                ),
                                m_accounting_Record_Number(    // containing an Accounting-Record-Number AVP
                                    3                          //     indicating the value 3
                                ),
                                m_service_Information_AVP_dummy // FIXME To be continue by creating a m_service_Information template modifying m_service_Information_AVP_dummy 
                                )//,
                                //m_service_Information_AVP_dummy // FIXME To be continue by creating a m_service_Information template modifying m_service_Information_AVP_dummy 
                            )
                        )
                    );
@@ -232,6 +234,8 @@ module DiameterRfRo_TCFunctions {

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


                    f_sendACR_awaitACA_(STOP_RECORD_E,3,1);
                    f_postamble_Rf_CTF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); 
@@ -239,8 +243,212 @@ module DiameterRfRo_TCFunctions {
                    
                } // End of function f_TC_RF_CDF_TC_02
                
                /**
                 * @desc    Verify that the IUT can successfully process an AC-Request [Interim] where Session Based Charging is used
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RF_CDF_TC_03() runs on DiameterRfRo {
                    // Local variables
                    
                    // Preamble
                    f_preamble_Rf_CTF();
                    f_sendACR_awaitACA_(START_RECORD_E,3,1);
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");


                    f_send_ACR(
                        md_aCR(
                            vc_sessionId, 
                            md_acrBodyAvps_TypeOfCharging_Session(
                                vc_originHost,                 // containing an Origin-Host AVP
                                vc_originRealm,                // containing an Origin-Realm AVP
                                m_accounting_Record_Type(      // containing an Accounting-Record-Type AVP
                                    INTERIM_RECORD_E
                                ),
                                m_accounting_Record_Number(    // containing an Accounting-Record-Number AVP
                                    3                          //     indicating the value 3
                                ),
                                m_event_timestamp(1),
                                m_service_Information_AVP_dummy // FIXME To be continue by creating a m_service_Information template modifying m_service_Information_AVP_dummy 
                            )
                        )
                    );

                    f_awaiting_ACA(
                        mdw_aCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            mdw_acaBodyAvps(
                                mw_resultCode(                  // containing a Result-Code AVP
                                    DIAMETER_SUCCESS_E          //     indicating DIAMETER_SUCCESS
                                ),
                                vc_originHost,                  // containing an Origin-Host AVP
                                vc_originRealm,                 // containing an Origin-Realm AVP
                                mw_accounting_Record_Type(      // containing an Accounting-Record-Type AVP
                                    INTERIM_RECORD_E
                                ),
                                mw_accounting_Record_Number(    // containing an Acct-Application-Id AVP
                                    3                           //     indicating the value 3
                                )
                        ))
                    );

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


                    f_sendACR_awaitACA_(STOP_RECORD_E,3,1);
                    f_postamble_Rf_CTF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); 
                   
                    
                } // End of function f_TC_RF_CDF_TC_03
                
                /**
                 * @desc    Verify that the IUT can successfully process an AC-Request [Stop] where Session Based Charging is used
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RF_CDF_TC_04() runs on DiameterRfRo {
                    // Local variables
                    
                    // Preamble
                    f_preamble_Rf_CTF();
                    f_sendACR_awaitACA_(START_RECORD_E,3,1);
                    f_sendACR_awaitACA_(INTERIM_RECORD_E,3,1);
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");


                    f_send_ACR(
                        md_aCR(
                            vc_sessionId, 
                            md_acrBodyAvps_TypeOfCharging_Session(
                                vc_originHost,                 // containing an Origin-Host AVP
                                vc_originRealm,                // containing an Origin-Realm AVP
                                m_accounting_Record_Type(      // containing an Accounting-Record-Type AVP
                                    STOP_RECORD_E
                                ),
                                m_accounting_Record_Number(    // containing an Accounting-Record-Number AVP
                                    3                          //     indicating the value 3
                                ),
                                m_event_timestamp(1),
                                m_service_Information_AVP_dummy // FIXME To be continue by creating a m_service_Information template modifying m_service_Information_AVP_dummy 
                            )
                        )
                    );

                    f_awaiting_ACA(
                        mdw_aCA( 
                            vc_sessionId,                       // containing a Session-ID AVP
                            mdw_acaBodyAvps(
                                mw_resultCode(                  // containing a Result-Code AVP
                                    DIAMETER_SUCCESS_E          //     indicating DIAMETER_SUCCESS
                                ),
                                vc_originHost,                  // containing an Origin-Host AVP
                                vc_originRealm,                 // containing an Origin-Realm AVP
                                mw_accounting_Record_Type(      // containing an Accounting-Record-Type AVP
                                    STOP_RECORD_E
                                ),
                                mw_accounting_Record_Number(    // containing an Acct-Application-Id AVP
                                    3                           //     indicating the value 3
                                )
                        ))
                    );

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

                    f_postamble_Rf_CTF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); 
                   
                    
                } // End of function f_TC_RF_CDF_TC_04
                
            } // End of group TypeOfCharging
            
            
            //5.2.2.1.4 ErrorCases
            group ErrorCases {

                
                /**
                 * @desc    Verify that the IUT terminates the call in case of timer expiration when the Session Based Charging procedure is not completed properly.
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RF_CDF_EC_01() runs on DiameterRfRo {
                    // Local variables
                    var float v_sessionAbortTimer:=0.0;
                    // Preamble
                    f_preamble_Rf_CTF();
                    
                    f_sendACR_awaitACA_(START_RECORD_E,3,1);
                    
                    //set of timer due to RFC3588 p.8.2 par 5
                    if (ispresent(vc_recvDiamMsg.aCA_MSG.aCA_Body.acct_Interim_Interval)){
                        v_sessionAbortTimer := 2.0 * int2float(vc_recvDiamMsg.aCA_MSG.aCA_Body.acct_Interim_Interval.aVP_Data);
                    }else{
                    //    v_sessionAbortTimer := 2.0 * int2float(PX_DIAMETER_TWAIT);
                    }
                    
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
					
                    f_wait(v_sessionAbortTimer);
                    f_awaiting_ASR(
                        mdw_aSR( 
                            vc_sessionId,                      // containing a Session-ID AVP
                    		mdw_asrBodyAvps(
			                    vc_originHost,                 // containing an Origin-Host AVP
			                    vc_originRealm,                // containing an Origin-Realm AVP
			                    vc_destinationRealm,           // containing a Destination-Realm AVP
                                vc_destinationHost             // containing a Destination-Host AVP
                        ))
                    );

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

                    f_postamble_Rf_CTF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); 
                   
                    
                } // End of function f_TC_RF_CDF_EC_01
                
                /**
                 * @desc    Verify that the IUT terminates the call in case of timer expiration when the Session Based Charging procedure is not completed properly.
                 * @verdict pass on success, fail on error or inconc on timeout only 
                 */
                function f_TC_RF_CDF_EC_02() runs on DiameterRfRo {
                    // Local variables
                    
                    // Preamble
                    f_preamble_Rf_CTF();
                    f_sendACR_awaitACA_(START_RECORD_E,3,1);
                    f_sendACR_awaitACA_(INTERIM_RECORD_E,3,1);
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                    f_awaiting_ASR(
                        mdw_aSR( 
                            vc_sessionId,                      // containing a Session-ID AVP
                    		mdw_asrBodyAvps(
			                    vc_originHost,                 // containing an Origin-Host AVP
			                    vc_originRealm,                // containing an Origin-Realm AVP
			                    vc_destinationRealm,           // containing a Destination-Realm AVP
                                vc_destinationHost             // containing a Destination-Host AVP
                        ))
                    );

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

                    f_postamble_Rf_CTF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); 
                   
                    
                } // End of function f_TC_RF_CDF_EC_02
            } // End of group ErrorCasses
            
        } // End of group TP_RF_CDF_Role
        
        // 5.2.2.2. CTF Role
+221 −8

File changed.

Preview size limit exceeded, changes collapsed.

+15 −1
Original line number Diff line number Diff line
@@ -12,12 +12,26 @@ module DiameterRfRo_TestControl {

    control {
        
        if (PICS_CDF_IUT) {
        if (PICS_RF_CDF_IUT) {
            execute(TC_RF_CDF_MS_01());
            execute(TC_RF_CDF_MS_02());
            
            if (PICS_EVENT_BASED_CHARGING) {
                execute(TC_RF_CDF_TC_01());
                
                //execute(TC_RF_CDF_EC_03());
            }
            if (PICS_SESSION_BASED_CHARGING) {
                execute(TC_RF_CDF_TC_02());
                execute(TC_RF_CDF_TC_03());
                execute(TC_RF_CDF_TC_04());
                
                execute(TC_RF_CDF_EC_01());
                execute(TC_RF_CDF_EC_02());
                //execute(TC_RF_CDF_EC_04());
            }
        }
        if (PICS_RF_CTF_IUT) {
        }
        
    } // End of 'Control' statement