1 | /**
|
---|
2 | * @author STF 370
|
---|
3 | * @version $Id: $
|
---|
4 | * @desc This module provides ATS specific test case definitions.
|
---|
5 | */
|
---|
6 | module AtsImsIot_TestCases_REG {
|
---|
7 |
|
---|
8 | import from AtsImsIot_Behavior {
|
---|
9 | function all;
|
---|
10 | }
|
---|
11 |
|
---|
12 | import from AtsImsIot_Functions {
|
---|
13 | function all;
|
---|
14 | }
|
---|
15 |
|
---|
16 | import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;}
|
---|
17 |
|
---|
18 | import from LibIms_UpperTester {type ImsUserInfo;}
|
---|
19 |
|
---|
20 | import from LibIot_TestConfiguration {
|
---|
21 | function f_cf_create_IotEquipmentUser;
|
---|
22 | }
|
---|
23 |
|
---|
24 | import from AtsImsIot_TestConfiguration {
|
---|
25 | const all;
|
---|
26 | function all;
|
---|
27 | }
|
---|
28 |
|
---|
29 | import from LibIot_TestInterface {type IotEquipmentUser;}
|
---|
30 |
|
---|
31 | import from AtsImsIot_TestSystem {
|
---|
32 | type ImsInterfaceMonitor, ImsTestCoordinator, IotSystemInterface;
|
---|
33 | }
|
---|
34 |
|
---|
35 | import from LibSip_SIPTypesAndValues all;
|
---|
36 |
|
---|
37 |
|
---|
38 |
|
---|
39 | /**
|
---|
40 | * @desc
|
---|
41 | * First time registration in a visited IMS network.
|
---|
42 | * (in ETSI TS 186 011-2 V2.3.1 cause 4.5.2.1)
|
---|
43 | */
|
---|
44 | testcase TC_IMS_REG_0001() runs on ImsTestCoordinator system IotSystemInterface {
|
---|
45 | // create components
|
---|
46 | var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
|
---|
47 | var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
|
---|
48 | var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
|
---|
49 | var ImsUserInfo v_anyValidUser := f_getAnyValidUser(PX_EUT_B);
|
---|
50 | var Response v_200OK_Step8;
|
---|
51 | var Request v_Subscribe_Step10;
|
---|
52 |
|
---|
53 | // map/connect component ports
|
---|
54 | f_cf_adapter_up();
|
---|
55 | f_cf_user_up(v_ueB);
|
---|
56 | f_cf_roam_reg_up(v_gmA, v_ic);
|
---|
57 |
|
---|
58 | // test body
|
---|
59 | f_mtc_userRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 1 @TODO shouldn't this be EUT_A?
|
---|
60 |
|
---|
61 | // @TODO check mw_credentialIntegrityNo, mw_credentialIntegrityYes
|
---|
62 |
|
---|
63 | f_mtc_check_TP_IMS_5011_01_gm(v_gmA, true); // Check1 when
|
---|
64 | f_mtc_check_TP_IMS_5011_01_ic(v_ic, true); // Check1 then
|
---|
65 |
|
---|
66 | f_mtc_check_TP_IMS_5089_01_gm_when(v_gmA, false); // Check4 when (Gm)
|
---|
67 | f_mtc_check_TP_IMS_5089_01_ic_when(v_ic, false); // Check4 when (Mw)
|
---|
68 | f_mtc_check_TP_IMS_5089_01_ic_then(v_ic, false); // Check4 then @TODO check mw_WwwAuthenticate
|
---|
69 |
|
---|
70 | f_mtc_check_TP_IMS_5011_02_gm(v_gmA, true); // Check2 when (Gm)
|
---|
71 | f_mtc_check_TP_IMS_5011_02_ic(v_ic, true); // Check2 then (Mw)
|
---|
72 |
|
---|
73 | f_mtc_check_TP_IMS_5092_01_gm(v_gmA, false); // Check5 when (Gm)
|
---|
74 | f_mtc_check_TP_IMS_5092_01_ic_when(v_ic, false); // Check5 when (Mw)
|
---|
75 | f_mtc_check_TP_IMS_5092_01_ic(v_ic, true); // Check5 then
|
---|
76 |
|
---|
77 | v_200OK_Step8 := f_mtc_check_TP_IMS_5044_01_ic_when(v_ic, false); // Check3 when
|
---|
78 | f_mtc_check_TP_IMS_5044_01_ic(v_ic, v_200OK_Step8, true); // Check3 then
|
---|
79 |
|
---|
80 | v_Subscribe_Step10 := f_mtc_check_TP_IMS_5096_01_ic_when(v_ic, false); // Check6 when
|
---|
81 | f_mtc_check_TP_IMS_5096_01_ic(v_ic, v_Subscribe_Step10, false); // Check6 then
|
---|
82 |
|
---|
83 | // Test Sequence Step 2
|
---|
84 | f_mtc_userCheckRegistration(v_ueB, v_anyValidUser);
|
---|
85 |
|
---|
86 | // postamble
|
---|
87 | f_PO_user_home_deregistration(v_ueB);
|
---|
88 |
|
---|
89 | // unmap/disconnect component ports
|
---|
90 | f_cf_user_down(v_ueB);
|
---|
91 | f_cf_roam_reg_down(v_gmA, v_ic);
|
---|
92 | f_cf_adapter_down();
|
---|
93 | }
|
---|
94 |
|
---|
95 | /**
|
---|
96 | * @desc
|
---|
97 | * No response from first entry point on REGISTER with topology hiding
|
---|
98 | * (TS 186 011-2 V2.3.1 cause 4.5.2.2)
|
---|
99 | */
|
---|
100 | // @TODO
|
---|
101 | testcase TC_IMS_REG_0002() runs on ImsTestCoordinator system IotSystemInterface {
|
---|
102 | // create components
|
---|
103 | var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
|
---|
104 | var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
|
---|
105 | var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
|
---|
106 | var Request v_Register_Step4; // why do we need this variable?
|
---|
107 | var Response v_200OK_Step9;
|
---|
108 |
|
---|
109 | // map/connect component ports
|
---|
110 | f_cf_adapter_up();
|
---|
111 | f_cf_user_up(v_ueB);
|
---|
112 | f_cf_roam_reg_up(v_gmA, v_ic);
|
---|
113 |
|
---|
114 | // test body
|
---|
115 | f_mtc_userRegistration(v_ueB, f_getAnyValidUser(PX_EUT_A)); // Test Sequence Step 1
|
---|
116 |
|
---|
117 | // check no response (check1-when) -message skip (1st register)
|
---|
118 | // check included in check1-then
|
---|
119 |
|
---|
120 | // check mw for second register request
|
---|
121 | f_mtc_check_TP_IMS_5203_01_ic(v_ic); // (Check1-then)
|
---|
122 |
|
---|
123 | // check gm for protected register (Check2-when)
|
---|
124 |
|
---|
125 | // check mw for protected register (check2-when)
|
---|
126 |
|
---|
127 | // check mw for 200_response (check2-then)
|
---|
128 | //v_200OK_Step9 := f_mtc_check_TP_IMS_5092_01_ic(v_ic); // Check2
|
---|
129 |
|
---|
130 | //Step 2
|
---|
131 | f_mtc_userCheckRegistration(v_ueB, f_getAnyValidUser(PX_EUT_B));
|
---|
132 |
|
---|
133 | // postamble
|
---|
134 | f_PO_user_home_deregistration(v_ueB);
|
---|
135 |
|
---|
136 | // unmap/disconnect component ports
|
---|
137 | f_cf_user_down(v_ueB);
|
---|
138 | f_cf_roam_reg_down(v_gmA, v_ic);
|
---|
139 | f_cf_adapter_down();
|
---|
140 | }
|
---|
141 |
|
---|
142 | /**
|
---|
143 | * @desc
|
---|
144 | * 403 response from first entry point on REGISTER with topology hiding
|
---|
145 | * (ETSI TS 186 011-2 V2.3.1 cause 4.5.2.3)
|
---|
146 | */
|
---|
147 | // @TODO
|
---|
148 | testcase TC_IMS_REG_0002H() runs on ImsTestCoordinator system IotSystemInterface {
|
---|
149 | // create components
|
---|
150 | var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
|
---|
151 | var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
|
---|
152 | var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
|
---|
153 | var Request v_Register_Step4;
|
---|
154 |
|
---|
155 | // map/connect component ports
|
---|
156 | f_cf_adapter_up();
|
---|
157 | f_cf_user_up(v_ueB);
|
---|
158 | f_cf_roam_reg_up(v_gmA, v_ic);
|
---|
159 |
|
---|
160 | // test body
|
---|
161 | f_mtc_userRegistration(v_ueB, f_getAnyValidUser(PX_EUT_A));
|
---|
162 |
|
---|
163 | f_mtc_check_TP_IMS_5402_01_gm(v_gmA);
|
---|
164 |
|
---|
165 | v_Register_Step4 := f_mtc_check_TP_IMS_5402_01_ic(v_ic); // Check1
|
---|
166 |
|
---|
167 | f_mtc_userCheckRegistration(v_ueB, f_getAnyValidUser(PX_EUT_B));
|
---|
168 |
|
---|
169 | // postamble
|
---|
170 | f_PO_user_home_deregistration(v_ueB);
|
---|
171 |
|
---|
172 | // unmap/disconnect component ports
|
---|
173 | f_cf_user_down(v_ueB);
|
---|
174 | f_cf_roam_reg_down(v_gmA, v_ic);
|
---|
175 | }
|
---|
176 | /**
|
---|
177 | * @desc
|
---|
178 | * 403 response to REGISTER from an un-trusted domain without topology hiding
|
---|
179 | * (ETSI TS 186 011-2 V2.3.1 cause 4.5.2.4)
|
---|
180 | */
|
---|
181 | testcase TC_IMS_REG_0003() runs on ImsTestCoordinator system IotSystemInterface {
|
---|
182 | // create components
|
---|
183 | var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
|
---|
184 | var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
|
---|
185 | var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
|
---|
186 | var ImsUserInfo v_anyValidUser := f_getAnyValidUser(PX_EUT_B);
|
---|
187 |
|
---|
188 | // map/connect component ports
|
---|
189 | f_cf_adapter_up();
|
---|
190 | f_cf_user_up(v_ueB);
|
---|
191 | f_cf_roam_reg_up(v_gmA, v_ic);
|
---|
192 |
|
---|
193 | // test body
|
---|
194 | f_mtc_userRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 1
|
---|
195 |
|
---|
196 | f_mtc_check_TP_IMS_5129_01_gm(v_gmA, false); // Check1 when (Gm)
|
---|
197 | f_mtc_check_TP_IMS_5129_01_ic_when(v_ic, false); // Check1 when (Mw)
|
---|
198 |
|
---|
199 | f_mtc_check_TP_IMS_5129_01_ic(v_ic, false); // Check1 then
|
---|
200 |
|
---|
201 | f_mtc_userCheckNoRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 2 - unsuccessful registration
|
---|
202 |
|
---|
203 | // unmap/disconnect component ports
|
---|
204 | f_cf_user_down(v_ueB);
|
---|
205 | f_cf_roam_reg_down(v_gmA, v_ic);
|
---|
206 | }
|
---|
207 |
|
---|
208 | /**
|
---|
209 | * @desc
|
---|
210 | * 403 response to REGISTER from an un-trusted domain with topology hiding
|
---|
211 | * (ETSI TS 186 011-2 V2.3.1 cause 4.5.2.5)
|
---|
212 | */
|
---|
213 | testcase TC_IMS_REG_0003H() runs on ImsTestCoordinator system IotSystemInterface {
|
---|
214 | // create components
|
---|
215 | var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
|
---|
216 | var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
|
---|
217 | var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
|
---|
218 | var ImsUserInfo v_anyValidUser := f_getAnyValidUser(PX_EUT_B);
|
---|
219 |
|
---|
220 | // map/connect component ports
|
---|
221 | f_cf_adapter_up();
|
---|
222 | f_cf_user_up(v_ueB);
|
---|
223 | f_cf_roam_reg_up(v_gmA, v_ic);
|
---|
224 |
|
---|
225 | // test body
|
---|
226 | f_mtc_userRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 1
|
---|
227 |
|
---|
228 | f_mtc_check_TP_IMS_5411_01_gm(v_gmA, false); // Check1 when (Gm)
|
---|
229 | f_mtc_check_TP_IMS_5411_01_ic_when(v_gmA, false); //Check1 when (Mw)
|
---|
230 |
|
---|
231 | f_mtc_check_TP_IMS_5411_01_ic(v_ic, false); // Check1 then
|
---|
232 |
|
---|
233 | f_mtc_userCheckNoRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 2 - unsuccessful registration
|
---|
234 |
|
---|
235 | // unmap/disconnect component ports
|
---|
236 | f_cf_user_down(v_ueB);
|
---|
237 | f_cf_roam_reg_down(v_gmA, v_ic);
|
---|
238 | }
|
---|
239 |
|
---|
240 | /**
|
---|
241 | * @desc IMS network supports network initiated re-registration
|
---|
242 | * upon receipt of a new registration with new contact information
|
---|
243 | * @see ETSI TS 186 011-2 V2.3.1 cause 4.5.2.6
|
---|
244 | */
|
---|
245 | testcase TC_IMS_REG_0004() runs on ImsTestCoordinator system IotSystemInterface {
|
---|
246 | // create components
|
---|
247 | var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
|
---|
248 | var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
|
---|
249 | var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
|
---|
250 | var ImsUserInfo v_anyValidUser := f_getAnyValidUser(PX_EUT_B);
|
---|
251 |
|
---|
252 | // map/connect component ports
|
---|
253 | f_cf_adapter_up();
|
---|
254 | f_cf_user_up(v_ueB);
|
---|
255 | f_cf_roam_reg_up(v_gmA, v_ic);
|
---|
256 |
|
---|
257 | // test body
|
---|
258 | f_mtc_userRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 1
|
---|
259 |
|
---|
260 | f_mtc_check_TP_IMS_5088_01_gm(v_gmA, false); // Check1 when (REGISTER)
|
---|
261 | f_mtc_check_TP_IMS_5088_01_ic(v_ic, false); // Check1 then (NOTIFY)
|
---|
262 |
|
---|
263 | f_mtc_userCheckRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 2
|
---|
264 |
|
---|
265 | // postamble
|
---|
266 | f_PO_user_home_deregistration(v_ueB);
|
---|
267 |
|
---|
268 | // unmap/disconnect component ports
|
---|
269 | f_cf_user_down(v_ueB);
|
---|
270 | f_cf_roam_reg_down(v_gmA, v_ic);
|
---|
271 | }
|
---|
272 |
|
---|
273 | /**
|
---|
274 | * @desc IMS network can initiate user de-registration,
|
---|
275 | * e.g., when a user runs out of credit
|
---|
276 | * @see ETSI TS 186 011-2 V2.3.1 cause 4.5.2.7
|
---|
277 | */
|
---|
278 | testcase TC_IMS_REG_0005() runs on ImsTestCoordinator system IotSystemInterface {
|
---|
279 | // create components
|
---|
280 | var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
|
---|
281 | var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
|
---|
282 | var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
|
---|
283 | var ImsUserInfo v_anyValidUser := f_getAnyValidUser(PX_EUT_B);
|
---|
284 |
|
---|
285 | // map/connect component ports
|
---|
286 | f_cf_adapter_up();
|
---|
287 | f_cf_user_up(v_ueB);
|
---|
288 | f_cf_roam_reg_up(v_gmA, v_ic);
|
---|
289 |
|
---|
290 | // test body
|
---|
291 | // IMS_B is triggered manually to de-register user B // Test Sequence Step 1 manuallz
|
---|
292 |
|
---|
293 | // IMS_B receives a network_originated_deregistration_event // Check1 when manually
|
---|
294 |
|
---|
295 | f_mtc_check_TP_IMS_5093_01_UE_ic(v_ic, v_anyValidUser, false); // check1 then - 1st NOTIFY
|
---|
296 | f_mtc_check_TP_IMS_5093_01_IMS_ic(v_ic, false); // check1 then - 2nd NOTIFY
|
---|
297 |
|
---|
298 | f_mtc_userCheckNoRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 2 - check that user is not registered anymore (de-registration)
|
---|
299 |
|
---|
300 | // postamble
|
---|
301 | f_PO_user_home_deregistration(v_ueB);
|
---|
302 |
|
---|
303 | // unmap/disconnect component ports
|
---|
304 | f_cf_user_down(v_ueB);
|
---|
305 | f_cf_roam_reg_down(v_gmA, v_ic);
|
---|
306 | }
|
---|
307 | /**
|
---|
308 | * @desc IMS network can initiate user re-authentication
|
---|
309 | * @see ETSI TS 186 011-2 V2.3.1 cause 4.5.2.8
|
---|
310 | */
|
---|
311 | testcase TC_IMS_REG_0006() runs on ImsTestCoordinator system IotSystemInterface {
|
---|
312 | // create components
|
---|
313 | var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
|
---|
314 | var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
|
---|
315 | var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
|
---|
316 | var ImsUserInfo v_anyValidUser := f_getAnyValidUser(PX_EUT_B);
|
---|
317 |
|
---|
318 | // map/connect component ports
|
---|
319 | f_cf_adapter_up();
|
---|
320 | f_cf_user_up(v_ueB);
|
---|
321 | f_cf_roam_reg_up(v_gmA, v_ic);
|
---|
322 |
|
---|
323 | // test body
|
---|
324 |
|
---|
325 | //IMS_B receives a network_originated_deregistration_event // Check1 when manually
|
---|
326 |
|
---|
327 | f_mtc_check_TP_IMS_5094_01_UE(v_ic, v_anyValidUser, false); // check1 then - 1st NOTIFY
|
---|
328 | f_mtc_check_TP_IMS_5094_01_IMS(v_ic, false); // check1 then - 2nd NOTIFY
|
---|
329 |
|
---|
330 | f_mtc_userCheckRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 2
|
---|
331 |
|
---|
332 | // postamble
|
---|
333 | f_PO_user_home_deregistration(v_ueB);
|
---|
334 | f_cf_roam_reg_down(v_gmA, v_ic);
|
---|
335 |
|
---|
336 | // unmap/disconnect component ports
|
---|
337 | f_cf_user_down(v_ueB);
|
---|
338 | f_cf_adapter_down();
|
---|
339 | }
|
---|
340 |
|
---|
341 | /**
|
---|
342 | * @desc
|
---|
343 | * First time registration in a visited IMS network with topology hiding.
|
---|
344 | * (ETSI TS 186 011-2 V2.3.1 cause 4.5.2.9)
|
---|
345 | */
|
---|
346 | // @TODO
|
---|
347 | testcase TC_IMS_REG_0007() runs on ImsTestCoordinator system IotSystemInterface {
|
---|
348 | // create components
|
---|
349 | var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
|
---|
350 | var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
|
---|
351 | var ImsInterfaceMonitor v_ic := f_cf_create_monitor(c_ic);
|
---|
352 | var ImsUserInfo v_anyValidUser := f_getAnyValidUser(PX_EUT_B);
|
---|
353 |
|
---|
354 | // map/connect component ports
|
---|
355 | f_cf_adapter_up();
|
---|
356 | f_cf_user_up(v_ueB);
|
---|
357 | f_cf_roam_reg_up(v_gmA, v_ic);
|
---|
358 |
|
---|
359 | // test body
|
---|
360 |
|
---|
361 | f_mtc_userRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 1
|
---|
362 |
|
---|
363 | f_mtc_check_TP_IMS_5134_01_gm(v_gmA, false); // Check1 when
|
---|
364 | f_mtc_check_TP_IMS_5134_01_ic(v_ic, false); // Check1 then
|
---|
365 |
|
---|
366 | f_mtc_check_TP_IMS_5405_01_gm(v_gmA, false); // Check2 when
|
---|
367 | f_mtc_check_TP_IMS_5405_01_ic(v_ic, false); // Check2 then // @TODO mdw_TP_IMS_5405_01_ic needs to be checked
|
---|
368 |
|
---|
369 | f_mtc_userCheckRegistration(v_ueB, v_anyValidUser); // Test Sequence Step 2
|
---|
370 |
|
---|
371 | // postamble
|
---|
372 | f_PO_user_home_deregistration(v_ueB);
|
---|
373 | f_cf_roam_reg_down(v_gmA, v_ic);
|
---|
374 |
|
---|
375 | // unmap/disconnect component ports
|
---|
376 | f_cf_user_down(v_ueB);
|
---|
377 | f_cf_adapter_down();
|
---|
378 | }
|
---|
379 | } |
---|