Newer
Older
* @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;
import from LibDiameter_TypesAndValues all;
//LibSip
import from LibSip_SIPTypesAndValues {type CSeq;};
//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_CDF_Role {
// 5.2.2.1.2 Message Syntax
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/**
* @desc Verify that the IUT can successfully process all mandatory AVPs in an AC-Request received due to Charging Data Transfer
* <pre>
* 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
* }
* }
* </pre>
*
* @version 0.0.12
* @see ETSI TS 103 374-2 V0.0.12 (2015-07) TP_RF_CDF_MS_01
*/
testcase TC_RF_CDF_MS_01() runs on DiameterRfRo system TestAdapter {
// Local variables
log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CDF_IUT' shall be set to true for executing the TC. ***");
stop;
}
// Test component configuration
// synchronize PTC on 1 sychronization points
f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone});
} // 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
* <pre>
* 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.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) 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
log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CDF_IUT' shall be set to true 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
/**
* @desc Verify that the IUT can successfully process an AC-Request [Event] where Event Based Charging is used
* <pre>
* 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
* optionally 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
* }
* 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
* }
* }
* </pre>
*
* @version 0.0.12
* @see ETSI TS 103 374-2 V0.0.12 (2015-07) TP_RF_CDF_TC_01
*/
testcase TC_RF_CDF_TC_01() runs on DiameterRfRo system TestAdapter {
// Local variables
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' shall be set to true for executing the TC. ***");
stop;
}
// Test component configuration
// 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});
} // 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
* <pre>
* 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 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 {
* the IUT 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.
* }
* }
* </pre>
*
* @version 0.0.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) 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' shall be set to true 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
* <pre>
* 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 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
* optionally containing Service-Information AVP
* indicating Subscription-Id AVP
* indicating IMS-Information AVP
* }
* then {
* the IUT 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.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) 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' shall be set to true for executing the TC. ***");
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
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
* <pre>
* 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 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
* optionally containing Service-Information AVP
* indicating Subscription-Id AVP
* indicating IMS-Information AVP
* }
* then {
* the IUT 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
* }
* }
* </pre>
*
* @version 0.0.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) 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' shall be set to true 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
/**
* @desc Verify that the IUT terminates the call in case of timer expiration when the Session Based Charging procedure is not completed properly.
* <pre>
* Pics Selection: PICS_CDF_IUT and PICS_SESSION_BASED_CHARGING
* Initial conditions:
* with {
*
* }
* Expected behaviour:
* ensure that {
* when {
* The timer expired
* }
* then {
* the IUT 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.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) 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' shall be set to true for executing the TC. ***");
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
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.
* <pre>
* Pics Selection: PICS_CDF_IUT and PICS_SESSION_BASED_CHARGING
* Initial conditions:
* with {
*
* }
* Expected behaviour:
* ensure that {
* when {
* The timer expired
* }
* then {
* the IUT 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.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) 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' shall be set to true 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
* <pre>
* 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
* the IUT sends a AC-Response
* 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
* }
* }
* </pre>
*
* @version 0.0.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) 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' shall be set to true for executing the TC. ***");
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
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
* <pre>
* 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
* }
* then {
* the IUT sends a AC-Response
* 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
* }
* }
* </pre>
*
* @version 0.0.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) 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' shall be set to true 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 TP_RF_CDF_Role
// 5.2.2.2. CTF Role
group TP_RF_CTF_Role {
// 5.2.2.2.2 Message Syntax
/**
* @desc Verify that the IUT can send an AC-Request to indicate a Charging Data Transfer.
* <pre>
* Initial conditions:
* with {
*
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT is requested to indicate a request for Charging Data Transfer
* }
* then {
* 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.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) TP_RF_CTF_MS_01
*/
testcase TC_RF_CTF_MS_01() runs on DiameterRfRo system TestAdapter {
// Local variables
log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CTF_IUT' shall be set to true for executing the TC. ***");
// Start
v_diameterRf_cdf.start(f_TC_CTF_MS_01());
// synchronize PTC on 1 sychronization points
f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone});
/**
* @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.
* <pre>
* Pics Selection: PICS_RF_CTF_IUT
* Initial conditions:
* with {
*
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT is requested to indicate a request for Charging Data Transfer
* }
* then {
* the IUT 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.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) TP_RF_CTF_MS_02
*/
testcase TC_RF_CTF_MS_02() runs on DiameterRfRo system TestAdapter {
// Local variables
log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CTF_IUT' shall be set to true for executing the TC. ***");
// Start
v_diameterRf_cdf.start(f_TC_CTF_MS_02());
// synchronize PTC on 1 sychronization points
f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone});
/**
* @desc Verify that the IUT can successfully process an AC-Request [Event].
* <pre>
* Pics Selection: PICS_RF_CTF_IUT and PICS_RF_CTF_EVENT_BASED_CHARGING
* Initial conditions:
* with {
* Preamble action: UE initiates an initial REGISTRATION procedure.
* }
* Expected behaviour:
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
* ensure that {
* when {
* 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
* }
* then {
* the IUT receives 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
* and the IUT accepts the message
* }
* }
* @version 0.0.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) TP_RF_CTF_TC_01
pintar
committed
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;
pintar
committed
var CSeq p_cSeq_s := {fieldName := CSEQ_E, seqNumber := 1000, method := "REGISTER"};
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' shall be set to true 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) {
if (PX_VA == 1){
v_imsComponent_ue.start(f_TC_CTF_TC_UE_01_VA1(p_cSeq_s));
v_imsComponent_cscf.start(f_TC_CTF_TC_CSCF_01_VA1(p_cSeq_s));
else if(PX_VA == 2){
v_imsComponent_ue.start(f_TC_CTF_TC_UE_01_VA2(p_cSeq_s));
v_imsComponent_cscf.start(f_TC_CTF_TC_CSCF_01_VA2(p_cSeq_s));
else if(PX_VA == 3){
v_imsComponent_ue.start(f_TC_CTF_TC_UE_01_VA3(p_cSeq_s));
v_imsComponent_cscf.start(f_TC_CTF_TC_CSCF_01_VA3(p_cSeq_s));
else if(PX_VA == 4){
v_imsComponent_ue.start(f_TC_CTF_TC_UE_01_VA4(p_cSeq_s));
v_imsComponent_cscf.start(f_TC_CTF_TC_CSCF_01_VA4(p_cSeq_s));
}
else {
log("Set correct value of PIXIT: PX_VA due to related test case!");
}
f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_sync1, c_tbDone, c_poDone});
f_cf_1Rf_1Gm_1Mw_cdfDown(v_diameterRf_cdf, v_imsComponent_ue, v_imsComponent_cscf)
/**
* @desc Verify that the IUT can successfully process an AC-Request [Start].
* <pre>
* Pics Selection: PICS_RF_CTF_IUT and PICS_RF_CTF_SESSION_BASED_CHARGING
* Initial conditions:
* with {
* Preamble action: UE initiates an INVITE procedure.
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT sends an AC-Request
* 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 {
* the IUT receives 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
* and the IUT accepts the message
* }
* }
* @version 0.0.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) TP_RF_CTF_TC_02
pintar
committed
testcase TC_RF_CTF_TC_02() runs on DiameterRfRo system TestAdapter {
// Local variables
var DiameterRfRo v_diameterRf_cdf;
var ImsComponent v_imsComponent_ue;
var ImsComponent v_imsComponent_cscf;
pintar
committed
var CSeq p_cSeq_s := {fieldName := CSEQ_E, seqNumber := 1000, method := "REGISTER"};
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
// Test control
if (not (PICS_RF_CTF_IUT and PICS_RF_CTF_SESSION_BASED_CHARGING)) {
log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CTF_IUT and PICS_RF_CTF_SESSION_BASED_CHARGING' shall be set to true 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_02());
if (PX_SIPsupport) {
v_imsComponent_ue.start(f_TC_CTF_TC_UE_02(p_cSeq_s));
v_imsComponent_cscf.start(f_TC_CTF_TC_CSCF_02(p_cSeq_s));
}
// synchronize PTC on 1 sychronization points
f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_sync1, 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_02
/**
* @desc Verify that the time between several AC-Requests [Interim]
* received by the IUT is at least equal to the desired intermediate
* charging interval.
* <pre>
* Pics Selection: PICS_RF_CTF_IUT and PICS_RF_CTF_SESSION_BASED_CHARGING
* Initial conditions:
* with {
* Preamble action: UE establishes a call.
* }
* Expected behaviour:
* Ensure that {
* the IUT sends an AC-Request
* containing an Accounting-Record-Type AVP
* indicating START_RECORD
* containing an Accounting-Record-Number AVP
* the IUT receives an AC-Answer
* containing an Accounting-Record-Type AVP
* indicating START_RECORD
* containing an Accounting-Record-Number AVP
* containing an Acct-Interim-Interval AVP
* containing the desired intermediate charging interval
* indicating a value INTERIM_INTERVAL not equal to 0
* the IUT sends periodically an AC-Request [Interim]
* containing an Accounting-Record-Type AVP
* indicating INTERIM_RECORD
* containing an Accounting-Record-Number AVP
* containing a Service-Information AVP
* containing an Event-Timestamp AVP
* the IUT receives an AC-Answer
* containing an Accounting-Record-Type AVP
* indicating INTERIM_RECORD
* containing an Accounting-Record-Number AVP
* the IUT accepts the message
* }
* @version 0.0.22
* @see ETSI TS 103 374-2 V0.0.22 (2015-11) TP_RF_CTF_TC_03
pintar
committed
testcase TC_RF_CTF_TC_03() runs on DiameterRfRo system TestAdapter {
// Local variables
var DiameterRfRo v_diameterRf_cdf;
var ImsComponent v_imsComponent_ue;
var ImsComponent v_imsComponent_cscf;
pintar
committed
var CSeq p_cSeq_s := {fieldName := CSEQ_E, seqNumber := 1000, method := "REGISTER"};
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
// Test control
if (not (PICS_RF_CTF_IUT and PICS_RF_CTF_SESSION_BASED_CHARGING)) {
log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CTF_IUT and PICS_RF_CTF_SESSION_BASED_CHARGING' shall be set to true 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_03());
if (PX_SIPsupport) {
v_imsComponent_ue.start(f_TC_CTF_TC_UE_03(p_cSeq_s));
v_imsComponent_cscf.start(f_TC_CTF_TC_CSCF_03(p_cSeq_s));
}
// synchronize PTC on 1 sychronization points
f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_sync1, 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_03
/**
* @desc Verify that the IUT can successfully process an AC-Request [Interim].
* <pre>
* Pics Selection: PICS_RF_CTF_IUT and PICS_RF_CTF_SESSION_BASED_CHARGING
* Initial conditions:
* with {
* Preamble action: UE establishes a call.
* }
* Expected behaviour:
* Ensure that {
* the IUT sends an AC-Request
* containing an Accounting-Record-Type AVP
* indicating START_RECORD
* containing an Accounting-Record-Number AVP
* the IUT receives an AC-Answer