OneM2M_Testcases_CSE_Release_1.ttcn 447 KB
Newer Older
1 2 3 4 5 6 7 8
/**
 *  Copyright Notification
 *  No part of this document may be reproduced, in an electronic retrieval system or otherwise, except as authorized by written permission.
 *  The copyright and the foregoing restriction extend to reproduction in all media.
 *  © 2016, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TSDSI, TTA, TTC).
 *  All rights reserved.
 *  
 *  @author     ETSI
9 10
 *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/branches/Release1/ttcn/OneM2M_Testcases.ttcn $
 *              $Id: OneM2M_Testcases.ttcn 347 2017-08-11 08:48:20Z reinaortega $
11 12 13
 *  @desc       Module containing test cases for oneM2M
 *
 */
14
module OneM2M_Testcases_CSE_Release_1 {
15 16 17 18 19 20

	import from OneM2M_TestSystem all;
	import from OneM2M_Templates all;
	import from OneM2M_Types all;//{type XSD.ID};
	import from OneM2M_TypesAndValues all;
	import from OneM2M_Pixits all;
21
	import from LibCommon_Time all;
22
	import from OneM2M_Pics all;
23
	import from OneM2M_Functions all;
24
	import from OneM2M_PermutationFunctions all;
25 26
	import from XSD all;
	
27
	
28 29 30
	//Demos used for validation purposes
	group oneM2M_demos {
	
31
		group helpingTestCases {//These are not part of the test suite, just for verification purposes
32
			
33
			testcase TC_DELETE_RESOURCES() runs on AeSimu system CseSystem {
34 35 36
				
				timer t_ac := 5.0;
				var integer i; 
37 38
				var XSD.ID v_resourceAddress;
				var RequestPrimitive v_request;
39 40 41
				map(self:mcaPort, system:mcaPort); 
					
				for (i:=0; i<lengthof(PX_RESOURCES_TO_BE_DELETED); i:= i+1) {  
42 43 44
					
					v_resourceAddress := f_getResourceAddress() & "/" & PX_RESOURCES_TO_BE_DELETED[i]; 
						
45 46
					v_request := valueof(m_delete(v_resourceAddress, PX_SUPER_AE_ID));
					    
47 48
					mcaPort.send(m_request(v_request));
					
49 50
					t_ac.start;
					alt {
51
						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
52
							t_ac.stop;
53
							log(__SCOPE__ & ":Resource deleted");
54 55
							setverdict(pass);
						}
56
						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
57
							t_ac.stop;
58
							log(__SCOPE__ & ":Error while deleting resource");
59 60 61 62
							setverdict(fail);
						}
						[] mcaPort.receive {
							t_ac.stop;
63
							log(__SCOPE__ & ":Unexpected message received");
64 65 66
							setverdict(inconc);
						}
						[] t_ac.timeout {
67
							log(__SCOPE__ & ":No answer while deleting resource");
68 69 70 71 72 73 74 75 76
							setverdict(inconc);
						}	
					}	
				}
			
				unmap(self:mcaPort, system:mcaPort); 
				stop;
			}	
		
77
		}//end group helpingTestCases
78 79 80 81 82
	
	}//end group oneM2M_demos
	
	group CSE {
		
83 84 85 86 87 88 89 90 91
		group Generic {
			
			group Create {
				group g_CSE_GEN_CRE_001 {

					/**
					 * @desc Check that the IUT accepts the creation of a  resource using unstructured resource identifier
					 * 
					 */
92
					testcase TC_CSE_GEN_CRE_001_CSR() runs on Tester system CseSystem {
93 94
						// Local variables
						                        
95 96 97 98
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_CRE_001(e_cseRelative));
						v_ae1.done;
99
					}
100

101
					testcase TC_CSE_GEN_CRE_001_SPR() runs on Tester system CseSystem {
102 103
						// Local variables
						
104 105 106 107
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;

						v_ae1.start(f_CSE_GEN_CRE_001(e_spRelative));
						v_ae1.done;
108
					}
109
					
110
					testcase TC_CSE_GEN_CRE_001_ABS() runs on Tester system CseSystem {
111
						// Local variables
112 113 114 115
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_CRE_001(e_absolute));
						v_ae1.done;
116
					}				
117 118 119 120
				
				} // end of group g_CSE_GEN_CRE_001
				
				group g_CSE_GEN_CRE_002 {
121

122 123 124 125
					/**
					 * @desc Check that the IUT accepts the creation of a  resource using structured resource identifier
					 * 
					 */
126
					testcase TC_CSE_GEN_CRE_002_CSR() runs on Tester system CseSystem {
127 128
						// Local variables
						                        
129 130 131 132
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_CRE_002(e_cseRelative));
						v_ae1.done;
133
					}
134

135
					testcase TC_CSE_GEN_CRE_002_SPR() runs on Tester system CseSystem {
136 137
						// Local variables
						
138 139 140 141
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_CRE_002(e_spRelative));
						v_ae1.done;
142
					}
143
					
144
					testcase TC_CSE_GEN_CRE_002_ABS() runs on Tester system CseSystem {
145 146
						// Local variables
							
147 148 149 150
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_CRE_002(e_absolute));
						v_ae1.done;
151
					}
152
				
153
				} // end of group g_CSE_GEN_CRE_002
154
				
155 156 157 158 159 160 161 162 163
			} // end of group Create
			
			group Retrieve {
				group g_CSE_GEN_RET_001 {

					/**
					 * @desc Check that the IUT accepts the retrieval of a <container>  resource using unstructured resource identifier
					 * 
					 */
164
					testcase TC_CSE_GEN_RET_001_CSR() runs on Tester system CseSystem {
165 166
						// Local variables
						                        
167 168 169 170
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_RET_001(e_cseRelative));
						v_ae1.done;
171
					}
172

173
					testcase TC_CSE_GEN_RET_001_SPR() runs on Tester system CseSystem {
174 175
						// Local variables
						
176 177 178 179
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_RET_001(e_spRelative));
						v_ae1.done;
180
					}
181
					
182
					testcase TC_CSE_GEN_RET_001_ABS() runs on Tester system CseSystem {
183
						// Local variables
184 185 186 187
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_RET_001(e_absolute));
						v_ae1.done;
188 189
					}
								
190
				
191 192 193 194 195 196 197 198
				} // end of group g_CSE_GEN_RET_001
				
				group g_CSE_GEN_RET_002 {

					/**
					 * @desc Check that the IUT accepts the retrieval of a <container>  resource using structured resource identifier
					 * 
					 */
199
					testcase TC_CSE_GEN_RET_002_CSR() runs on Tester system CseSystem {
200
						// Local variables
201 202 203 204
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_RET_002(e_cseRelative));
						v_ae1.done;
205
					}
206

207
					testcase TC_CSE_GEN_RET_002_SPR() runs on Tester system CseSystem {
208 209
						// Local variables
						
210 211 212 213
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_RET_002(e_spRelative));
						v_ae1.done;
214
					}
215
					
216
					testcase TC_CSE_GEN_RET_002_ABS() runs on Tester system CseSystem {
217 218
						// Local variables
							
219 220 221 222
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_RET_002(e_absolute));
						v_ae1.done;
223 224
					}
								
225 226 227
				} // end of group g_CSE_GEN_RET_002
				
			} // end of group Retrieve
228
			
229 230
			group Update {
				group g_CSE_GEN_UPD_001 {
231

232 233 234 235
					/**
					 * @desc Check that the IUT accepts the update of a <container>  resource using unstructured resource identifier
					 * 
					 */
236
					testcase TC_CSE_GEN_UPD_001_CSR() runs on Tester system CseSystem {
237
						// Local variables
238 239 240 241
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_UPD_001(e_cseRelative));
						v_ae1.done;
242
					}
243

244
					testcase TC_CSE_GEN_UPD_001_SPR() runs on Tester system CseSystem {
245
						// Local variables
246 247 248 249
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_UPD_001(e_spRelative));
						v_ae1.done;
250
					}
251
					
252
					testcase TC_CSE_GEN_UPD_001_ABS() runs on Tester system CseSystem {
253 254
						// Local variables
							
255 256 257 258
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_UPD_001(e_absolute));
						v_ae1.done;
259 260
					}
								
261 262 263 264 265 266 267 268
				} // end of group g_CSE_GEN_UPD_001
				
				group g_CSE_GEN_UPD_002 {

					/**
					 * @desc Check that the IUT accepts the update of a <container>  resource using structured resource identifier
					 * 
					 */
269
					testcase TC_CSE_GEN_UPD_002_CSR() runs on Tester system CseSystem {
270 271
						// Local variables
						                        
272 273 274 275
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_UPD_002(e_cseRelative));
						v_ae1.done;
276 277
					}

278
					testcase TC_CSE_GEN_UPD_002_SPR() runs on Tester system CseSystem {
279 280
						// Local variables
						
281 282 283 284
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_UPD_002(e_spRelative));
						v_ae1.done;
285
					}
286
					
287
					testcase TC_CSE_GEN_UPD_002_ABS() runs on Tester system CseSystem {
288
						// Local variables
289
							
290 291 292 293
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_UPD_002(e_absolute));
						v_ae1.done;
294
					}
295 296 297 298
								
				} // end of group g_CSE_GEN_UPD_002
				
			} // end of group Update
299
			
300 301
			group Delete {
				group g_CSE_GEN_DEL_001 {
302

303 304 305 306
					/**
					 * @desc Check that the IUT accepts the deletion of a <container>  resource using unstructured resource identifier
					 *  
					 */
307
					testcase TC_CSE_GEN_DEL_001_CSR() runs on Tester system CseSystem {
308 309
						// Local variables
						                        
310 311 312 313
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_DEL_001(e_cseRelative));
						v_ae1.done;
314 315
					}

316
					testcase TC_CSE_GEN_DEL_001_SPR() runs on Tester system CseSystem {
317 318
						// Local variables
						
319 320 321 322
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_DEL_001(e_spRelative));
						v_ae1.done;
323
					}
324
					
325
					testcase TC_CSE_GEN_DEL_001_ABS() runs on Tester system CseSystem {
326 327
						// Local variables
							
328 329 330 331
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_DEL_001(e_absolute));
						v_ae1.done;
332 333 334 335 336 337 338 339 340 341
					}
								
				} // end of group g_CSE_GEN_DEL_001
				
				group g_CSE_GEN_DEL_002 {

					/**
					 * @desc Check that the IUT accepts the deletion of a <container>  resource using structured resource identifier
					 * 
					 */
342
					testcase TC_CSE_GEN_DEL_002_CSR() runs on Tester system CseSystem {
343 344
						// Local variables
						                        
345 346 347 348
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_DEL_002(e_cseRelative));
						v_ae1.done;
349 350
					}

351
					testcase TC_CSE_GEN_DEL_002_SPR() runs on Tester system CseSystem {
352
						// Local variables
353
						
354 355 356 357
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_DEL_002(e_spRelative));
						v_ae1.done;
358
					}
359
					
360
					testcase TC_CSE_GEN_DEL_002_ABS() runs on Tester system CseSystem {
361 362
						// Local variables
							
363 364 365 366
						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
                        
						v_ae1.start(f_CSE_GEN_DEL_002(e_absolute));
						v_ae1.done;
367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382
					}
								
				} // end of group g_CSE_GEN_DEL_002
				
			} // end of group Delete
		
		} // end of group Generic
		
		group Registration {
			
			group Create{
				
				/**
				 * @desc Check that the IUT accepts an AE registration (allowed App-ID, C-AE-ID-STEM not provided by AE)  
				 * 
				 */
383
				testcase TC_CSE_REG_CRE_001() runs on AeSimu system CseSystem {
384
		  	  	
385
					var MsgIn v_response;
386
					var RequestPrimitive v_request;
387 388 389
					var integer v_cseBaseIndex := -1;
					var ResourceType v_resourceType := int2;
	                
390 391 392 393 394 395
					//Test control
					if(not(PICS_IN_CSE)) {
						setverdict(inconc, __SCOPE__ & ": IUT shall be IN-CSE to run this test case");
						stop;
					}
	                
396 397
					// Test component configuration
					f_cf01Up();
398 399
	                
					//Preamble
400

401
					//Test Body
402
					v_request := valueof(m_createAe(PX_APP_ID, omit, "S-AE-ID-STEM"));	
403
					
404
					v_request := f_getCreateRequestPrimitive(v_resourceType, v_request, -1);
405
					
406
					mcaPort.send(m_request(v_request));
407
					
408 409
					tc_ac.start;
					alt {
410
						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response {
411
							tc_ac.stop;
412 413 414
							f_checkAttributesToBeSaved(int2, v_request, v_response.primitive.responsePrimitive);
							vc_aeAuxIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int2);
							
415
							setverdict(pass, __SCOPE__ & ": AE successfully created.");
416
						}
417
						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value v_response{
418
							tc_ac.stop;
419
							setverdict(fail, __SCOPE__ & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode)));
420 421
						}
						[] tc_ac.timeout {
422
							setverdict(fail, __SCOPE__ & ": No answer while creating AE");
423 424
						}
					}	
425
									
426
					// Postamble
427 428 429 430
					f_cse_postamble_deleteResources();
					
					// Tear down
					f_cf01Down();
431 432
						
				}
433 434 435 436 437
		  	  	
				/**
				 * @desc Check that the IUT sends a registration CREATE Request with the value of the attribute ATTRIBUTE_NAME  of the AE resource
				 * 
				 */
438
				testcase TC_CSE_REG_CRE_002() runs on AeSimu system CseSystem {
439
		  	  	
440
					var MsgIn v_response;
441
					var RequestPrimitive v_request;
442 443
					var integer v_cseBaseIndex := -1;
					var ResourceType v_resourceType := int2;
444 445
					
					//Test control
446
	                
447 448
					// Test component configuration
					f_cf01Up();
449 450
		  	  	
					//Preambule
451
					
452 453 454
					//Test Body
					v_request := valueof(m_createAe(PX_APP_ID, omit, "C-AE-ID-STEM"));				
	    									
455
					v_request := f_getCreateRequestPrimitive(v_resourceType, v_request, -1);
456
	
457 458 459
					mcaPort.send(m_request(v_request));
					tc_ac.start;
					alt {
460
						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response{
461
							tc_ac.stop;
462 463 464
							
							f_checkAttributesToBeSaved(int2, v_request, v_response.primitive.responsePrimitive);
							vc_aeAuxIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int2);
465
							setverdict(pass, __SCOPE__ & ": AE successfully created.");
466
						}
467
						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value v_response{
468
							tc_ac.stop;
469
							setverdict(fail, __SCOPE__ & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode)));
470 471
						}
						[] tc_ac.timeout {
472
							setverdict(fail, __SCOPE__ & ": No answer while creating AE");
473 474
						}
					}	
475
									
476
					// Postamble
477 478 479 480
					f_cse_postamble_deleteResources();
					
					// Tear down
					f_cf01Down();
481
						
482
				}
483 484

				/**
485 486 487 488 489 490 491 492
				 * @desc Check that the IUT accepts a create request of <AE> resource with attributes multiplicity equals to 1 and provided preprovisioned SP_relative_AE_ID. 
				 */
				
				testcase TC_CSE_REG_CRE_003() runs on CseSimu system CseSystem{
					
					var integer v_remoteCseIndex := -1;
					
					//Test Configuration
493
					//f_cf02Up();
494 495 496
					
					//Preamble
					v_remoteCseIndex := f_cse_registrationRemoteCse();
497
					vc_ae1 := AeSimu.create("AE1") alive;
498
					vc_ae1.start(f_cse_preamble_registerAe());
499 500
					
				
501
				}
502 503 504 505 506
		  	  	
				/**
				 * @desc Check that the IUT rejects an AE registration (allowed App-ID, not allowed C-AE-ID-STEM provided by AE) 
				 * 
				 */
507
				testcase TC_CSE_REG_CRE_004() runs on AeSimu system CseSystem {
508
		  	  	
509
					var MsgIn v_response;
510
					var RequestPrimitive v_request;
511 512
					var integer v_cseBaseIndex := -1;
					var ResourceType v_resourceType := int2;
513 514
					
					//Test control
515
	                
516
					// Test component configuration
517
					f_cf01Up();
518 519
		  	  	
					//Preambule
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
520
					//vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE);
521
					//TODO: create serviceSubscribedProfile, Node, and serviceSubscribedAppRule
522
					//v_cseBaseIndex := f_cse_preamble_createServiceSubscribedProfile({"C*"}); //c_CRUDNDi);
523
					
524
					//Test Body	
525
					//v_request := valueof(m_createAe(PX_APP_ID, omit, "C-AE-ID-STEM"));				
526
	    											
527
					v_request := f_getCreateRequestPrimitive(int2, m_createAe(PX_APP_ID, omit, PX_NOT_ALLOWED_C_AE_IDS[0]), -1);
528
			
529
					mcaPort.send(m_request(v_request));
530 531
					tc_ac.start;
					alt {
532
						[] mcaPort.receive(mw_response(mw_responsePrimitive(int4005))) {
533
							tc_ac.stop;
534
							setverdict(pass, __SCOPE__ & ": AE creation rejected.");
535
						}
536
						[] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4005))) -> value v_response{
537
							tc_ac.stop;
538
							setverdict(fail, __SCOPE__ & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode)));
539 540
						}
						[] tc_ac.timeout {
541
							setverdict(fail, __SCOPE__ & ": No answer while creating AE");
542
						}
543
					}
544
									
545
					// Postamble
546
					f_cse_postamble_deleteResources();
547
						
548
					// Tear down
549
					f_cf01Down();
550 551
						
				}
552 553 554 555 556
		  	  	
				/**
				 * @desc Check that the IUT accepts an AE registration (allowed App-ID, S-AE-ID-STEM not provided by AE) 
				 * 
				 */
557
				testcase TC_CSE_REG_CRE_005() runs on InCseSimu system CseSystem {
558
		  	  	
559
					var RequestPrimitive v_request;
560 561
					var integer v_cseBaseIndex := -1;
					var ResourceType v_resourceType := int2;
562 563
					
					//Test control
564
	                
565
					// Test component configuration
566
					f_cf02UpCseSimuMaster();
567 568
		  	  	
					//Preambule
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
569
					vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE);
570 571
		
					//Test Body
572
					vc_ae1.start(f_cse_createResource(int2, m_createAe(PX_APP_ID, -, "S", omit)));				
573
	    									
574 575
					tc_ac.start;
					alt{
576
						[]mccPortIn.receive(mw_request(mw_createAEAnnc(f_getResourceAddress(-1,e_hierarchical, e_spRelative) & "/S", "CSE_ID", -))){
577 578 579
							tc_ac.stop;
							setverdict(pass, __SCOPE__ & ": AE creation redirected.");
						}
580
						[]mccPortIn.receive(mw_request(mw_createAEAnnc(f_getResourceAddress(-1,e_hierarchical, e_absolute) & "/S", "CSE_ID", -))){
581 582 583
							tc_ac.stop;
							setverdict(pass, __SCOPE__ & ": AE creation redirected.");
						}
584
						[] mccPortIn.receive {
585 586 587 588 589 590 591
							tc_ac.stop;
							setverdict(fail, __SCOPE__ & ": Error while creating AE");
						}
						[] tc_ac.timeout {
							setverdict(fail, __SCOPE__ & ": No answer while creating AE");
						}
					}
592
					
593 594
					/*vc_cse1.start(f_cse_receiveCreateRequest(mw_createAEAnnc(-, -, -)));
					vc_cse1.done;*/
595
													
596
					// Postamble
597
					f_cse_postamble_deleteResourcesCSE();
598 599
					
					// Tear down
600
					f_cf02DownCseSimuMaster();
601 602
						
				}
603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714
				
				/**
				 * @desc Check that the IUT accepts a create request of <AE> resource with attributes multiplicity equals to 1 and provided character ‘S’ in AE_ID_Stem ask for a SP_relative_AE_ID 
				 * 
				 */
				testcase TC_CSE_REG_CRE_006() runs on InCseSimu system CseSystem {

					var RequestPrimitive v_request;
					var integer v_cseBaseIndex := -1;
					var ResourceType v_resourceType := int2;
	
					//Test control
					if(not(PICS_MN_CSE or PICS_ASN_CSE)) {
						setverdict(inconc, __SCOPE__ & ": IUT shall be MN-CSE or ASN-CSE to run this test case");
						stop;
					}
    
					// Test component configuration
					f_cf02UpCseSimuMaster();

					//Preambule
					vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE);
					
					//Test Body
					vc_ae1.start(f_cse_createResource(int2, m_createAe(PX_APP_ID, omit, "S")));
					vc_ae1.done;
							
					tc_ac.start;

					alt {
						[] mccPortIn.receive(mw_request(mw_createAEAnnc(PX_CSE_ID, f_getLocalResourceAddress(vc_cSEBaseIndex), -, "S"))) {
							tc_ac.stop;
							setverdict(pass, __SCOPE__ & ": AE creation redirected.");
						}
						[] mccPortIn.receive {
							tc_ac.stop;
							setverdict(fail, __SCOPE__ & ": Error while creating AE");
						}
						[] tc_ac.timeout {
							setverdict(fail, __SCOPE__ & ": No answer while creating AE");
						}
					}	
					
					// Postamble
					f_cse_postamble_deleteResourcesCSE();
	
					// Tear down
					f_cf02DownCseSimuMaster();
		
				}	// end of TC_CSE_REG_CRE_006
				
				/**
				 * @desc Check that the IUT accepts a create request of <AE> resource with attributes multiplicity equals to 1 and provided character ‘S’ in AE_ID_Stem ask for a SP_relative_AE_ID 
				 * 
				 */
				testcase TC_CSE_REG_CRE_007() runs on AeSimu system CseSystem{

					var MsgIn v_response;
					var RequestPrimitive v_request;
					var integer v_aeIndex := -1;
					
					//Test control
					if(not(PICS_MN_CSE)) {
						setverdict(inconc, __SCOPE__ & ": IUT shall be MN-CSE to run this test case");
						stop;
					}
					
					// Test component configuration
					f_cf02Up();
					
					//Preambule
					vc_cse1.start(f_cse_registrationRemoteCse(mw_createRemoteCSE));
					vc_cse1.done;
					
					v_aeIndex := f_cse_createResource(int2, m_createAe(PX_APP_ID, omit, "S"));
					
					vc_cse1.start(f_cse_resourceAnnouncementHandler());
					vc_cse1.done;
					
					//Test Body
					tc_ac.start;
					
					alt {
						[] mcaPortIn.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response {
							tc_ac.stop;
							//continue to test the content
							if (ischosen(v_response.primitive.responsePrimitive.primitiveContent.aE)){
								if (v_response.primitive.responsePrimitive.primitiveContent.aE.aE_ID == PX_APP_ID){
									setverdict(pass, __SCOPE__ & ": AE creation success.");
								}else{
									setverdict(fail, __SCOPE__ & ": Error in AE content.");
								}
							}else{
								setverdict(fail, __SCOPE__ & ": primitiveContent doesn't exist");
							}
						}
						[] mcaPortIn.receive {
							tc_ac.stop;
							setverdict(fail, __SCOPE__ & ": Error while creating AE");
						}
						[] tc_ac.timeout {
							setverdict(fail, __SCOPE__ & ": No answer while creating AE");
						}
					}	
									
					// Postamble
					f_cse_postamble_deleteResources();
					
					// Tear down
					f_cf02Down();

				}	// end of TC_CSE_REG_CRE_007
715

716 717 718 719
				/**
				 * @desc Check that the IUT accepts an AE re-registration (allowed M2M-SP-assigned AE-ID, S-AE-ID-STEM provided by AE), transfer request to the IN-CSE 
				 * 
				 */
720
				testcase TC_CSE_REG_CRE_008() runs on InCseSimu system CseSystem {
721
		  	  	
722
					var RequestPrimitive v_request;
723 724
					var integer v_cseBaseIndex := -1;
					var ResourceType v_resourceType := int2;
725 726 727 728 729 730
					
					//Test control
					if(not(PICS_MN_CSE)) {
						setverdict(inconc, __SCOPE__ & ": IUT shall be MN-CSE to run this test case");
						stop;
					}
731
	                
732
					// Test component configuration
733
					f_cf02UpCseSimuMaster();
734 735
		  	  	
					//Preambule
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
736
					vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE);
737
					vc_ae1.start(f_cse_createResource(int2, m_createAe(PX_APP_ID, omit, "S")));
738
					
739 740
					vc_ae1.done;
					
741 742 743 744
					//TODO:
					//v_request := valueof(m_delete(f_getResourceAddress(v_aeIndex), f_getOriginator(v_aeIndex)));
					//mcaPort.send(m_request(v_request));
					
745
					//Test Body
746
					vc_ae1.start(f_cse_createResource(int2, m_createAe(PX_APP_ID, omit, "S")));
747
											
748
					tc_ac.start;
749
	
750
					alt {
751
						[] mccPortIn.receive(mw_request(mw_createAEAnnc(f_getResourceAddress(-1,e_hierarchical, e_spRelative) & "/S", "CSE_ID", -))) {
752 753 754
							tc_ac.stop;
							setverdict(pass, __SCOPE__ & ": AE creation redirected.");
						}
755
						[] mccPortIn.receive(mw_request(mw_createAEAnnc(f_getResourceAddress(-1,e_hierarchical, e_absolute) & "/S", "CSE_ID", -))) {
756
							tc_ac.stop;
757
							setverdict(pass, __SCOPE__ & ": AE creation redirected.");
758
						}
759
						[] mccPortIn.receive {
760
							tc_ac.stop;
761
							setverdict(fail, __SCOPE__ & ": Error while creating AE");
762 763
						}
						[] tc_ac.timeout {
764
							setverdict(fail, __SCOPE__ & ": No answer while creating AE");
765 766
						}
					}	
767
									
768
					// Postamble
769
					f_cse_postamble_deleteResourcesCSE();
770 771
					
					// Tear down
772
					f_cf02DownCseSimuMaster();
773 774
						
				}
775 776 777 778 779
		  	  	
				/**
				 * @desc Check that the IUT accepts an AE re-registration (allowed M2M-SP-assigned AE-ID, S-AE-ID-STEM provided by AE), communication between MN-CSE and IN-CSE
				 *  
				 */
780
				testcase TC_CSE_REG_CRE_009() runs on MnCseSimu system CseSystem {
781
		  	  	
782
					var MsgIn v_response;
783
					var RequestPrimitive v_request;
784 785
					var integer v_aeAnncIndex := -1;
					var ResourceType v_resourceType := int2;
786 787 788 789 790 791
					
					//Test control
					if(not(PICS_IN_CSE)) {
						setverdict(inconc, __SCOPE__ & ": IUT shall be MN-CSE to run this test case");
						stop;
					}
792
	                
793
					// Test component configuration
794
					f_cf04Up();
795 796
		  	  	
					//Preambule
797 798 799
					
					vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase);
									
800
					v_aeAnncIndex := f_cse_announceResource(int2, m_createAEAnnc(-, "/" & "SAE1", PX_APP_ID, PX_CSE1_ID & "/" & "SAE1"));
801
					
802
					//Test Body
803
					v_request := valueof(m_updateAEAnnc(-, -, -, PX_APP_ID, -));	//TODO to double check all parameters			
804
	    									
805
					v_request := f_getUpdateRequestPrimitive(f_getAnnouncedResourceType(int2),v_aeAnncIndex, v_request);//TODO 
806
					v_request.from_ := f_getResourceAddress(-1,e_hierarchical, e_absolute) & "/S"; 
807 808
					v_request.primitiveContent.aEAnnc.app_ID := PX_APP_ID;
					v_request.primitiveContent.aEAnnc.labels := {"Credential-ID:None"};
809 810
		  	  		
					mccPort.send(m_request(v_request));
811
					tc_ac.start;
812
	
813
					alt {
814
						[] mccPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response {
815
							tc_ac.stop;
816 817
							setverdict(pass, __SCOPE__ & ": AE creation redirected.");
							//continue to test the content
818
						}
819
						[] mccPort.receive {
820
							tc_ac.stop;
821
							setverdict(fail, __SCOPE__ & ": Error while creating AE");
822 823
						}
						[] tc_ac.timeout {
824
							setverdict(fail, __SCOPE__ & ": No answer while creating AE");
825 826
						}
					}	
827 828 829
									
					//v_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);	
									
830
					// Postamble
831
					f_cse_postamble_deleteResourcesCSE();
832 833
					
					// Tear down
834
					f_cf04Down();
835
						
836
				}
837 838


839 840 841 842
				/**
				 * @desc Check that the IUT accepts an AE re-registration (allowed M2M-SP-assigned AE-ID, S-AE-ID-STEM provided by AE), transfer response to the AE
				 * 
				 */
843
				testcase TC_CSE_REG_CRE_010() runs on AeSimu system CseSystem {
844 845
		  	  	
					var MsgIn v_response;