Newer
Older
* 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;
//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
41
42
43
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
82
/**
* @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 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
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/**
* @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’.
* }
* }
* </pre>
*
* @version 0.0.15
*/
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
/**
* @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
* 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
* }
* }
* </pre>
*
* @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
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});
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
} // 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 {
* 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.
* }
* }
* </pre>
*
*/
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);
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
} // 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 {
* 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.
* }
* }
* </pre>
*
* @version 0.0.15
*/
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. ***");
337
338
339
340
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
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
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 {
* 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
* }
* }
* </pre>
*
* @version 0.0.15
*/
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 {
* 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.
* }
* </pre>
*
* @version 0.0.15
*/
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. ***");
447
448
449
450
451
452
453
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
480
481
482
483
484
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 {
* 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.
* }
* </pre>
*
* @version 0.0.15
*/
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
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
/**
* @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
* 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
* }
* }
* </pre>
*
* @version 0.0.15
*/
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
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
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
* 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
* }
* }
* </pre>
*
* @version 0.0.15
*/
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 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
* </pre>
*
* @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
log("*** " & __SCOPE__ & ": ERROR: 'PICS_RF_CTF_IUT' 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_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)
/**
* @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 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’.
* </pre>
*
* @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' 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_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)
764
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
792
793
794
795
796
797
/**
* @desc Verify that the IUT can successfully process an AC-Request [Event].
* <pre>
* 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.
* </pre>
*
* @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' 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) {
// 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 group TP_RF_CTF_EC_Role {
} // End of group TP_RFRole
//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.
* <pre>
* 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.
* }
* }
* </pre>
*
* @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' shall be set to true 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
* <pre>
* 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’.
* }
* }
* </pre>
*
* @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' shall be set to true 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
/**
* @desc Verify that the IUT can successfully process a CC-Request [Event] with direct debiting due to Immediate Event Charging
* <pre>
* 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