/** * @author STF 490 * @version $Id$ * @desc This module provides test cases * for SIP-IMS-RfRo-DIAMETER tests. */ module DiameterRfRo_TestCases { //LibCommon import from LibCommon_Sync all ; import from LibCommon_VerdictControl all; //LibDiameter import from LibDiameter_TypesAndValues all; import from LibDiameter_Interface all; //LibIms import from LibIms_Interface all; //AtsIms import from DiameterRfRo_TestConfiguration all; import from DiameterRfRo_TestSystem all; import from DiameterRfRo_SIP_TCFunctions all; import from DiameterRfRo_TCFunctions all; import from DiameterRfRo_PICS all; import from DiameterRfRo_PIXITS all; import from DiameterRfRo_Steps all; import from DiameterRfRo_TestSystem all; // 5.2.2.1. CDF Role group TP_RF_Role { // 5.2.2.1. CDF Role group TP_RF_CDF_Role { // 5.2.2.1.2 Message Syntax group TP_RF_CDF_MS { /** * @desc Verify that the IUT can successfully process all mandatory AVPs in an AC-Request received due to Charging Data Transfer *
* Pics Selection: PICS_CDF_IUT * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an AC-Request * containing a Session-ID AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing a Destination-Realm AVP * containing an Accounting-Record-Type AVP * containing an Accounting-Record-Number AVP * containing an Acct-Application-Id AVP * indicating the value 3 * } * then { * the IUT sends a AC-Response * containing a Session-ID AVP * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * not containing an Experimental-Result AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing an Accounting-Record-Type AVP * containing an Accounting-Record-Number AVP * containing an Acct-Application-Id AVP * indicating the value 3 * } * } ** * @version 0.0.12 * @see ETSI DTS/INT 00121-2 V0.0.12 (2015-07) TP_RF_CDF_MS_01 */ testcase TC_RF_CDF_MS_01() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_ctf; // Test control if (not PICS_RF_CDF_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CDF_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_ctfUp(v_diameterRf_ctf); // Start v_diameterRf_ctf.start(f_TC_CDF_MS_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_ctfDown(v_diameterRf_ctf); } // End of testcase TC_RF_CDF_MS_01 /** * @desc Verify that the IUT can successfully process all mandatory AVPs in an AC-Request received due to Charging Data Transfer and responds with a valid AC-Answer message *
* Pics Selection: PICS_CDF_IUT * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an AC-Request * containing a Session-ID AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing a Destination-Realm AVP * containing an Accounting-Record-Type AVP * containing an Accounting-Record-Number AVP * containing an Acct-Application-Id AVP * indicating the value 3 * } * then { * the IUT sends an AC-Answer * containing a Diameter-Header * containing a Version * indicating value ‘1’ * containing a Command-Flags * containing T bit * indicating value ‘0’ * containing r bits * indicating value ‘0000’. * } * } ** * @version 0.0.15 * @see ETSI DTS/INT 00121-2 V0.0.15 (2015-10) TP_RF_CDF_MS_02 */ testcase TC_RF_CDF_MS_02() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_ctf; // Test control if (not PICS_RF_CDF_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CDF_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_ctfUp(v_diameterRf_ctf); // Start v_diameterRf_ctf.start(f_TC_CDF_MS_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_ctfDown(v_diameterRf_ctf); } // End of testcase TC_RF_CDF_MS_01 } // End of group MessageSyntax // 5.2.2.1.3 Type of Charging group TP_RF_CDF_TC { /** * @desc Verify that the IUT can successfully process an AC-Request [Event] where Event Based Charging is used *
* Pics Selection: PICS_CDF_IUT and PICS_EVENT_BASED_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an AC-Request * containing an Accounting-Record-Type AVP * indicating EVENT_RECORD * containing an Event-Timestamp AVP * may containing Service-Information AVP * containing at least one Subscription-ID AVP * indicating the identification of the user * may contains IMS-Information AVP * containing Node-Functionality AVP * indicating the value 3 * may containing Service-Generic-Information AVP * indicating the service specific parameters * may containing Service-Context-Id AVP * } * then { * the IUT sends a AC-Response * containing a Session-ID AVP * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * not containing an Experimental-Result AVP * containing an Accounting-Record-Type AVP * indicating EVENT_RECORD * containing an Accounting-Record-Number AVP * } * } ** * @version 0.0.12 * @see ETSI DTS/INT 00121-2 V0.0.12 (2015-07) TP_RF_CDF_TC_01 */ testcase TC_RF_CDF_TC_01() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_ctf; // Test control if (not (PICS_RF_CDF_IUT and PICS_RF_CDF_EVENT_BASED_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CDF_IUT and PICS_RF_CDF_EVENT_BASED_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_ctfUp(v_diameterRf_ctf); // Start v_diameterRf_ctf.start(f_TC_RF_CDF_TC_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_ctfDown(v_diameterRf_ctf); } // End of testcase TC_RF_CDF_TC_01 /** * @desc Verify that the IUT can successfully process an AC-Request [Start] where Session Based Charging is used *
* Pics Selection: PICS_CDF_IUT and PICS_SESSION_BASED_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * on receipt of an AC-Request * containing an Accounting-Record-Type AVP * containing an Accounting-Record-Type AVP * indicating START_RECORD * containing an Accounting-Record-Number AVP * containing an Event-Timestamp AVP * containing Service-Information AVP * indicating the service specific parameters * } * then { * sends an AC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * not containing an Experimental-Result AVP * containing an Accounting-Record-Type AVP * indicating START_RECORD * optionally containing an Acct-Interim-Interval AVP * indicating the desired intermediate charging interval. * } * } ** * @version 0.0.15 * @see ETSI DTS/INT 00121-2 V0.0.15 (2015-10) TP_RF_CDF_TC_02 */ testcase TC_RF_CDF_TC_02() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_ctf; // Test control if (not (PICS_RF_CDF_IUT and PICS_RF_CDF_SESSION_BASED_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CDF_IUT and PICS_RF_CDF_SESSION_BASED_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_ctfUp(v_diameterRf_ctf); // Start v_diameterRf_ctf.start(f_TC_RF_CDF_TC_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_ctfDown(v_diameterRf_ctf); } // End of testcase TC_RF_CDF_TC_02 /** * @desc Verify that the IUT can successfully process an AC-Request [Interim] where Session Based Charging is used *
* Pics Selection: PICS_CDF_IUT and PICS_SESSION_BASED_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * on receipt of an AC-Request * containing an Accounting-Record-Type AVP * containing an Accounting-Record-Type AVP * indicating INTERIM_RECORD * containing an Accounting-Record-Number AVP * containing an Event-Timestamp AVP * containing Service-Information AVP * indicating Subscription-Id AVP * indicating IMS-Information AVP * } * then { * sends an AC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * not containing an Experimental-Result AVP * containing an Accounting-Record-Type AVP * indicating INTERIM_RECORD * optionally containing an Acct-Interim-Interval AVP * indicating the desired intermediate charging interval. * } * } ** * @version 0.0.15 * @see ETSI DTS/INT 00121-2 V0.0.15 (2015-10) TP_RF_CDF_TC_03 */ testcase TC_RF_CDF_TC_03() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_ctf; // Test control if (not (PICS_RF_CDF_IUT and PICS_RF_CDF_SESSION_BASED_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CDF_IUT and PICS_RF_CDF_SESSION_BASED_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_ctfUp(v_diameterRf_ctf); // Start v_diameterRf_ctf.start(f_TC_RF_CDF_TC_03()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_ctfDown(v_diameterRf_ctf); } // End of testcase TC_RF_CDF_TC_03 /** * @desc Verify that the IUT can successfully process an AC-Request [Stop] where Session Based Charging is used *
* Pics Selection: PICS_CDF_IUT and PICS_SESSION_BASED_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * on receipt of an AC-Request * containing an Accounting-Record-Type AVP * containing an Accounting-Record-Type AVP * indicating STOP_RECORD * containing an Accounting-Record-Number AVP * containing an Event-Timestamp AVP * containing Service-Information AVP * indicating Subscription-Id AVP * indicating IMS-Information AVP * } * then { * sends an AC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * not containing an Experimental-Result AVP * containing an Accounting-Record-Type AVP * indicating STOP_RECORD * } * } ** * @version 0.0.15 * @see ETSI DTS/INT 00121-2 V0.0.15 (2015-10) TP_RF_CDF_TC_04 */ testcase TC_RF_CDF_TC_04() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_ctf; // Test control if (not (PICS_RF_CDF_IUT and PICS_RF_CDF_SESSION_BASED_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CDF_IUT and PICS_RF_CDF_SESSION_BASED_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_ctfUp(v_diameterRf_ctf); // Start v_diameterRf_ctf.start(f_TC_RF_CDF_TC_04()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_ctfDown(v_diameterRf_ctf); } // End of testcase TC_RF_CDF_TC_04 } // End of group TypeOfCharging //5.2.2.1.4 ErrorCases group TP_RF_CDF_EC { /** * @desc Verify that the IUT terminates the call in case of timer expiration when the Session Based Charging procedure is not completed properly. *
* Pics Selection: PICS_CDF_IUT and PICS_SESSION_BASED_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * on timer expired sends an AS-Request containing a Session-ID AVP containing an Origin-Host AVP containing an Origin-Realm AVP containing a Destination-Realm AVP containing a Destination-Host AVP containing an Auth-Application-Id AVP. * } ** * @version 0.0.15 * @see ETSI DTS/INT 00121-2 V0.0.15 (2015-10) TP_RF_CDF_EC_01 */ testcase TC_RF_CDF_EC_01() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_ctf; // Test control if (not (PICS_RF_CDF_IUT and PICS_RF_CDF_SESSION_BASED_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CDF_IUT and PICS_RF_CDF_SESSION_BASED_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_ctfUp(v_diameterRf_ctf); // Start v_diameterRf_ctf.start(f_TC_RF_CDF_EC_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_ctfDown(v_diameterRf_ctf); } // End of testcase 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. *
* Pics Selection: PICS_CDF_IUT and PICS_SESSION_BASED_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * on timer expired sends an AS-Request containing a Session-ID AVP containing an Origin-Host AVP containing an Origin-Realm AVP containing a Destination-Realm AVP containing a Destination-Host AVP containing an Auth-Application-Id AVP. * } ** * @version 0.0.15 * @see ETSI DTS/INT 00121-2 V0.0.15 (2015-10) TP_RF_CDF_EC_02 */ testcase TC_RF_CDF_EC_02() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_ctf; // Test control if (not (PICS_RF_CDF_IUT and PICS_RF_CDF_SESSION_BASED_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CDF_IUT and PICS_RF_CDF_SESSION_BASED_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_ctfUp(v_diameterRf_ctf); // Start v_diameterRf_ctf.start(f_TC_RF_CDF_EC_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_ctfDown(v_diameterRf_ctf); } // End of testcase TC_RF_CDF_EC_02 /** * @desc Verify that the IUT can successfully process Duplicate Detection AC-Request [Event] where Event Based Charging is used *
* Pics Selection: PICS_CDF_IUT and PICS_EVENT_BASED_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an AC-Request * containing Diameter-Header * containing Command-Flags * containing T-flag * indicating value ‘1’ * containing an Accounting-Record-Type AVP * indicating EVENT_RECORD * containing an Event-Timestamp AVP * containing optional Service-Information AVP * containing at least one Subscription-ID AVP * indicating the identification of the user * containing optional IMS-Information AVP * containing Node-Functionality AVP * indicating the value 3 * containing optional Service-Generic-Information AVP * indicating the service specific parameters * containing optional Service-Context-Id AVP * } * then { * the IUT sends a AC-Response * containing a Session-ID AVP * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * not containing an Experimental-Result AVP * containing an Accounting-Record-Type AVP * indicating EVENT_RECORD * containing an Accounting-Record-Number AVP * } * } ** * @version 0.0.15 * @see ETSI DTS/INT 00121-2 V0.0.15 (2015-10) TP_RF_CDF_EC_03 */ testcase TC_RF_CDF_EC_03() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_ctf; // Test control if (not (PICS_RF_CDF_IUT and PICS_RF_CDF_EVENT_BASED_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CDF_IUT and PICS_RF_CDF_EVENT_BASED_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_ctfUp(v_diameterRf_ctf); // Start v_diameterRf_ctf.start(f_TC_RF_CDF_EC_03()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_ctfDown(v_diameterRf_ctf); } // End of testcase TC_RF_CDF_EC_03 /** * @desc Verify that the IUT can successfully process Duplicate Detection AC-Request [Interim] where Session Based Charging is used *
* Pics Selection: PICS_CDF_IUT and PICS_SESSION_BASED_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an AC-Request * containing Diameter-Header * containing Command-Flags * containing T-flag * indicating value ‘1’ * containing an Accounting-Record-Type AVP * indicating INTERIM_RECORD * containing an Event-Timestamp AVP * containing optional Service-Information AVP * containing at least one Subscription-ID AVP * indicating the identification of the user * containing optional IMS-Information AVP * containing Node-Functionality AVP * indicating the value 3 * may containing Service-Generic-Information AVP * indicating the service specific parameters * containing optional Service-Context-Id AVP * } * then { * the IUT sends a AC-Response * containing a Session-ID AVP * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * not containing an Experimental-Result AVP * containing an Accounting-Record-Type AVP * indicating EVENT_RECORD * containing an Accounting-Record-Number AVP * } * } ** * @version 0.0.15 * @see ETSI DTS/INT 00121-2 V0.0.15 (2015-10) TP_RF_CDF_EC_04 */ testcase TC_RF_CDF_EC_04() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_ctf; // Test control if (not (PICS_RF_CDF_IUT and PICS_RF_CDF_SESSION_BASED_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CDF_IUT and PICS_RF_CDF_SESSION_BASED_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_ctfUp(v_diameterRf_ctf); // Start v_diameterRf_ctf.start(f_TC_RF_CDF_EC_04()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_ctfDown(v_diameterRf_ctf); } // End of testcase TC_RF_CDF_EC_04 } // End of group ErrorCasses } // End of group TP_RF_CDF_Role // 5.2.2.2. CTF Role group TP_RF_CTF_Role { // 5.2.2.2.2 Message Syntax group TP_RF_CTF_MS { /** * @desc Verify that the IUT can send an AC-Request to indicate a Charging Data Transfer. *
* Pics Selection: PICS_RF_CTF_IUT * Initial conditions: * with { * * } * Expected behaviour: * ensure that the IUT sends an AC-Request * containing a Session-ID AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing a Destination-Realm AVP * containing an Accounting-Record-Type AVP * containing an Accounting-Record-Number AVP * containing an Acct-Application-Id AVP * indicating the value 3 ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RF_CTF_MS_01 */ testcase TC_RF_CTF_MS_01() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_cdf; var ImsComponent v_imsComponent_ue; var ImsComponent v_imsComponent_cscf; // Test control if (not PICS_RF_CTF_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CTF_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_1Gm_1Mw_cdfUp(v_diameterRf_cdf, v_imsComponent_ue, v_imsComponent_cscf); // Start v_diameterRf_cdf.start(f_TC_CTF_MS_01()); if (PX_SIPsupport) { // v_imsComponent_ue.start(f_TC_CTF_MS_UE_01); // v_imsComponent_cscf.start(f_TC_CTF_MS_CSCF_01); } // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_1Gm_1Mw_cdfDown(v_diameterRf_cdf, v_imsComponent_ue, v_imsComponent_cscf) } // End of testcase TC_RF_CTF_MS_01 /** * @desc Verify that the IUT can send an AC-Request with correct Diameter-Header parameters to indicate a Charging Data Transfer with valid Diameter-Header parameters. *
* Pics Selection: PICS_RF_CTF_IUT * Initial conditions: * with { * * } * Expected behaviour: * Ensure that the IUT * to indicate a request for Charging Data Transfer, * sends an AC-Request * containing a Diameter-Header * containing a Version * indicating value ‘1’ * containing a Command-Flags * containing T bit * indicating value ‘0’ * containing E bit * indicating value ‘0’ * containing r bits * indicating value ‘0000’. ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RF_CTF_MS_02 */ testcase TC_RF_CTF_MS_02() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_cdf; var ImsComponent v_imsComponent_ue; var ImsComponent v_imsComponent_cscf; // Test control if (not PICS_RF_CTF_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CTF_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_1Gm_1Mw_cdfUp(v_diameterRf_cdf, v_imsComponent_ue, v_imsComponent_cscf); // Start v_diameterRf_cdf.start(f_TC_CTF_MS_02()); if (PX_SIPsupport) { // v_imsComponent_ue.start(f_TC_CTF_MS_UE_02); // v_imsComponent_cscf.start(f_TC_CTF_MS_CSCF_02); } // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_1Gm_1Mw_cdfDown(v_diameterRf_cdf, v_imsComponent_ue, v_imsComponent_cscf) } // End of testcase TC_RF_CTF_MS_02 } // End of group TP_RF_CTF_MS_Role // 5.2.2.2.3 Type of Charging group TP_RF_CTF_TC { /** * @desc Verify that the IUT can successfully process an AC-Request [Event]. *
* Pics Selection: PICS_RF_CTF_IUT * Initial conditions: * with { * Preamble action: UE initiates an initial REGISTRATION procedure. * } * Expected behaviour: * Ensure that the IUT * sends an AC-Request * containing an Accounting-Record-Type AVP * indicating EVENT_RECORD * containing an Accounting-Record-Number AVP * containing an Event-Timestamp AVP * containing Service-Information AVP * containing at least one Subscription-ID AVP * indicating the identification of the user * optionally containing IMS-Information AVP * containing Node-Functionality AVP * indicating the value 3 * optionally containing Service-Generic-Information AVP * indicating the service specific parameters * optionally containing Service-Context-Id AVP * on receipt of an AC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * not containing an Experimental-Result AVP * containing an Accounting-Record-Type AVP * indicating EVENT_RECORD * accepts the message. ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RF_CTF_TC_01 */ testcase TC_RF_CTF_TC_01() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRf_cdf; var ImsComponent v_imsComponent_ue; var ImsComponent v_imsComponent_cscf; // Test control if (not (PICS_RF_CTF_IUT and PICS_RF_CTF_EVENT_BASED_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CTF_IUT and PICS_RF_CTF_EVENT_BASED_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Rf_1Gm_1Mw_cdfUp(v_diameterRf_cdf, v_imsComponent_ue, v_imsComponent_cscf); // Start v_diameterRf_cdf.start(f_TC_CTF_TC_01()); if (PX_SIPsupport) { // v_imsComponent_ue.start(f_TC_CTF_TC_UE_01); // v_imsComponent_cscf.start(f_TC_CTF_TC_CSCF_01); } // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Rf_1Gm_1Mw_cdfDown(v_diameterRf_cdf, v_imsComponent_ue, v_imsComponent_cscf) } // End of testcase TC_RF_CTF_TC_01 } // End of group TP_RF_CTF_TC_Role // 5.2.2.2.4 Error cases group TP_RF_CTF_EC { } // End of group TP_RF_CTF_EC_Role { } // End of group TP_RF_CTF_Role } // End of group TP_RFRole group TP_RO_Role { //5.2.3.1. OCF Role group TP_RO_OCF_Role { // 5.2.3.1.2 Message Syntax group TP_RO_OCF_MS { /** * @desc Verify that the IUT can successfully process all mandatory AVPs in a CC-Request received due to Charging Data Transfer. *
* Pics Selection: PICS_OCF_IUT * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a Session-ID AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing a Destination-Realm AVP * containing an Auth-Application-Id AVP * indicating the value 4 * containing a Service-Context-Id AVP * containing a CC-Request-Type AVP * containing a CC-Request-Number AVP * then { * the IUT sends a CC-Answer * containing a Session-ID AVP * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing an Auth-Application-Id AVP * containing a CC-Request-Type AVP * containing a CC-Request-Number AVP. * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_MS_01 */ testcase TC_RO_OCF_MS_01() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not PICS_RO_OCF_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_TC_RO_OCF_MS_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_MS_01 /** * @desc Verify that the IUT can successfully process all mandatory AVPs in a CC-Request received due to Charging Data Transfer and responds with a valid CC-Answer message *
* Pics Selection: PICS_OCF_IUT * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a Session-ID AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing a Destination-Realm AVP * containing an Auth-Application-Id AVP * indicating the value 4 * containing a Service-Context-Id AVP * containing a CC-Request-Type AVP * containing a CC-Request-Number AVP * then { * the IUT sends a CC-Answer * containing a Diameter-Header * containing a Version * indicating value ‘1’ * containing a Command-Flags * containing T bit * indicating value ‘0’ * containing r bits * indicating value ‘0000’. * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_MS_02 */ testcase TC_RO_OCF_MS_02() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not PICS_RO_OCF_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_TC_RO_OCF_MS_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_MS_02 } // End of group TP_RO_OCF_MS // 5.2.3.1.3 Type of Charging group TP_RO_OCF_TC { /** * @desc Verify that the IUT can successfully process a CC-Request [Event] with direct debiting due to Immediate Event Charging *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a CC-Request-Type AVP * indicating EVENT_REQUEST * containing a CC-Request-Number AVP * containing a Requested-Action AVP * indicating DIRECT_DEBITING * containing a Multiple-Services-Credit-Control AVP * (containing a Requested-Service-Unit AVP and/or * containing a Service-Identifier AVP) * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating EVENT_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * indicating debites units * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_TC_01 */ testcase TC_RO_OCF_TC_01() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_TC_RO_OCF_TC_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_TC_01 /** * @desc Verify that the IUT can successfully process a CC-Request [Event] with price enquiry due to Immediate Event Charging *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a CC-Request-Type AVP * indicating EVENT_REQUEST * containing a CC-Request-Number AVP * containing a Requested-Action AVP * indicating PRICE_ENQUIRY * containing a Multiple-Services-Credit-Control AVP * containing a Service-Identifier AVP * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a Cost-Information AVP * containing a Unit-Value AVP * containing a Value-Digits AVP * containing a Currency-Code AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_TC_02 */ testcase TC_RO_OCF_TC_02() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_TC_RO_OCF_TC_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_TC_02 /** * @desc Verify that the IUT can successfully process a CC-Request [Event] with check balance due to Immediate Event Charging *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a CC-Request-Type AVP * indicating EVENT_REQUEST * containing a CC-Request-Number AVP * containing a Requested-Action AVP * indicating CHECK BALANCE * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a Remaining-Balance AVP * containing a Unit-Value AVP * containing a Value-Digits AVP * containing a Currency-Code AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_TC_03 */ testcase TC_RO_OCF_TC_03() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_TC_RO_OCF_TC_03()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_TC_03 /** * @desc Verify that the IUT can successfully process a CC-Request [Event] with refund account due to Immediate Event Charging *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING * Initial conditions: * with { * CCR,CCA [Event] direct debeting action are exchanged * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a CC-Request-Type AVP * indicating EVENT_REQUEST * containing a CC-Request-Number AVP * containing a Requested-Action AVP * indicating REFUND ACCOUNT * containing a Multiple-Services-Credit-Control AVP * (containing a Requested-Service-Unit AVP and/or * containing a Service-Identifier AVP) * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating EVENT_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * indicating refunded units * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_TC_04 */ testcase TC_RO_OCF_TC_04() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_TC_RO_OCF_TC_04()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_TC_04 /** * @desc Verify that the IUT can successfully process a CC-Request [Initial] to reserve units due to Event Charging with Unit Reservation *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_EVENT_CHARGING_WITH_UNIT_RESERVATION * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a CC-Request-Type AVP * indicating INITIAL_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Requested-Service-Unit * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating INITIAL_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * indicating reserved units * optionally containing a Cost-Information AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * optionally containing a Remaining-Balance AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_TC_05 */ testcase TC_RO_OCF_TC_05() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_EVENT_CHARGING_WITH_UNIT_RESERVATION)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_EVENT_CHARGING_WITH_UNIT_RESERVATION' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_TC_RO_OCF_TC_05()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_TC_05 /** * @desc Verify that the IUT can successfully process a CC-Request [Termination] to debit units due to Event Charging with Unit Reservation *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_EVENT_CHARGING_WITH_UNIT_RESERVATION * Initial conditions: * with { * CCR,CCA [Initial] are exchanged * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a CC-Request-Type AVP * indicating TERMINATION_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Used-Service-Unit * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating TERMINATION_REQUEST * optionally containing a Cost-Information AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * optionally containing a Remaining-Balance AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_TC_06 */ testcase TC_RO_OCF_TC_06() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_EVENT_CHARGING_WITH_UNIT_RESERVATION)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_EVENT_CHARGING_WITH_UNIT_RESERVATION' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_TC_RO_OCF_TC_06()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_TC_06 /** * @desc Verify that the IUT can successfully process a CC-Request [Initial] to reserve units due to Session Charging with Unit Reservation *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a CC-Request-Type AVP * indicating INITIAL_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Requested-Service-Unit * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating INITIAL_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * indicating reserved units * optionally containing a Cost-Information AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * optionally containing a Remaining-Balance AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_TC_07 */ testcase TC_RO_OCF_TC_07() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_TC_RO_OCF_TC_07()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_TC_07 /** * @desc Verify that the IUT can successfully process a CC-Request [Update] to reserve units and debit units due to Session Charging with Unit Reservation *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION * Initial conditions: * with { * CCR,CCA [Initial] are exchanged * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a CC-Request-Type AVP * indicating UPDATE_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Used-Service-Unit * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating UPDATE_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * indicating reserved units * optionally containing a Cost-Information AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * optionally containing a Remaining-Balance AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_TC_08 */ testcase TC_RO_OCF_TC_08() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_TC_RO_OCF_TC_08()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_TC_08 /** * @desc Verify that the IUT can successfully process a CC-Request [Termination] to debit units due to Session Charging with Unit Reservation *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION * Initial conditions: * with { * CCR,CCA [Initial] and CCR,CCA [Update] are exchanged * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a CC-Request-Type AVP * indicating TERMINATION_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Used-Service-Unit * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating TERMINATION_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * indicating reserved units * optionally containing a Cost-Information AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * optionally containing a Remaining-Balance AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_TC_09 */ testcase TC_RO_OCF_TC_09() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_TC_RO_OCF_TC_09()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_TC_09 } // End of group TP_RO_OCF_TC // 5.2.3.1.4 Error Casses group TP_RO_OCF_EC { /** * @desc Verify that the IUT can successfully process Duplicate Detection due to Immediate Event Charging with Direct Debiting *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing Diameter-Header * containing Command-Flags * containing T-flag * indicating value ‘1 * containing a CC-Request-Type AVP * indicating EVENT_REQUEST * containing a CC-Request-Number AVP * containing a Requested-Action AVP * indicating DIRECT_DEBITING * containing a Multiple-Services-Credit-Control AVP * (containing a Requested-Service-Unit AVP and/or * containing a Service-Identifier AVP) * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating EVENT_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * indicating debites units * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_EC_01 */ testcase TC_RO_OCF_EC_01() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_EC_RO_OCF_EC_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_EC_01 /** * @desc Verify that the IUT can successfully process Duplicate Detection due to Event Charging with Unit Reservation *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing Diameter-Header * containing Command-Flags * containing T-flag * indicating value ‘1 * containing a CC-Request-Type AVP * indicating INITIAL_REQUEST * containing a CC-Request-Number AVP * containing a Multiple-Services-Credit-Control AVP * containing a Requested-Service-Unit * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating INITIAL_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * indicating reserved units * optionally containing a Cost-Information AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * optionally containing a Remaining-Balance AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_EC_02 */ testcase TC_RO_OCF_EC_02() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_EC_RO_OCF_EC_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_EC_02 /** * @desc Verify that the IUT can successfully process Duplicate Detection due to Event Charging with Unit Reservation *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION * Initial conditions: * with { * CCR,CCA [Initial] are exchanged * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing Diameter-Header * containing Command-Flags * containing T-flag * indicating value ‘1 * containing a CC-Request-Type AVP * indicating TERMINATION_REQUEST * containing a CC-Request-Number AVP * containing a Multiple-Services-Credit-Control AVP * containing a Requested-Service-Unit * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating TERMINATION_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * indicating reserved units * optionally containing a Cost-Information AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * optionally containing a Remaining-Balance AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_EC_03 */ testcase TC_RO_OCF_EC_03() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_EC_RO_OCF_EC_03()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_EC_03 /** * @desc Verify that the IUT can successfully process Duplicate Detection due to Session Charging with Unit Reservation *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION * Initial conditions: * with { * CCR, CCA [Initial] and CCR, CCA [Update] are exchanged and, * the OCF stops communication with the IUT * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing Diameter-Header * containing Command-Flags * containing T-flag * indicating value ‘1 * containing a CC-Request-Type AVP * indicating UPDATE_REQUEST * containing a CC-Request-Number AVP * containing a Multiple-Services-Credit-Control AVP * containing a Requested-Service-Unit * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating UPDATE_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * indicating reserved units * optionally containing a Cost-Information AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * optionally containing a Remaining-Balance AVP * containing Unit-Value AVP * containing Value-Digits AVP * containing Currency-Code AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_EC_04 */ testcase TC_RO_OCF_EC_04() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_EC_RO_OCF_EC_04()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_EC_04 } // End of group TP_RO_OCF_EC // 5.2.3.1.5 Tariff Changes group TP_RO_OCF_CH { /** * @desc Verify that the IUT supports Tariff-Change-Usage AVP and that the IUT can successfully process a CC-Request [Event] to perform tariff switch due to Immediate Event Charging and then responds with a CC-Answer with relavant Result-Code AVP and Tariff-Time-Change AVP *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a CC-Request-Type AVP * indicating EVENT_REQUEST * containing a CC-Request-Number AVP * containing a Requested-Action AVP * indicating CHECK BALANCE * containing a Multiple-Services-Credit-Control AVP * containing an Used-Service-Unit AVP * containing a Tariff-Change-Usage AVP * indicating UNIT_BEFORE_TARIFF_CHANGE * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating EVENT_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * containing a Tariff-Time-Change AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_CH_01 */ testcase TC_RO_OCF_CH_01() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_IMMEDIATE_EVENT_CHARGING' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_CH_RO_OCF_CH_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_CH_01 /** * @desc Verify that the IUT supports Tariff-Change-Usage AVP and IUT can successfully process a CC-Request [Initial] to perform tariff switch due to Event Charging with Unit Reservation and then responds with a CC-Answer with relavant Result-Code AVP and Tariff-Time-Change AVP *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_EVENT_CHARGING_WITH_UNIT_RESERVATION * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a CC-Request-Type AVP * indicating INITIAL_REQUEST * containing a CC-Request-Number AVP * containing a Multiple-Services-Credit-Control AVP * containing a Requested-Service-Unit AVP * containing an Used-Service-Unit AVP * containing a Tariff-Change-Usage AVP * indicating UNIT_BEFORE_TARIFF_CHANGE * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating INITIAL_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * containing a Tariff-Time-Change AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_CH_02 */ testcase TC_RO_OCF_CH_02() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_EVENT_CHARGING_WITH_UNIT_RESERVATION)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_EVENT_CHARGING_WITH_UNIT_RESERVATION' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_CH_RO_OCF_CH_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_CH_02 /** * @desc Verify that the IUT supports Tariff-Change-Usage AVP and IUT can successfully process a CC-Request [Initial] to perform tariff switch due to Session Charging with Unit Reservation and then responds with a CC-Answer with relavant Result-Code AVP and Tariff-Time-Change AVP *
* Pics Selection: PICS_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * when { * the IUT receives an CC-Request * containing a CC-Request-Type AVP * indicating INITIAL_REQUEST * containing a CC-Request-Number AVP * containing a Multiple-Services-Credit-Control AVP * containing a Requested-Service-Unit AVP * containing an Used-Service-Unit AVP * containing a Tariff-Change-Usage AVP * indicating UNIT_BEFORE_TARIFF_CHANGE * then { * the IUT sends a CC-Answer * containing a Result-Code AVP * indicating DIAMETER_SUCCESS * containing a CC-Request-Type AVP * indicating INITIAL_REQUEST * containing a Multiple-Services-Credit-Control AVP * containing a Granted-Service-Unit AVP * containing a Tariff-Time-Change AVP * } * } ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_OCF_CH_03 */ testcase TC_RO_OCF_CH_03() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ctf; // Test control if (not (PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION)) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_OCF_IUT and PICS_RO_OCF_SESSION_CHARGING_WITH_UNIT_RESERVATION' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_ctfUp(v_diameterRo_ctf); // Start v_diameterRo_ctf.start(f_CH_RO_OCF_CH_03()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_ctfDown(v_diameterRo_ctf); } // End of testcase TC_RO_OCF_CH_03 } // End of group TP_RO_OCF_CH // 5.2.3.1.6 Re-Authorization group TP_RO_OCF_RE { } // End of group TP_RO_OCF_RE // 5.2.3.1.7 Failure Handling group TP_RO_OCF_FH { } // End of group TP_RO_OCF_FH // 5.2.3.1.8 Failover group TP_RO_OCF_FA { } // End of group TP_RO_OCF_FA // 5.2.3.1.9 Credit Pooling group TP_RO_OCF_CP { } // End of group TP_RO_OCF_CP // 5.2.3.1.10 Other Procedures group TP_RO_OCF_OP { } // End of group TP_RO_OCF_OP }//End of group TP_RO_OCF_Role //5.2.3.2. CTF Role group TP_RO_CTF_Role { // 5.2.3.2.2 Message Syntax group TP_RO_CTF_MS { /** * @desc Verify that the IUT can send a CC-Request to indicate a Charging Data Transfer. *
* Pics Selection: PICS_RO_CTF_IUT * Initial conditions: * with { * * } * Expected behaviour: * ensure that the IUT sends a CC-Request * containing a Session-ID AVP * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing a Destination-Realm AVP * containing an Auth-Application-Id AVP * indicating the value 4 * containing a Service-Context-Id AVP * containing a CC-Request-Type AVP * containing a CC-Request-Number AVP ** * @version 0.0.7 * @see ETSI DTS/INT 00121-2 V0.0.7 (2015-09) TP_RO_CTF_MS_01 */ testcase TC_RO_CTF_MS_01() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ocf; var ImsComponent v_imsComponent_ue; var ImsComponent v_imsComponent_ue2; var ImsComponent v_imsComponent_as; // Test control if (not PICS_RO_CTF_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_CTF_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_2Gm_1Isc_ocfUp(v_diameterRo_ocf, v_imsComponent_ue, v_imsComponent_ue2, v_imsComponent_as); // Start v_diameterRo_ocf.start(f_TC_RO_CTF_MS_01()); if (PX_SIPsupport) { // v_imsComponent_ue.start(f_TC_RO_CTF_MS_UE_01); // v_imsComponent_ue.start(f_TC_RO_CTF_MS_UE2_01); // v_imsComponent_as.start(f_TC_RO_CTF_MS_AS_01); } // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_2Gm_1Isc_ocfDown(v_diameterRo_ocf, v_imsComponent_ue, v_imsComponent_ue2, v_imsComponent_as) } // End of testcase TC_RO_CTF_MS_01 /** * @desc Verify that the IUT can send an CC-Request with correct Diameter-Header parameters to indicate a Charging Data Transfer with valid Diameter-Header parameters. *
* Pics Selection: PICS_RO_CTF_IUT * Initial conditions: * with { * * } * Expected behaviour: * Ensure that the IUT * to indicate a request for Charging Data Transfer, * sends an CC-Request * containing a Diameter-Header * containing a Version * indicating value ‘1’ * containing a Command-Flags * containing T bit * indicating value ‘0’ * containing E bit * indicating value ‘0’ * containing r bits * indicating value ‘0000’. ** * @version 0.0.18 * @see ETSI DTS/INT 00121-2 V0.0.18 (2015-10) TP_RO_CTF_MS_02 */ testcase TC_RO_CTF_MS_02() runs on DiameterRfRo system TestAdapter { // Local variables var DiameterRfRo v_diameterRo_ocf; var ImsComponent v_imsComponent_ue; var ImsComponent v_imsComponent_ue2; var ImsComponent v_imsComponent_as; // Test control if (not PICS_RO_CTF_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_RO_CTF_IUT' required for executing the TC. ***"); stop; } // Test component configuration f_cf_1Ro_2Gm_1Isc_ocfUp(v_diameterRo_ocf, v_imsComponent_ue, v_imsComponent_ue2, v_imsComponent_as); // Start v_diameterRo_ocf.start(f_TC_RO_CTF_MS_02()); if (PX_SIPsupport) { // v_imsComponent_ue.start(f_TC_RO_CTF_MS_UE_02); // v_imsComponent_ue.start(f_TC_RO_CTF_MS_UE2_02); // v_imsComponent_as.start(f_TC_RO_CTF_MS_AS_02); } // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1Ro_2Gm_1Isc_ocfDown(v_diameterRo_ocf, v_imsComponent_ue, v_imsComponent_ue2, v_imsComponent_as) } // End of testcase TC_RO_CTF_MS_02 } // End of group TP_RO_CTF_MS // 5.2.3.2.3 Type of Charging group TP_RO_CTF_TC { } // End of group TP_RO_CTF_TC // 5.2.3.2.4 Error Casses group TP_RO_CTF_EC { } // End of group TP_RO_CTF_EC // 5.2.3.2.5 Tariff Changes group TP_RO_CTF_CH { } // End of group TP_RO_CTF_CH // 5.2.3.2.6 Re-Authorization group TP_RO_CTF_RE { } // End of group TP_RO_CTF_RE // 5.2.3.2.7 Failure Handling group TP_RO_CTF_FH { } // End of group TP_RO_CTF_FH // 5.2.3.2.8 Failover group TP_RO_CTF_FA { } // End of group TP_RO_CTF_FA // 5.2.3.2.9 Credit Pooling group TP_RO_CTF_CP { } // End of group TP_RO_CTF_CP // 5.2.3.2.10 Other Procedures group TP_RO_CTF_OP { } // End of group TP_RO_CTF_OP }//End of group TP_RO_CTF_Role } // End of group TP_RO_Role } // End of module DiameterRfRo_TestCases