diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index dfe81eb5e508d8ca8f473d61f054bbf0b3c03351..ad20f405961e7af9f5863bd6136e630027bbcb2a 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -74,7 +74,7 @@ module OneM2M_Functions { /** * @desc Ports mapping and default behaviour activation for Config 02 */ - function f_cf02Up() runs on AeSimu { + function f_cf02Up(in CseTypeID p_cseType := int2) runs on AeSimu { // Variables vc_config := e_cf02; @@ -101,12 +101,13 @@ module OneM2M_Functions { /** @desc Ports mapping and default behaviour activation for Config 2 on the CSE1 */ - function f_cf02UpCse1() runs on CseSimu { + function f_cf02UpCse1(in CseTypeID p_cseType := int2) runs on CseSimu { // Variables var PrimitiveContent v_cSEBaseResource; vc_config := e_cf02; vc_testSystemRole := e_cse; + vc_cseType := p_cseType; // Map map(self:mccPort, system:mccPort); @@ -123,12 +124,13 @@ module OneM2M_Functions { /** * @desc Ports mapping and default behaviour activation for Config 02 */ - function f_cf02UpCseSimuMaster() runs on CseSimu { + function f_cf02UpCseSimuMaster(in CseTypeID p_cseType := int2) runs on CseSimu { // Variables var PrimitiveContent v_cSEBaseResource; vc_config := e_cf02CseSimuMaster; - vc_testSystemRole := e_cse; + vc_testSystemRole := e_cse; + vc_cseType := p_cseType; vc_ae1 := AeSimu.create("AE1") alive; //Initialization of local CSEBase @@ -153,11 +155,11 @@ module OneM2M_Functions { /** @desc Ports mapping and default behaviour activation for Config 2 on the AE1 */ - function f_cf02UpAe1() runs on AeSimu { + function f_cf02UpAe1(in CseTypeID p_cseType := int2) runs on AeSimu { // Variables vc_config := e_cf02CseSimuMaster; - vc_testSystemRole := e_ae; + vc_testSystemRole := e_ae; // Map map(self:mcaPort, system:mcaPort); @@ -171,12 +173,13 @@ module OneM2M_Functions { /** * @desc Ports mapping and default behaviour activation for Config 03 */ - function f_cf03Up() runs on CseSimu { + function f_cf03Up(in CseTypeID p_cseType := int2) runs on CseSimu { // Variables var PrimitiveContent v_cSEBaseResource; vc_config := e_cf03; - vc_testSystemRole := e_cse; + vc_testSystemRole := e_cse; + vc_cseType := p_cseType; //Creation of CSEBase v_cSEBaseResource := f_cse_generateLocalResource(-, -1, int5); @@ -200,13 +203,13 @@ module OneM2M_Functions { /** * @desc Ports mapping and default behaviour activation for Config 04 */ - function f_cf04Up() runs on CseSimu { + function f_cf04Up(in CseTypeID p_cseType := int2) runs on CseSimu { // Variables var PrimitiveContent v_cSEBaseResource; vc_config := e_cf04; vc_testSystemRole := e_cse; - + vc_cseType := p_cseType; //Creation of CSEBase v_cSEBaseResource := f_cse_generateLocalResource(-, -1, int5); vc_cSEBaseIndex := f_setLocalResource(v_cSEBaseResource, int5, -1); @@ -359,6 +362,28 @@ module OneM2M_Functions { return v_request; } + + /** + * @desc Getting last resourceIndex saved in the vc_resourcesList + * @param p_tester Given component + */ + function f_getLatestResourceIndex(in Tester p_component) runs on Tester return integer { + var integer v_resourceIndex; + + f_connectInfoPort(p_component); + + p_component.start(f_sendLatestResourceIndex()); + alt { + []infoPort.receive(mw_resourceIndex) -> value v_resourceIndex{ + } + } + + p_component.done; + f_disconnectInfoPort(p_component); + + return v_resourceIndex; + + } /** * @desc Getting primitiveContent retrieved in an AeSimu component @@ -449,6 +474,15 @@ module OneM2M_Functions { } + /** + * @desc Sending of last resourceIndex saved in the vc_resourcesList + */ + function f_sendLatestResourceIndex() runs on Tester { + + infoPort.send(lengthof(vc_resourcesList)-1); + + } + /** * @desc Sending of last primitiveContent retrieved (vc_primitiveContentRetrievedResource) through InfoPort */ @@ -483,14 +517,18 @@ module OneM2M_Functions { function f_sendResource(in integer p_resourceIndex) runs on Tester { if(p_resourceIndex == -1) { - infoPort.send(vc_resourcesList[vc_aeAuxIndex]); //TODO To send Ae or RemoteCSE depending on the component type + if(vc_testSystemRole == e_ae) { + infoPort.send(vc_resourcesList[vc_aeAuxIndex]); + }else if(vc_testSystemRole == e_cse) { + infoPort.send(vc_resourcesList[vc_remoteCseIndex]); + } } else { infoPort.send(vc_resourcesList[p_resourceIndex]); } } - }// end of gropu InfoPortCommunication + }// end of group InfoPortCommunication group CseFunctions { @@ -763,7 +801,7 @@ module OneM2M_Functions { if(p_ae.running) { p_ae.stop; } - p_ae.start(f_cse_postamble_deleteResources()); + p_ae.start(f_cse_postamble_deleteResources()); p_ae.done; } @@ -801,7 +839,7 @@ module OneM2M_Functions { var RequestPrimitive v_request; if (PX_RUN_POSTAMBLE) { - + if(vc_config == e_cf02CseSimuMaster) { if(vc_ae1.alive) { f_cse_postamble_ae1(); @@ -892,7 +930,7 @@ module OneM2M_Functions { return v_resourceIndex; } - + /** * @desc Creation of a resource * @param p_resourceType Resource type of the resource to be created @@ -995,12 +1033,21 @@ module OneM2M_Functions { /** * @desc Message exchange for the update of a resource + * @param p_resourceType Resource type of the resource to be created * @param p_requestPrimitive UPDATE request primitive to be used + * @param p_resourceIndex Internal resource index which indicates the resource to be updated * @verdict */ - function f_cse_updateResource(in RequestPrimitive p_requestPrimitive) runs on AeSimu { - - mcaPort.send(m_request(p_requestPrimitive)); + function f_cse_updateResource(in ResourceType p_resourceType, integer p_resourceIndex, template RequestPrimitive p_request, template (omit) AttributeAux_list p_nullFields := omit) runs on AeSimu { + + var RequestPrimitive v_request; + + //Activate defaults when running on a PTC + f_cse_activateDefaults_ae(); + + v_request := f_getUpdateRequestPrimitive(p_resourceType, p_resourceIndex, p_request); + + mcaPort.send(m_request(v_request, p_nullFields)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { @@ -1269,6 +1316,13 @@ module OneM2M_Functions { log(__SCOPE__ & ":INFO: resourceName not returned. Using the one provided in the request: " & p_request.primitiveContent.group_.resourceName) } } + case (int29) { + if (isvalue(p_response.primitiveContent.timeSeries) and + not(ispresent(p_response.primitiveContent.timeSeries.resourceName))) { + p_response.primitiveContent.timeSeries.resourceName := p_request.primitiveContent.timeSeries.resourceName; + log(__SCOPE__ & ":INFO: resourceName not returned. Using the one provided in the request: " & p_request.primitiveContent.timeSeries.resourceName) + } + } case else { log(__SCOPE__&":WARNING: Resource Type "&int2str(enum2int(p_resourceType))&" not implemented"); } @@ -1314,24 +1368,69 @@ module OneM2M_Functions { return v_matchResult; } //end f_compareURIs - + /** - * @desc Sending a request primitive on mcaPort on AeSimu + * @desc Sending of a request primitive over mca port * @param p_resourceType Resource type of the resource to be created * @param p_requestPrimitive CREATE request primitive for the resource to be created * @param p_parentIndex Internal resource index which indicates the parent of the resource to be created * @return Internal resource index of the created resource * @verdict */ - function f_cse_sendCreateRequestPrimitive(in ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive := m_create, integer p_parentIndex := -1) runs on AeSimu{ - + function f_cse_sendCreateRequestPrimitive(in ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive := m_create, integer p_parentIndex := -1) runs on AeSimu { + var RequestPrimitive v_request; var integer v_resourceIndex := -1; - + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, p_parentIndex); - + mcaPort.send(m_request(v_request)); + + } + + /** + * @desc Sending of a request primitive over mca port + * @param p_resourceType Resource type of the resource to be created + * @param p_requestPrimitive UPDATE request primitive for the resource to be created + * @param p_parentIndex Internal resource index which indicates the parent of the resource to be created + * @return Internal resource index of the created resource + * @verdict + */ + function f_cse_sendUpdateRequestPrimitive(in ResourceType p_resourceType, template RequestPrimitive p_requestUpdatePrimitive := m_update, integer p_parentIndex := -1) runs on AeSimu { + + var RequestPrimitive v_request; + var integer v_resourceIndex := -1; + + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); + mcaPort.send(m_request(v_request)); + + } + + function f_cse_generateMissingDataPoint(in integer p_timeSeriesResourceIndex) runs on AeSimu{ + + var RequestPrimitive v_request; + var integer v_resourceIndex := -1; + var integer i; + var XSD.NonNegativeInteger v_periodicInterval := vc_resourcesList[p_timeSeriesResourceIndex].resource.timeSeries.periodicInterval; + var XSD.NonNegativeInteger v_missingDataDetectTimer := vc_resourcesList[p_timeSeriesResourceIndex].resource.timeSeries.missingDataDetectTimer; + timer t_noAction; + + //Activate defaults when running on a PTC + f_cse_activateDefaults_ae(); + i := 0; + while (i < 3) { + v_request := f_getCreateRequestPrimitive(int30, m_createTimeSeriesInstanceBase, p_timeSeriesResourceIndex); + v_request.primitiveContent.timeSeriesInstance.resourceName := "MyTimeSeriesInstance" & int2str(i); + + v_resourceIndex := f_cse_createResource(int30, v_request, p_timeSeriesResourceIndex); + i := i + 1; + t_noAction.start(int2float(v_periodicInterval)); + } + + //After missingDataTimerDetect, a missing data point should have been detected + t_noAction.start(int2float(v_missingDataDetectTimer)); + } }//end group AeSimu @@ -1621,6 +1720,42 @@ module OneM2M_Functions { } //end f_cse_notifyProcedure_noNotification Handler + /** + * @desc Message exchange for notification + * @param p_requestPrimitive Notify request to be used for the notification + * @verdict + */ + function f_cse_notifyProcedure_notify(template RequestPrimitive p_requestPrimitive) runs on CseSimu { + // Local variables + var RequestPrimitive v_request; + var ResponsePrimitive v_responsePrimitive; + var integer v_resourceIndex := -1; + + v_request.from_ := PX_CSE1_ID; + + mccPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mccPort.receive(mw_response(mw_responsePrimitive(int2000, mw_primitiveContentNotification(mw_contentNotification_any)))) -> value vc_response { + tc_ac.stop; + } + [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(inconc, __SCOPE__&":INFO: Error while performing notification"); + } + [] mccPort.receive { + tc_ac.stop; + setverdict(inconc, __SCOPE__&":INFO: Unexpected message received"); + } + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__&":INFO: No answer while performing notification"); + } + } + + f_checkCseSimuStatus(); + + } //end f_cse_notifyProcedure_notify + /** * @desc Checking of notification primitiveContent * @param p_requestPrimitive Received Notification request @@ -1672,6 +1807,15 @@ module OneM2M_Functions { v_matchResult := match(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.responsePrimitive.primitiveContent.container, p_primitiveContent.container) } } + + if (ischosen(p_primitiveContent.timeSeries)){ + if(isvalue(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.resource.timeSeries)) { + v_matchResult := match(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.resource.timeSeries, p_primitiveContent.timeSeries) + } + else if(isvalue(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.responsePrimitive.primitiveContent.timeSeries)) { + v_matchResult := match(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.responsePrimitive.primitiveContent.timeSeries, p_primitiveContent.timeSeries) + } + } return v_matchResult; @@ -1688,7 +1832,7 @@ module OneM2M_Functions { * @verdict */ //TODO To finalize this function - function f_cse_announcementProcedure_createHandler(template RequestPrimitive p_requestprimitive := ?) runs on CseSimu { + function f_cse_announcementProcedure_createHandler(template RequestPrimitive p_requestprimitive := ?, in ResponseStatusCode p_responseStatusCode := int2001, template(omit) integer p_expectedResourceIndex := omit) runs on CseSimu { // Local variables var MsgIn v_request; var integer v_parentIndex := vc_localRemoteCseIndex; @@ -1707,11 +1851,27 @@ module OneM2M_Functions { //TODO Save resource and generate required attributes v_announcedResource:= f_cse_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, v_parentIndex,v_request.primitive.requestPrimitive.resourceType); v_announcedResourceIndex := f_setLocalResource(v_announcedResource, v_request.primitive.requestPrimitive.resourceType, v_parentIndex); - - v_responsePrimitive := valueof(m_responsePrimitive(int2001,v_request.primitive.requestPrimitive.requestIdentifier)); + + if(isvalue(p_expectedResourceIndex)){ + if(p_expectedResourceIndex == f_getResourceIndex(v_request.primitive.requestPrimitive.to_)){ + setverdict(pass, __SCOPE__ & ":INFO: Announcement Parent Resource Address matched"); + v_responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.primitiveContent := vc_localResourcesList[p_expectedResourceIndex].resource; + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Announcement Parent Resource Address not matched"); + v_responsePrimitive := valueof(m_responsePrimitive(int4000,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.primitiveContent := omit; + } + } else { + v_responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode,v_request.primitive.requestPrimitive.requestIdentifier)); + if(p_responseStatusCode == int2001) { + v_responsePrimitive.primitiveContent := vc_localResourcesList[v_announcedResourceIndex].resource; + } else { + v_responsePrimitive.primitiveContent := omit; + } + } v_responsePrimitive.from_ := PX_CSE1_ID; v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; - v_responsePrimitive.primitiveContent := vc_localResourcesList[v_announcedResourceIndex].resource; mccPortIn.send(m_response(v_responsePrimitive)); } [] tc_ac.timeout { @@ -1721,7 +1881,7 @@ module OneM2M_Functions { f_checkCseSimuStatus(); - } //end f_cse_resourceAnnouncementHandler + } //end f_cse_announcementProcedure_createHandler /** * @desc Message exchange for the announcement of resources @@ -1764,7 +1924,7 @@ module OneM2M_Functions { return v_resourceIndex; - } //end f_cse_announceResource + } //end f_cse_announcementProcedure_announceResource /** * @desc Handling message exchange for the AE Annc update @@ -1809,6 +1969,52 @@ module OneM2M_Functions { } //end f_cse_notifyProcedure_updateHandler + /** + * @desc Handling of announcement of resources + * @param p_from Expected originator of the request primitive + * @param p_to Expected receiver of the request primitive + * @verdict + */ + //TODO To finalize this function + function f_cse_announcementProcedure_deleteHandler() runs on CseSimu { + // Local variables + var ResponsePrimitive v_responsePrimitive; + var template Notification v_notificationRequest := mw_contentNotification_any; + + //Activate defaults when running on a PTC + f_cse_activateDefaults_cse1(); + + //Preparation of Notification response to be sent + v_responsePrimitive := valueof(m_responseNotification(int2002, omit)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(mw_notifyNotification(v_notificationRequest))) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Notification received"); + //TODO Delete the resource of the local list + } + [] mccPortIn.receive{ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ":ERROR: unexpected message received"); + stop; + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No notification received"); + stop; + } + } + + v_responsePrimitive.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier; + if(getverdict == pass) { + mccPortIn.send(m_httpResponse(v_responsePrimitive)); + } else { + v_responsePrimitive.responseStatusCode := int4000; + mccPortIn.send(m_httpResponse(v_responsePrimitive)); + } + + } //end f_cse_announcementProcedure_deleteHandler + }//end of group AnnouncementFunctions /** @@ -1844,7 +2050,7 @@ module OneM2M_Functions { } return false; } - + /** * @desc Check that a resource is not present in the IUT (resourceId is NOT known) * @param p_parentIndex Index of the parent resource of the resource to be checked @@ -2047,11 +2253,7 @@ module OneM2M_Functions { v_myResource.cSEBase.cSE_ID := PX_CSE1_ID; v_myResource.cSEBase.supportedResourceType := PX_CSE1_SRT; v_myResource.cSEBase.pointOfAccess := {f_getAnnouncementTargetPoA(PX_PROTOCOL_BINDING, PX_CSE1_ADDRESS, "")}; - if (PX_MN_CSE){ - v_myResource.cSEBase.cseType := int1; //Tester is an IN-CSE - }else if (PX_IN_CSE){ - v_myResource.cSEBase.cseType := int2; //Tester is a MN-CSE - } + v_myResource.cSEBase.cseType := vc_cseType; }else if(p_resourceType == int16 and ispresent(p_resource)) { //RemoteCSE if(ischosen(p_resource.remoteCSE)){ @@ -2086,32 +2288,65 @@ module OneM2M_Functions { } } else if (p_resourceType == int10002 and ispresent (p_resource)) { //AE Annc if(ischosen(p_resource.aEAnnc)) { - v_myResource.aEAnnc := valueof(p_resource.aEAnnc); + v_myResource.aEAnnc := valueof(p_resource.aEAnnc); + + + v_myResource.aEAnnc.resourceName := "aEAnnc" & int2str(v_resourceIndex); + v_myResource.aEAnnc.resourceType := p_resourceType; + v_myResource.aEAnnc.resourceID := f_resourceIdCleaner(v_myResource.aEAnnc.aE_ID); + v_myResource.aEAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); + v_myResource.aEAnnc.creationTime := fx_generateTimestamp(); + v_myResource.aEAnnc.lastModifiedTime := v_myResource.aEAnnc.creationTime; } } else if (p_resourceType == int10001 and ispresent (p_resource)) { //Acp Annc if(ischosen(p_resource.accessControlPolicyAnnc)) { - v_myResource.accessControlPolicyAnnc := valueof(p_resource.accessControlPolicyAnnc); + v_myResource.accessControlPolicyAnnc := valueof(p_resource.accessControlPolicyAnnc); + + v_myResource.accessControlPolicyAnnc.resourceName := "accessControlPolicyAnnc" & int2str(v_resourceIndex); + v_myResource.accessControlPolicyAnnc.resourceType := p_resourceType; + v_myResource.accessControlPolicyAnnc.resourceID := f_resourceIdCleaner(v_myResource.accessControlPolicyAnnc.resourceID); + v_myResource.accessControlPolicyAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); + v_myResource.accessControlPolicyAnnc.creationTime := fx_generateTimestamp(); + v_myResource.accessControlPolicyAnnc.lastModifiedTime := v_myResource.accessControlPolicyAnnc.creationTime; } } else if (p_resourceType == int10003 and ispresent (p_resource)) { //Container Annc if(ischosen(p_resource.containerAnnc)) { v_myResource.containerAnnc := valueof(p_resource.containerAnnc); + + v_myResource.containerAnnc.resourceName := "containerAnnc" & int2str(v_resourceIndex); + v_myResource.containerAnnc.resourceType := p_resourceType; + v_myResource.containerAnnc.resourceID := f_resourceIdCleaner(v_myResource.containerAnnc.resourceID); + v_myResource.containerAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); + v_myResource.containerAnnc.creationTime := fx_generateTimestamp(); + v_myResource.containerAnnc.lastModifiedTime := v_myResource.containerAnnc.creationTime; } } else if (p_resourceType == int10009 and ispresent (p_resource)) { //Group Annc if(ischosen(p_resource.groupAnnc)) { v_myResource.groupAnnc := valueof(p_resource.groupAnnc); + + v_myResource.groupAnnc.resourceName := "groupAnnc" & int2str(v_resourceIndex); + v_myResource.groupAnnc.resourceType := p_resourceType; + v_myResource.groupAnnc.resourceID := f_resourceIdCleaner(v_myResource.groupAnnc.resourceID); + v_myResource.groupAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); + v_myResource.groupAnnc.creationTime := fx_generateTimestamp(); + v_myResource.groupAnnc.lastModifiedTime := v_myResource.groupAnnc.creationTime; } } else if (p_resourceType == int10014 and ispresent (p_resource)) { //ContentInstance Annc if(ischosen(p_resource.contentInstanceAnnc)) { v_myResource.contentInstanceAnnc := valueof(p_resource.contentInstanceAnnc); + + v_myResource.contentInstanceAnnc.resourceName := "contentInstanceAnnc" & int2str(v_resourceIndex); + v_myResource.contentInstanceAnnc.resourceType := p_resourceType; + v_myResource.contentInstanceAnnc.resourceID := f_resourceIdCleaner(v_myResource.contentInstanceAnnc.resourceID); + v_myResource.contentInstanceAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); + v_myResource.contentInstanceAnnc.creationTime := fx_generateTimestamp(); + v_myResource.contentInstanceAnnc.lastModifiedTime := v_myResource.contentInstanceAnnc.creationTime; } } else if (p_resourceType == int1 and ispresent (p_resource)) { //Acp Resource if(ischosen (p_resource.accessControlPolicy)){ v_myResource.accessControlPolicy := valueof(p_resource.accessControlPolicy); - if(not(ispresent(p_resource.accessControlPolicy.resourceName))) { - v_myResource.accessControlPolicy.resourceName := "accessControlPolicy" & int2str(v_resourceIndex); - } - + v_myResource.accessControlPolicy.resourceName := "accessControlPolicy" & int2str(v_resourceIndex); v_myResource.accessControlPolicy.resourceType := p_resourceType; v_myResource.accessControlPolicy.resourceID := "accessControlPolicy" & int2str(v_resourceIndex); v_myResource.accessControlPolicy.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); @@ -2266,7 +2501,7 @@ module OneM2M_Functions { * @desc Cse altstep for config 02 on CSE1 (AE1 as master) */ altstep a_cse_cf02_cse1() runs on CseSimu { - + var PrimitiveContent v_localResource; var integer v_localResourceIndex := -1; var integer v_parentResourceIndex := -1; @@ -2783,7 +3018,7 @@ module OneM2M_Functions { if(p_resourceType != int10002) { p_request.from_ := f_getOriginator(p_resourceIndex); - + p_request.to_ := f_getResourceAddress(p_resourceIndex); } else { p_request.from_ := PX_CSE1_ID & "/" & f_getResourceId(vc_resourcesList[p_resourceIndex].resource); @@ -3569,7 +3804,7 @@ module OneM2M_Functions { f_cf04Down(); } else if (vc_config == e_cf02CseSimuMaster) { f_cf02DownCseSimuMaster(); - } + } kill; } } diff --git a/LibOneM2M/OneM2M_Ports.ttcn b/LibOneM2M/OneM2M_Ports.ttcn index 76b80cefe389d569029331bd0661ec2025a6287e..e6b5192faa639894668ff615344f81e26b3676cc 100644 --- a/LibOneM2M/OneM2M_Ports.ttcn +++ b/LibOneM2M/OneM2M_Ports.ttcn @@ -47,9 +47,9 @@ module OneM2M_Ports { */ type port InfoPort message { in - RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource; + RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource, integer; out - RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource; + RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource, integer; } diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 786e38df481dd56c09d87b08f44dd8d52578eaec..f4ed08b5d699966b3651764d05bf5ffb2ebe4934 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -18,7 +18,7 @@ module OneM2M_Templates { import from OneM2M_TypesAndValues all; //import from OneM2M_AdditionalTypes all; import from OneM2M_Pixits all; - //import from OneM2M_Functions all; + import from OneM2M_Functions all; /** @@ -376,6 +376,16 @@ module OneM2M_Templates { } }; + /** + * @desc RETRIEVE request primtive for polling request + * @param p_targetResourceAddress Target resource address + * @param p_filterCriteria FilterCriteria + * @param p_originator Originator (from) + */ + template (value) RequestPrimitive m_retrievePollingRequest(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) modifies m_retrieve := { + to_ := p_targetResourceAddress & "/pcu" + }; + /** * @desc FilterCriteria empty template */ @@ -445,7 +455,7 @@ module OneM2M_Templates { to_ := p_to, from_ := p_from, requestIdentifier := ?, - resourceType := ?, + resourceType := omit, primitiveContent:= ?, roleIDs := *, originatingTimestamp := *, @@ -475,7 +485,7 @@ module OneM2M_Templates { requestIdentifier := "m_updateAe", primitiveContent:= {aE := m_contentUpdateAe} }; - + /** * @desc Reception template for update Ae resource */ @@ -582,6 +592,32 @@ module OneM2M_Templates { resourceType := int10002, primitiveContent := {aEAnnc := m_contentUpdateAEAnnc} }; + + /** + * @desc Base Reception template for update ContainerAnnc + */ + template RequestPrimitive mw_updateContainerAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := { + resourceType := int10003, + primitiveContent := {containerAnnc := ?} + }; + + /** + * @desc Base Reception template for update GroupAnnc + */ + template RequestPrimitive mw_updateGroupAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := { + resourceType := int10009, + primitiveContent := {groupAnnc := ?} + }; + + /** + * @desc Base Reception template for update AccessControlPolicyAnnc + */ + template RequestPrimitive mw_updateAccessControlPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := { + resourceType := int10001, + primitiveContent := {accessControlPolicyAnnc := ?} + }; + + }//end group Update group Create { @@ -646,6 +682,37 @@ module OneM2M_Templates { vendorInformation := * } + /** + * @desc Base Reception template for create operation for announced resources + */ + template RequestPrimitive mw_createAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?) := { + operation := int1, + to_ := p_to, + from_ := p_from, + requestIdentifier := ?, + resourceType := ?, + primitiveContent := ?, + roleIDs := *, + originatingTimestamp := *, + requestExpirationTimestamp := *, + resultExpirationTimestamp := *, + operationExecutionTime := *, + responseType := *, + resultPersistence := *, + resultContent := *, + eventCategory := *, + deliveryAggregation := *, + groupRequestIdentifier := *, + filterCriteria := *, + discoveryResultType := *, + tokens := *, + tokenIDs := *, + localTokenIDs := *, + tokenRequestIndicator := *, + releaseVersionIndicator := ?, + vendorInformation := * + } + /** * @desc Base CREATE request primitive for AEAnnc resource @@ -666,7 +733,8 @@ module OneM2M_Templates { /** * @desc Reception template for CREATE AEAnnc */ - template RequestPrimitive mw_createAEAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?, template XSD.AnyURI p_link := ?) modifies mw_create := { primitiveContent := {aEAnnc := mw_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds)} + template RequestPrimitive mw_createAEAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?, template XSD.AnyURI p_link := ?) modifies mw_create := { + primitiveContent := {aEAnnc := mw_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds)} }; template (value) RequestPrimitive m_createAe(XSD.ID p_appId, template (omit) AcpType p_accessControlPolicyIds := omit,template (omit) XSD.ID p_from := omit, template (omit) ResourceName p_resourceName := c_aeAuxName, in template (omit) PoaList p_poaList := omit) modifies m_create := { @@ -713,10 +781,17 @@ module OneM2M_Templates { template RequestPrimitive mw_createAccessControlPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { to_ := p_to, from_ := p_from, - resourceType := int10002, + resourceType := int10001, primitiveContent := {accessControlPolicyAnnc := mw_contentCreateAcpAnnc(-)} }; + /** + * @desc Reception template for CREATE AcpAnnc + */ + template RequestPrimitive mw_createRemoteCSEAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?) modifies mw_create := { + resourceType := int10016, + primitiveContent := {remoteCSEAnnc := mw_contentCreateRemoteCSEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds)} + }; /** * @desc Base CREATE request primitive for AccessControlPolicy resource (AUX) @@ -1173,6 +1248,55 @@ module OneM2M_Templates { primitiveContent := {m2mServiceSubscriptionProfile := m_contentCreatem2mServiceSubscriptionProfileBase} }; + /** + * @desc Base CREATE request primitive for timeSeries resource + */ + template (value) RequestPrimitive m_createTimeSeriesBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createTimeSeries", + resourceType := int29, + primitiveContent := {timeSeries := m_contentCreateTimeSeries ()} + }; + + template (value) RequestPrimitive m_createTimeSeries(in template (omit) XSD.String p_name := c_defaultTimeSeriesResourceName, + in XSD.Boolean p_missingDataDetect := true, + in XSD.NonNegativeInteger p_periodicInterval := 5, + in XSD.NonNegativeInteger p_missingDataMaxNr := 5, + in XSD.NonNegativeInteger p_missingDataDetectTimer := 2000) modifies m_createTimeSeriesBase := { + primitiveContent := {timeSeries := m_contentCreateTimeSeriesAttributes (p_name, p_missingDataDetect, p_periodicInterval, p_missingDataMaxNr, p_missingDataDetectTimer)} + }; + + /** + * @desc Reception template for CREATE timeSeries + */ + template RequestPrimitive mw_createTimeSeries(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + resourceType := int29, + primitiveContent := {timeSeries := ?} + }; + + /** + * @desc Base CREATE request primitive for timeSeriesInstance resource + */ + template (value) RequestPrimitive m_createTimeSeriesInstanceBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createTimeSeriesInstance", + resourceType := int30, + primitiveContent := {timeSeriesInstance := m_contentCreateTimeSeriesInstance()} + }; + + template (value) RequestPrimitive m_createTimeSeriesInstance(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_name := c_defaultTimeSeriesInstanceResourceName) modifies m_create := { + to_ := p_parentResourceAddress, + requestIdentifier := testcasename() & "-m_createTimeSeriesInstance", + resourceType := int30, + primitiveContent := {timeSeriesInstance := m_contentCreateTimeSeriesInstance (p_name)} + }; + + /** + * @desc Reception template for CREATE timeSeriesInstance + */ + template RequestPrimitive mw_createTimeSeriesInstance(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + resourceType := int30, + primitiveContent := {timeSeriesInstance := ?} + }; + }//end group Create group Delete { @@ -1233,6 +1357,14 @@ module OneM2M_Templates { vendorInformation := * }; + /** + * @desc Base UPDATE request primitive for PollingChannel resource + */ + template (value) RequestPrimitive m_deletePollingChannelBase(XSD.ID p_resourceAddress, in XSD.ID p_originator := PX_SUPER_AE_ID) modifies m_delete := { + requestIdentifier := "m_deletePollingChannel", + primitiveContent:= {pollingChannel := m_contentDeletePollingChannel} + }; + }//end group Delete group Notify { @@ -1240,13 +1372,13 @@ module OneM2M_Templates { /** * @desc Base NOTIFY request primitive */ - template RequestPrimitive m_notify := { + template RequestPrimitive m_notify(XSD.ID p_resourceAddress) := { operation := int5, - to_ := "NotInitialized", - from_ := omit, + to_ := p_resourceAddress, + from_ := "NotInitialized", requestIdentifier := testcasename() & "-m_notify" & f_rnd(1, 1000000), resourceType := omit, - primitiveContent := {notification := m_contentCreateNotification_allOmit}, + primitiveContent := {notification := m_contentNotification_allOmit}, roleIDs := omit, originatingTimestamp := omit, requestExpirationTimestamp := omit, @@ -1277,7 +1409,7 @@ module OneM2M_Templates { from_ := omit, requestIdentifier := testcasename() & "-m_notifyAggregatedNotification" & f_rnd(1, 1000000), resourceType := omit, - primitiveContent := {aggregatedNotification := {notification_list := {m_contentCreateNotification_allOmit,m_contentCreateNotification_allOmit}}}, + primitiveContent := {aggregatedNotification := {notification_list := {m_contentNotification_allOmit,m_contentNotification_allOmit}}}, roleIDs := omit, originatingTimestamp := omit, requestExpirationTimestamp := omit, @@ -1381,6 +1513,10 @@ module OneM2M_Templates { } template PrimitiveContent mw_primitiveContent := ?; + + template PrimitiveContent mw_primitiveContentNotification (template Notification p_notification) := { + notification := p_notification + }; /** * @desc Base primitiveContent for CREATE operation for AEAnnc resource @@ -1433,19 +1569,49 @@ module OneM2M_Templates { expirationTime := ?,//MA M link := p_link,//M dynamicAuthorizationConsultationIDs := omit, //OA - appName := omit,//OA - app_ID := omit,//OA - aE_ID := omit,//OA - pointOfAccess := omit, //OA {"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA - ontologyRef := omit,//OA - nodeLink := omit,//OA - requestReachability := omit,//OA - contentSerialization := omit,//OA + appName := *,//OA + app_ID := *,//OA + aE_ID := *,//OA + pointOfAccess := *, //OA {"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA + ontologyRef := *,//OA + nodeLink := *,//OA + requestReachability := *,//OA + contentSerialization := *,//OA e2eSecInfo := ?, //MA supportedReleaseVersions := ?, //MA choice := omit//NA }; + /** + * @desc Base reception template of primitiveContent for CREATE operation for RemoteCSEAnnc resource + * @param p_labels Labels + * @param p_accessControlPolicyIds AcpIDs + * @param p_appId App ID + * @param p_nodeLink Node link + */ + template RemoteCSEAnnc_optional mw_contentCreateRemoteCSEAnnc (in template Labels p_labels := ?, in template AcpType p_accessControlPolicyIds := ?, template XSD.AnyURI p_link := ?) := { + resourceName := omit,//NA M + resourceType := omit,//NA M + resourceID := omit,//NA M + parentID := omit,//NA M + creationTime := omit,//NA M + lastModifiedTime := omit,//NA M + labels := p_labels,//MA + accessControlPolicyIDs := p_accessControlPolicyIds,//MA + expirationTime := ?,//MA M + link := p_link,//M + dynamicAuthorizationConsultationIDs := omit, //OA + cseType := *,//OA + pointOfAccess := *,//OA + cSEBase := *,// + cSE_ID := *,//OA + requestReachability := *, //OA {"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA + nodeLink := *,//OA + e2eSecInfo := ?,//OA + supportedReleaseVersions := *, //OA + choice := omit//NA + }; + /** * @desc Base primitiveContent for CREATE operation for AE resource * @param p_name Resource name @@ -1508,7 +1674,7 @@ module OneM2M_Templates { * @desc Base reception template of primitiveContent for CREATE operation for AccessControlPolicyAnnc resource * @param p_labels Labels */ - template AccessControlPolicyAnnc_optional mw_contentCreateAcpAnnc (in template (omit) Labels p_labels := omit) := { + template AccessControlPolicyAnnc_optional mw_contentCreateAcpAnnc (in template Labels p_labels := ?) := { resourceName := omit,//NA M resourceType := omit,//NA M resourceID := omit,//NA M @@ -1518,8 +1684,8 @@ module OneM2M_Templates { labels := p_labels,//MA expirationTime := ?,//MA M link := ?,//M - privileges := *,//MA - selfPrivileges := *,//MA + privileges := ?,//MA + selfPrivileges := ?,//MA choice := omit//NA }; @@ -2204,25 +2370,6 @@ module OneM2M_Templates { iPEDiscoveryRequest := omit }; - template (value) Notification m_contentCreateNotification_allOmit := { - notificationEvent := { - representation := omit, - operationMonitor := { - operation := omit, - originator := omit - }, - notificationEventType := omit - }, - verificationRequest := omit, - subscriptionDeletion := omit, - subscriptionReference := omit, - creator := omit, - notificationForwardingURI := omit, - notificationTarget := omit, - targetRemovalRequest := omit, - targetRemovalAllowance := omit, - iPEDiscoveryRequest := omit - }; /** * @desc Base primitiveContent for CREATE operation for SemanticDescriptor resource */ @@ -2359,6 +2506,116 @@ module OneM2M_Templates { choice := omit //O }; + /** + * @desc Base primitiveContent for CREATE operation for timeSeries resource + * @param p_name Resource name + */ + template (value) TimeSeries_optional m_contentCreateTimeSeries (in template (omit) XSD.String p_name := c_defaultTimeSeriesResourceName):= { + resourceName := p_name,//O + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + accessControlPolicyIDs := omit,//O + expirationTime := omit,//O + dynamicAuthorizationConsultationIDs := omit, //O + announceTo := omit,//O + announcedAttribute := omit,//O + stateTag := omit,//NP + creator := omit,//O + maxNrOfInstances := omit,//O + maxByteSize := omit,//O + maxInstanceAge := omit,//O + currentNrOfInstances := omit,//NP + currentByteSize := omit,//NP + periodicInterval := omit,//O + missingDataDetect := omit,//O + missingDataMaxNr := omit,//O + missingDataList := omit,//NP + missingDataCurrentNr := omit,//NP + missingDataDetectTimer := omit,//O + ontologyRef := omit,//O + choice := omit//NP + }; + + /** + * @desc Base primitiveContent for CREATE operation for timeSeries resource + * @param p_name Resource name + */ + template (value) TimeSeries_optional m_contentCreateTimeSeriesAttributes (in template (omit) XSD.String p_name := c_defaultTimeSeriesResourceName, + in template (omit) XSD.Boolean p_missingDataDetect := omit, + in template (omit) XSD.NonNegativeInteger p_periodicInterval := omit, + in template (omit) XSD.NonNegativeInteger p_missingDataMaxNr := omit, + in template (omit) XSD.NonNegativeInteger p_missingDataDetectTimer := omit) modifies m_contentCreateTimeSeries := { + + periodicInterval := p_periodicInterval,//O + missingDataDetect := p_missingDataDetect,//O + missingDataMaxNr := p_missingDataMaxNr,//O + missingDataDetectTimer := p_missingDataDetectTimer//O + } + /** + * @desc Base primitiveContent for invalid CREATE operation for timeSeries resource (using Container_update_invalid) + * @param p_name Resource name + */ + template (value) TimeSeries_update_invalid m_contentCreateTimeSeriesInvalid (in template (omit) XSD.String p_name := c_defaultTimeSeriesResourceName):= { + resourceName := p_name,//O + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + expirationCounter := omit,//Field not existing in container resource + labels := omit,//O + accessControlPolicyIDs := omit,//O + expirationTime := omit,//O + dynamicAuthorizationConsultationIDs := omit, //O + announceTo := omit,//O + announcedAttribute := omit,//O + stateTag := omit,//NP + creator := omit,//O + maxNrOfInstances := omit,//O + maxByteSize := omit,//O + maxInstanceAge := omit,//O + currentNrOfInstances := omit,//NP + currentByteSize := omit,//NP + periodicInterval := omit,//O + missingDataDetect := omit,//O + missingDataMaxNr := omit,//O + missingDataList := omit,//NP + missingDataCurrentNr := omit,//NP + missingDataDetectTimer := omit,//O + ontologyRef := omit,//O + choice := omit//NP + }; + + /** + * @desc Base primitiveContent for CREATE operation for Container resource + * @param p_name Resource name + */ + template (value) TimeSeriesInstance_optional m_contentCreateTimeSeriesInstance (in template (omit) XSD.String p_name := c_defaultTimeSeriesInstanceResourceName):= { + resourceName := p_name,//O + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + expirationTime := omit,//O + announceTo := omit,//O + announcedAttribute := omit,//O + dataGenerationTime := {alt_ := fx_generateTimestamp()},//M + content := "Value",//M + sequenceNr := omit,//O + contentSize := omit//NP + }; + + template (value) MissingData m_missingData( in XSD.NonNegativeInteger p_number, in XSD.Duration p_duration) := { + number := p_number, + duration := p_duration + }; + }//end group ContentCreate group ContentUpdate { @@ -2680,8 +2937,91 @@ module OneM2M_Templates { supportedReleaseVersions := omit, choice := omit } + + template (value) ContainerAnnc_optional m_contentUpdateContainerAnnc := { + resourceName := omit, + resourceType := omit, + resourceID := omit, + parentID := omit, + creationTime := omit, + lastModifiedTime := omit, + labels := omit, + accessControlPolicyIDs := omit, + expirationTime := omit, + link := omit, + dynamicAuthorizationConsultationIDs := omit, + stateTag := omit, + maxNrOfInstances := omit, + maxByteSize := omit, + maxInstanceAge := omit, + currentNrOfInstances := omit, + currentByteSize := omit, + locationID := omit, + ontologyRef := omit, + disableRetrieval := omit, + choice := omit + }; + + template (value) GroupAnnc_optional m_contentUpdateGroupAnnc := { + resourceName := omit, + resourceType := omit, + resourceID := omit, + parentID := omit, + creationTime := omit, + lastModifiedTime := omit, + labels := omit, + accessControlPolicyIDs := omit, + expirationTime := omit, + link := omit, + dynamicAuthorizationConsultationIDs := omit, + memberType := omit, + currentNrOfMembers := omit, + maxNrOfMembers := omit, + memberIDs := omit, + membersAccessControlPolicyIDs := omit, + memberTypeValidated := omit, + consistencyStrategy := omit, + groupName := omit, + semanticSupportIndicator := omit, + choice := omit + }; + }//end group ContentUpdate + + group ContentRetrieve { + /** + * @desc Base primitiveContent for DELETE operation for PollingChannel resource + */ + template (value) PollingChannel_optional m_contentRetrievePollingChannel := { + resourceName := omit,//NP + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + expirationTime := omit//O + }; + } + + group ContentDelete { + + /** + * @desc Base primitiveContent for DELETE operation for PollingChannel resource + */ + template (value) PollingChannel_optional m_contentDeletePollingChannel := { + resourceName := omit,//NP + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + expirationTime := omit//O + }; + + } //end group ContentDelete group RequestContent { @@ -3780,6 +4120,45 @@ module OneM2M_Templates { template CSEBase_optional mw_contentCSEBase_rc1 modifies mw_contentCSEBaseBase := { choice := omit //O } + + template TimeSeries_optional mw_contentTimeSeriesBase := { + resourceName := ?,//M + resourceType := ?,//M + resourceID := ?,//M + parentID := ?,//M + creationTime := ?,//M + lastModifiedTime := ?,//M + labels := *,//O + accessControlPolicyIDs := *,//O + expirationTime := ?,//M + dynamicAuthorizationConsultationIDs := *,//O + announceTo := *,//O + announcedAttribute := *,//O + stateTag := ?,//M + creator := ?,//M + maxNrOfInstances := *,//O + maxByteSize := *,//O + maxInstanceAge := *,//O + currentNrOfInstances := ?,//M + currentByteSize := ?,//M + periodicInterval := *,//O + missingDataDetect := *,//O + missingDataMaxNr := *,//O + missingDataList := *,//O + missingDataCurrentNr := *,//O + missingDataDetectTimer := *,//O + ontologyRef := *,//O + choice := *//O + }; + + template TimeSeries_optional mw_contentTimeSeries(in template MissingDataList p_missingDataList := *, in template XSD.NonNegativeInteger p_missingDataCurrentNr := *) modifies mw_contentTimeSeriesBase := { + missingDataList := p_missingDataList, + missingDataCurrentNr := p_missingDataCurrentNr + } + + template TimeSeries_optional mw_contentTimeSeries_rc1 modifies mw_contentTimeSeriesBase := { + choice := omit //O + } }//end group responseContent @@ -4102,6 +4481,23 @@ module OneM2M_Templates { vendorInformation := * }; + template ResponsePrimitive mw_responsePollingResponse (template RequestPrimitive p_requestPrimitive := ?) := { + responseStatusCode := int2000, + requestIdentifier := ?, + primitiveContent := {requestPrimitive := p_requestPrimitive}, + to_ := *, + from_ := *, + originatingTimestamp := *, + resultExpirationTimestamp := *, + eventCategory := *, + contentStatus := *, + contentOffset := *, + assignedTokenIdentifiers := *, + tokenRequestInformation := *, + releaseVersionIndicator := ?, + vendorInformation := * + }; + template ResponsePrimitive mw_responseDiscovery (template URIList p_uriList := ?) := { responseStatusCode := int2000, requestIdentifier := ?, @@ -4135,10 +4531,13 @@ module OneM2M_Templates { releaseVersionIndicator := "2a", vendorInformation := omit }; + + group InfoPortTemplates { - template MyResource mw_resource := ?; + template MyResource mw_resource := ?; + template integer mw_resourceIndex := ?; }//end group InfoPortTemplates @@ -4216,6 +4615,14 @@ module OneM2M_Templates { } } + template (value) UtTriggerPrimitive m_utCreatePollingChannel modifies m_utCreate := { + requestPrimitive := { + requestIdentifier := testcasename() & "-m_utCreatePollingChannel" & f_rnd(1, 1000000), + resourceType := int15, + primitiveContent := {pollingChannel := m_contentPollingChannel_allOmit} + } + } + template (value) UtTriggerPrimitive m_utRetrieve(XSD.ID p_targetResourceAddress) := { requestPrimitive := { operation := int2, @@ -4247,6 +4654,14 @@ module OneM2M_Templates { forcedFields := omit }; + template (value) UtTriggerPrimitive m_utRetrievePollingChannel(XSD.ID p_targetResourceAddress) modifies m_utRetrieve := { + requestPrimitive := { + requestIdentifier := testcasename() & "-m_utRetrievePollingChannel" & f_rnd(1, 1000000), + resourceType := int15, + primitiveContent := {pollingChannel := m_contentRetrievePollingChannel} + } + } + template (value) UtTriggerPrimitive m_utUpdate := { requestPrimitive := { operation := int3, diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn index b61834b4975acfcb77db684a93115474260adcbd..916183ef8fa5a118c8aa8671b0b294ac16813ccb 100644 --- a/LibOneM2M/OneM2M_TestSystem.ttcn +++ b/LibOneM2M/OneM2M_TestSystem.ttcn @@ -35,6 +35,7 @@ module OneM2M_TestSystem { var MyResourcesList vc_resourcesList; var IntegerList vc_resourcesIndexToBeDeleted := {}; var integer vc_aeAuxIndex := -1;//TODO To be removed + var integer vc_remoteCseIndex := -1; var integer vc_acpAuxIndex := -1; var AccessControlPolicy_optional vc_acpAux; var MsgIn vc_request; @@ -64,14 +65,16 @@ module OneM2M_TestSystem { //global variables var MyResourcesList vc_localResourcesList := {}; var AeSimu vc_ae1;//For CF02 when CseSimu is master - var integer vc_remoteCseIndex := -1; var integer vc_localRemoteCseIndex := -1; var integer vc_cSEBaseIndex := -1; //Index of the CSEBase resource of the Tester inside vc_localResourcesList + var CseTypeID vc_cseType; //cseType of the simulated CSE. IN = 1; MN = 2 }; - type component InCseSimu extends CseSimu {} + type component InCseSimu extends CseSimu { + } - type component MnCseSimu extends CseSimu {} + type component MnCseSimu extends CseSimu { + } type component CseSystem { port OneM2MPort mcaPort; diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn index baa7956289e430ae495cf4acc25bb33a8e11c624..9baf894e36db594cf988f4ad0a9685d8ca7702b2 100644 --- a/LibOneM2M/OneM2M_Types.ttcn +++ b/LibOneM2M/OneM2M_Types.ttcn @@ -1707,6 +1707,7 @@ type union PrimitiveContent { PollingChannel_optional pollingChannel, Request_optional request, RemoteCSE_optional remoteCSE, + RemoteCSEAnnc_optional remoteCSEAnnc, Schedule_optional schedule, ScheduleAnnc_optional scheduleAnnc, StatsConfig_optional statsConfig, @@ -1715,6 +1716,8 @@ type union PrimitiveContent { ServiceSubscribedAppRule_optional serviceSubscribedAppRule, Subscription_optional subscription, SemanticDescriptor_optional semanticDescriptor, + TimeSeries_optional timeSeries, + TimeSeriesInstance_optional timeSeriesInstance, GenericInterworkingOperationInstance_optional genericInterworkingOperationInstance, //SecurityInfo SecurityInfo securityInfo, @@ -1729,6 +1732,7 @@ type union PrimitiveContent { ResourceRefList resourceRefList, AggregatedResponse aggregatedResponse, URI uRI, + RequestPrimitive requestPrimitive, DebugInfo debugInfo, //Invalid types AE_update_invalid aE_update_invalid, @@ -7803,7 +7807,9 @@ group OptionalResourceTypes { ListOfURIs relatedSemantics optional, union { record length(1 .. infinity) of ChildResourceRef childResource_list, - record length(1 .. infinity) of Subscription subscription_list + record length(1 .. infinity) of union { + Subscription_optional subscription + } choice_list } choice optional } with { @@ -7814,8 +7820,44 @@ group OptionalResourceTypes { variant (choice) "untagged"; variant (choice.childResource_list) "untagged"; variant (choice.childResource_list[-]) "name as 'childResource'"; - variant (choice.subscription_list) "untagged"; - variant (choice.subscription_list[-]) "name as 'subscription'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; + }; + + type record SemanticDescriptorAnnc_optional + { + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + Labels labels optional, + AcpType accessControlPolicyIDs optional, + Timestamp expirationTime optional, + XSD.AnyURI link optional, + ListOfURIs dynamicAuthorizationConsultationIDs optional, + DescriptorRepresentation descriptorRepresentation optional, + Sparql semanticOpExec optional, + XSD.Base64Binary descriptor optional, + XSD.AnyURI ontologyRef optional, + ListOfURIs relatedSemantics optional, + union { + record length(1 .. infinity) of ChildResourceRef childResource_list, + record length(1 .. infinity) of union { + Subscription_optional subscription + } choice_list + } choice optional + } + with { + variant "name as uncapitalized"; + variant "element"; + variant (resourceName) "attribute"; + variant (choice) "untagged"; + variant (choice.childResource_list) "untagged"; + variant (choice.childResource_list[-]) "name as 'childResource'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; }; type record ServiceSubscribedAppRule_optional @@ -7836,7 +7878,9 @@ group OptionalResourceTypes { record length(1 .. infinity) of RoleID allowedRole_IDs optional, union { record length(1 .. infinity) of ChildResourceRef childResource_list, - record length(1 .. infinity) of Subscription subscription_list + record length(1 .. infinity) of union { + Subscription_optional subscription + } choice_list } choice optional } with { @@ -7849,8 +7893,8 @@ group OptionalResourceTypes { variant (choice) "untagged"; variant (choice.childResource_list) "untagged"; variant (choice.childResource_list[-]) "name as 'childResource'"; - variant (choice.subscription_list) "untagged"; - variant (choice.subscription_list[-]) "name as 'subscription'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; }; type record ServiceSubscribedNode_optional @@ -7871,7 +7915,9 @@ group OptionalResourceTypes { ListOfURIs ruleLinks optional, union { record length(1 .. infinity) of ChildResourceRef childResource_list, - record length(1 .. infinity) of Subscription subscription_list + record length(1 .. infinity) of union { + Subscription_optional subscription + } choice_list } choice optional } with { @@ -7883,8 +7929,8 @@ group OptionalResourceTypes { variant (choice) "untagged"; variant (choice.childResource_list) "untagged"; variant (choice.childResource_list[-]) "name as 'childResource'"; - variant (choice.subscription_list) "untagged"; - variant (choice.subscription_list[-]) "name as 'subscription'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; }; type record StatsCollect_optional @@ -7909,7 +7955,9 @@ group OptionalResourceTypes { XSD.String eventID optional, union { record length(1 .. infinity) of ChildResourceRef childResource_list, - record length(1 .. infinity) of Subscription subscription_list + record length(1 .. infinity) of union { + Subscription_optional subscription + } choice_list } choice optional } with { @@ -7919,8 +7967,8 @@ group OptionalResourceTypes { variant (choice) "untagged"; variant (choice.childResource_list) "untagged"; variant (choice.childResource_list[-]) "name as 'childResource'"; - variant (choice.subscription_list) "untagged"; - variant (choice.subscription_list[-]) "name as 'subscription'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; }; type record StatsConfig_optional @@ -8002,6 +8050,155 @@ group OptionalResourceTypes { variant (choice.choice_list) "untagged"; variant (choice.choice_list[-]) "untagged"; }; + + type record TimeSeries_optional + { + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + Labels labels optional, + AcpType accessControlPolicyIDs optional, + Timestamp expirationTime optional, + ListOfURIs dynamicAuthorizationConsultationIDs optional, + ListOfURIs announceTo optional, + record length(1 .. infinity) of XSD.NCName announcedAttribute optional, + XSD.NonNegativeInteger stateTag optional, + XSD.ID creator optional, + XSD.NonNegativeInteger maxNrOfInstances optional, + XSD.NonNegativeInteger maxByteSize optional, + XSD.NonNegativeInteger maxInstanceAge optional, + XSD.NonNegativeInteger currentNrOfInstances optional, + XSD.NonNegativeInteger currentByteSize optional, + XSD.NonNegativeInteger periodicInterval optional, + XSD.Boolean missingDataDetect optional, + XSD.NonNegativeInteger missingDataMaxNr optional, + MissingDataList missingDataList optional, + XSD.NonNegativeInteger missingDataCurrentNr optional, + XSD.NonNegativeInteger missingDataDetectTimer optional, + XSD.AnyURI ontologyRef optional, + union { + record length(1 .. infinity) of ChildResourceRef childResource_list, + record length(1 .. infinity) of union { + TimeSeriesInstance_optional timeSeriesInstance, + Subscription_optional subscription, + SemanticDescriptor_optional semanticDescriptor + } choice_list + } choice optional + } + with { + variant "name as uncapitalized"; + variant "element"; + variant (resourceName) "attribute"; + variant (announcedAttribute) "list"; + //variant (missingDataDetect) "text 'true' as '1'"; + //variant (missingDataDetect) "text 'false' as '0'"; + variant (choice) "untagged"; + variant (choice.childResource_list) "untagged"; + variant (choice.childResource_list[-]) "name as 'childResource'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; + }; + + + type record TimeSeriesAnnc_optional + { + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + Labels labels optional, + AcpType accessControlPolicyIDs optional, + Timestamp expirationTime optional, + XSD.AnyURI link optional, + ListOfURIs dynamicAuthorizationConsultationIDs optional, + XSD.NonNegativeInteger stateTag optional, + XSD.NonNegativeInteger maxNrOfInstances optional, + XSD.NonNegativeInteger maxByteSize optional, + XSD.NonNegativeInteger maxInstanceAge optional, + XSD.NonNegativeInteger currentNrOfInstances optional, + XSD.NonNegativeInteger currentByteSize optional, + XSD.NonNegativeInteger periodicInterval optional, + XSD.Boolean missingDataDetect optional, + MissingDataList missingDataList optional, + XSD.NonNegativeInteger missingDataCurrentNr optional, + XSD.NonNegativeInteger missingDataDetectTimer optional, + XSD.AnyURI ontologyRef optional, + union { + record length(1 .. infinity) of ChildResourceRef childResource_list, + record length(1 .. infinity) of union { + TimeSeriesInstance_optional timeSeriesInstance, + TimeSeriesInstanceAnnc_optional timeSeriesInstanceAnnc, + Subscription_optional subscription, + SemanticDescriptor_optional semanticDescriptor, + SemanticDescriptorAnnc_optional semanticDescriptorAnnc + } choice_list + } choice optional + } + with { + variant "name as uncapitalized"; + variant "element"; + variant (resourceName) "attribute"; + //variant (missingDataDetect) "text 'true' as '1'"; + //variant (missingDataDetect) "text 'false' as '0'"; + variant (choice) "untagged"; + variant (choice.childResource_list) "untagged"; + variant (choice.childResource_list[-]) "name as 'childResource'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; + }; + + type record TimeSeriesInstance_optional + { + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + Labels labels optional, + Timestamp expirationTime optional, + ListOfURIs announceTo optional, + record length(1 .. infinity) of XSD.NCName announcedAttribute optional, + AbsRelTimestamp dataGenerationTime optional, + XSD.AnySimpleType content optional, + XSD.NonNegativeInteger sequenceNr optional, + XSD.NonNegativeInteger contentSize optional + } + with { + variant "name as uncapitalized"; + variant "element"; + variant (resourceName) "attribute"; + variant (announcedAttribute) "list"; + }; + + + type record TimeSeriesInstanceAnnc_optional + { + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + Labels labels optional, + Timestamp expirationTime optional, + XSD.AnyURI link optional, + AbsRelTimestamp dataGenerationTime optional, + XSD.AnySimpleType content optional, + XSD.NonNegativeInteger sequenceNr optional, + XSD.NonNegativeInteger contentSize optional + } + with { + variant "name as uncapitalized"; + variant "element"; + variant (resourceName) "attribute"; + }; + }//end group OptionalResourceTypes @@ -8289,6 +8486,59 @@ group InvalidTypes { variant (choice.choice_list) "untagged"; variant (choice.choice_list[-]) "untagged"; }; + + type record TimeSeries_update_invalid + { + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + XSD.PositiveInteger expirationCounter optional,//Invalid field, non existing for Container + Labels labels optional, + AcpType accessControlPolicyIDs optional, + Timestamp expirationTime optional, + ListOfURIs dynamicAuthorizationConsultationIDs optional, + ListOfURIs announceTo optional, + record length(1 .. infinity) of XSD.NCName announcedAttribute optional, + XSD.NonNegativeInteger stateTag optional, + XSD.ID creator optional, + XSD.NonNegativeInteger maxNrOfInstances optional, + XSD.NonNegativeInteger maxByteSize optional, + XSD.NonNegativeInteger maxInstanceAge optional, + XSD.NonNegativeInteger currentNrOfInstances optional, + XSD.NonNegativeInteger currentByteSize optional, + XSD.NonNegativeInteger periodicInterval optional, + XSD.Boolean missingDataDetect optional, + XSD.NonNegativeInteger missingDataMaxNr optional, + MissingDataList missingDataList optional, + XSD.NonNegativeInteger missingDataCurrentNr optional, + XSD.NonNegativeInteger missingDataDetectTimer optional, + XSD.AnyURI ontologyRef optional, + union { + record length(1 .. infinity) of ChildResourceRef childResource_list, + record length(1 .. infinity) of union { + TimeSeriesInstance_optional timeSeriesInstance, + Subscription_optional subscription, + SemanticDescriptor_optional semanticDescriptor + } choice_list + } choice optional + } + with { + variant "name as uncapitalized"; + variant "element"; + variant (resourceName) "attribute"; + variant (announcedAttribute) "list"; + //variant (missingDataDetect) "text 'true' as '1'"; + //variant (missingDataDetect) "text 'false' as '0'"; + variant (choice) "untagged"; + variant (choice.childResource_list) "untagged"; + variant (choice.childResource_list[-]) "name as 'childResource'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; + }; + type record LocationPolicy_update_invalid { @@ -8398,7 +8648,8 @@ group OtherTypes { StatsCollect_optional statsCollect, M2mServiceSubscriptionProfile_optional m2mServiceSubscriptionProfile, ServiceSubscribedAppRule_optional serviceSubscribedAppRule, - Subscription_optional subscription + Subscription_optional subscription, + TimeSeries_optional timeSeries } with { variant "untagged"; diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn index 8f8a33bbf8a4a4b4293526475898b65b817fb1e3..d2c642df70f515f9d8c404453b8e34ddb57010d6 100644 --- a/LibOneM2M/OneM2M_TypesAndValues.ttcn +++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn @@ -37,6 +37,8 @@ module OneM2M_TypesAndValues { const XSD.String c_defaultStatsCollectResourceName := "MyStatsCollectResource"; const XSD.String c_defaultm2mServiceSubscriptionProfileResourceName := "Mym2mServiceSubscriptionProfileResource"; const XSD.String c_defaultServiceSubscribedAppRuleResourceName := "MyServiceSubscribedAppRuleResource"; + const XSD.String c_defaultTimeSeriesResourceName := "MyTimeSeriesResource"; + const XSD.String c_defaultTimeSeriesInstanceResourceName := "MyTimeSeriesResource"; const XSD.ID c_aeAuxName := "MyAe"; const XSD.String c_defaultAE2Name := "MyAe2"; const XSD.String c_acpAuxName := "MyAcp"; diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index e456a2a31384dbd78400c55c170990e2a4561515..ce5183fe97023194d1cafb50c5baf49a1e362710 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -4923,8 +4923,7 @@ module OneM2M_PermutationFunctions { v_setOfArcs.accessControlRule_list := {v_accessControlRule_1, v_accessControlRule_2}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); - v_updateRequest := f_getUpdateRequestPrimitive(int1, vc_acpAuxIndex, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int1, vc_acpAuxIndex, v_updateRequest); //Adjustments for ACP resource type if(p_resourceType == int1) { @@ -5649,8 +5648,7 @@ module OneM2M_PermutationFunctions { v_accessControlRule_1 := valueof(m_createAcr({ f_getOriginator(v_aeIndex), PX_SUPER_AE_ID}, int63)); v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, v_setOfArcs)); - v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int1, v_acpIndex, v_updateRequest); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); @@ -5716,14 +5714,12 @@ module OneM2M_PermutationFunctions { v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int3)); // c_CR v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); - v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex1, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int1, v_acpIndex1, v_updateRequest); v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int60)); // c_UDNDi v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); - v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex2, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int1, v_acpIndex2, v_updateRequest); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); @@ -6338,8 +6334,7 @@ module OneM2M_PermutationFunctions { v_accessControlRule_2 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, p_acor)); v_setOfArcs.accessControlRule_list := {v_accessControlRule_1, v_accessControlRule_2}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); - v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int1, v_acpIndex, v_updateRequest); // Test Body v_request := f_getCreateRequestPrimitive(int3, p_requestPrimitive, v_containerIndex); @@ -6395,8 +6390,9 @@ module OneM2M_PermutationFunctions { var integer v_aeIndex := -1; var integer v_resourceIndex; var ResponsePrimitive v_responsePrimitive; + var integer v_AEAnncResourceIndex; var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); - v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + v_create.primitiveContent.aE.announceTo := {PX_CSE1_ID}; // Test control @@ -6406,7 +6402,7 @@ module OneM2M_PermutationFunctions { // Test adapter configuration //Register the CSE - vc_cse1.start(f_cse_registrationRemoteCse(mw_createRemoteCSE)); + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); vc_cse1.done; //Preamble @@ -6423,7 +6419,10 @@ module OneM2M_PermutationFunctions { v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_parentIndex); v_responsePrimitive.responseStatusCode := int2001; } - vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc)); + + //Retrieve the parent resource index + v_AEAnncResourceIndex := f_getLatestResourceIndex(vc_cse1); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_AEAnncResourceIndex)); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -6450,6 +6449,1607 @@ module OneM2M_PermutationFunctions { }//end f_CSE_ANNC_001 }//end group Basic + + group Create { + + function f_CSE_ANNC_CRE_001(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on AeSimu { + //Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + //Test control + + //Test component configuration + f_cf02Up(); + + //Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + //Preamble + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); + v_aeIndex := f_cse_createResource(int2,v_create); + vc_cse1.done; + + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc)); + f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); + vc_cse1.done; + + //Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + } //end f_CSE_ANNC_CRE_001 + + function f_CSE_ANNC_CRE_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestUpdatePrimitive := omit) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_remoteCSEAnncIndex := -1; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + //TODO var template RequestPrimitive v_remoteCSEAnnc := mw_createAccessControlPolicyAnnc; + + // Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + + //Preamble + v_ae1.start(f_cse_createResource(int2,v_create)); + v_ae1.done; + + // Test Body + v_ae1.start(f_cse_sendUpdateRequestPrimitive(p_resourceType, p_requestUpdatePrimitive)); + v_ae1.done; + + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_CRE_002 + + function f_CSE_ANNC_CRE_003(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, in template RequestPrimitive p_requestUpdatePrimitive := omit) runs on AeSimu { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_CntAnncResourceIndex; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + v_create.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + + // Test control + + // Test component configuration + f_cf02Up(); + + // Test adapter configuration + + //Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + //Preamble + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createContainerAnncBase(-, -))); + v_aeIndex := f_cse_createResource(int2,v_create); + vc_cse1.done; + + // Test Body + //Retrieve the parent resource index + v_CntAnncResourceIndex := f_getLatestResourceIndex(vc_cse1); + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_parentIndex); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc,int4000, v_CntAnncResourceIndex)); + mcaPort.send(m_request(v_request)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__, ": Resource " & int2str(enum2int(p_resourceType)) & " created successfully"); + if(ispresent(v_response.primitive.responsePrimitive.primitiveContent.contentInstance.announceTo)) { + setverdict(fail, __SCOPE__, ": Resource " & int2str(enum2int(p_resourceType)) & " contains the attribute announceTo"); + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__, ": Wrong response status code"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__, ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); + } + } + + vc_cse1.done; + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + + }//end f_CSE_ANNC_CRE_003 + + function f_CSE_ANNC_CRE_004_CseSimu(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + // Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + // Test Body + v_ae1.start(f_cse_sendCreateRequestPrimitive(p_resourceType,p_requestCreatePrimitive, v_parentIndex)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE REQUEST received"); + + if(match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(v_aEAnncIndex, e_hierarchical, e_spRelative)) or + match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(v_aEAnncIndex, e_nonHierarchical, e_spRelative))) { + setverdict(pass, __SCOPE__ & ":matching ANNC_PARENT_RESOURCE_ADDRESS"); + } else { + setverdict(fail, __SCOPE__ & ":mis-matching ANNC_PARENT_RESOURCE_ADDRESS"); + } + + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE REQUEST received"); + } + } + + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_CRE_004 + + function f_CSE_ANNC_CRE_005_CseSimu(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + v_create.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + // Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createRemoteCSEAnnc(-, -, -)); + v_ae1.done; + + // Test Body + v_ae1.start(f_cse_sendCreateRequestPrimitive(p_resourceType,p_requestCreatePrimitive, v_parentIndex)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE REQUEST received"); + + if(match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(v_aEAnncIndex, e_hierarchical, e_spRelative)) or + match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(v_aEAnncIndex, e_nonHierarchical, e_spRelative))) { + setverdict(pass, __SCOPE__ & ":matching ANNC_PARENT_RESOURCE_ADDRESS"); + } else { + setverdict(fail, __SCOPE__ & ":mis-matching ANNC_PARENT_RESOURCE_ADDRESS"); + } + + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE REQUEST received"); + } + } + + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_CRE_005 + + function f_CSE_ANNC_CRE_006_CseSimu(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + v_create.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + // Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + v_ae1.start(f_cse_createResource(int2,v_create)); + v_ae1.done; + + // Test Body + v_ae1.start(f_cse_sendCreateRequestPrimitive(p_resourceType,p_requestCreatePrimitive, v_parentIndex)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE REQUEST received"); + + if(match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(v_aEAnncIndex, e_hierarchical, e_spRelative)) or + match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(v_aEAnncIndex, e_nonHierarchical, e_spRelative))) { + setverdict(pass, __SCOPE__ & ":matching ANNC_PARENT_RESOURCE_ADDRESS"); + } else { + setverdict(fail, __SCOPE__ & ":mis-matching ANNC_PARENT_RESOURCE_ADDRESS"); + } + + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE REQUEST received"); + } + } + + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_CRE_006 + + function f_CSE_ANNC_CRE_007_CseSimu(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + v_create.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + // Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + v_ae1.start(f_cse_createResource(int2,v_create)); + v_ae1.done; + + // Test Body + v_ae1.start(f_cse_sendCreateRequestPrimitive(p_resourceType,p_requestCreatePrimitive, v_parentIndex)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(mw_createRemoteCSEAnnc(-, -, -))) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE REQUEST for remoteCSEAnnc received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE REQUEST received"); + } + } + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE REQUEST received"); + + if(match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(v_aEAnncIndex, e_hierarchical, e_spRelative)) or + match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(v_aEAnncIndex, e_nonHierarchical, e_spRelative))) { + setverdict(pass, __SCOPE__ & ":matching ANNC_PARENT_RESOURCE_ADDRESS"); + } else { + setverdict(fail, __SCOPE__ & ":mis-matching ANNC_PARENT_RESOURCE_ADDRESS"); + } + + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE REQUEST received"); + } + } + + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_CRE_007 + + function f_CSE_ANNC_CRE_008_CseSimu(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + v_create.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + // Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + //Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(mw_createRemoteCSE); + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + // Test Body + v_ae1.start(f_cse_sendCreateRequestPrimitive(p_resourceType,p_requestCreatePrimitive, v_parentIndex)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE REQUEST received"); + + if(match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(v_aEAnncIndex, e_hierarchical, e_spRelative)) or + match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(v_aEAnncIndex, e_nonHierarchical, e_spRelative))) { + setverdict(pass, __SCOPE__ & ":matching ANNC_PARENT_RESOURCE_ADDRESS"); + } else { + setverdict(fail, __SCOPE__ & ":mis-matching ANNC_PARENT_RESOURCE_ADDRESS"); + } + + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE REQUEST received"); + } + } + + v_ae1.done; + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_CRE_008 + + function f_CSE_ANNC_CRE_009_CseSimu(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + v_create.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + // Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + //Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(mw_createRemoteCSE); + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + // Test Body + v_ae1.start(f_cse_sendCreateRequestPrimitive(p_resourceType,p_requestCreatePrimitive, v_parentIndex)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE REQUEST received"); + + if(match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(v_aEAnncIndex, e_hierarchical, e_spRelative)) or + match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(v_aEAnncIndex, e_nonHierarchical, e_spRelative))) { + setverdict(pass, __SCOPE__ & ":matching ANNC_PARENT_RESOURCE_ADDRESS"); + } else { + setverdict(fail, __SCOPE__ & ":mis-matching ANNC_PARENT_RESOURCE_ADDRESS"); + } + + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE REQUEST received"); + } + } + + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_CRE_009 + + } //end group Create + + group Retrieve { + + function f_CSE_ANNC_RET_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, in template RequestPrimitive p_requestUpdatePrimitive := omit) runs on AeSimu { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var template RequestPrimitive v_createAE := m_createAe(PX_APP_ID, omit, omit); + var template RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_CSE1_ID); + var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyAcp", -, int61); + var integer v_aeAnncIndex; + var integer v_resourceAnncIndex; + var integer v_acpIndex; + var XSD.ID v_membersAcpId; + + // Test control + + // Test component configuration + f_cf02Up(); + + // Test adapter configuration + + //Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + //Preamble + v_aeIndex := f_cse_createResource(int2,v_createAE); + + v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource + v_membersAcpId := f_getResourceId(vc_resourcesList[v_acpIndex].resource); + + v_createAEAnnc.primitiveContent.aEAnnc.resourceID := v_membersAcpId; + v_aeAnncIndex := f_cse_createResource(int10002,v_createAEAnnc); + + v_resourceAnncIndex := f_cse_createResource(p_resourceType,p_createRequestAnnc); + + // Test Body + mcaPort.send(m_request(m_retrieve(f_getResourceAddress(), f_getOriginator(v_resourceAnncIndex)))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__, ": Resource " & int2str(enum2int(p_resourceType)) & " retrieved successfully"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__, ": Wrong response status code"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__, ": No answer while retrieving resource type " & int2str(enum2int(p_resourceType))); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + + }//end f_CSE_ANNC_RET_001 + + function f_CSE_ANNC_RET_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, in template RequestPrimitive p_requestUpdatePrimitive := omit) runs on AeSimu { + + //Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var template RequestPrimitive v_createAE := m_createAe(PX_APP_ID, omit, omit); + var template RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_CSE1_ID); + var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyAcp", -, int61); + var integer v_aeAnncIndex; + var integer v_resourceAnncIndex; + var integer v_acpIndex; + var XSD.ID v_membersAcpId; + + //Test control + + // Test component configuration + f_cf02Up(); + + // Test adapter configuration + + //Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + //Preamble + v_aeIndex := f_cse_createResource(int2,v_createAE); + + v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource + v_membersAcpId := f_getResourceId(vc_resourcesList[v_acpIndex].resource); + + v_createAEAnnc.primitiveContent.aEAnnc.resourceID := v_membersAcpId; + v_aeAnncIndex := f_cse_createResource(int10002,v_createAEAnnc); + + v_resourceAnncIndex := f_cse_createResource(p_resourceType,p_createRequestAnnc); + + //Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + + } //end f_CSE_ANNC_RET_002 + + } //end group Retrieve + + group Update{ + + function f_CSE_ANNC_UPD_001(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE REQUEST received"); + + if(match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1, e_hierarchical, e_spRelative)) or + match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1, e_nonHierarchical, e_spRelative))) { + setverdict(pass, __SCOPE__ & ":matching ANNC_PARENT_RESOURCE_ADDRESS"); + } else { + setverdict(fail, __SCOPE__ & ":mis-matching ANNC_PARENT_RESOURCE_ADDRESS"); + } + + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE REQUEST received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_001 + + function f_CSE_ANNC_UPD_002(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(mw_delete(f_getResourceAddress(v_latestResourceIndex)))){ + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Delete Request received successfully"); + } + [] mccPortIn.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error Delete request was not received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while waiting to receive Delete request"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_002 + + function f_CSE_ANNC_UPD_003(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on AeSimu { + //Local variables + var RequestPrimitive v_updateRequest; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + //Test control + + //Test component configuration + f_cf02Up(); + + //Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + //Preamble + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); + v_aeIndex := f_cse_createResource(int2,v_create); + vc_cse1.done; + + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc)); + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); + vc_cse1.done; + + vc_cse1.start(f_cse_announcementProcedure_deleteHandler()); + v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); + mcaPort.send(m_request(v_updateRequest, p_nullFields)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Resource updated successfully"); + + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while updating container resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource"); + } + } + + vc_cse1.done; + + //Used to check that the resource has been updated + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); + + //Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + } //end f_CSE_ANNC_UPD_003 + + function f_CSE_ANNC_UPD_004(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_004 + + function f_CSE_ANNC_UPD_005(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc, template (omit) AttributeAux_list p_nullFields := omit) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive, p_nullFields)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + v_responsePrimitive := valueof(m_responsePrimitive(int2004,vc_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.from_ := PX_CSE1_ID; + v_responsePrimitive.to_ := vc_request.primitive.requestPrimitive.from_; + mccPortIn.send(m_response(v_responsePrimitive)); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_005 + + function f_CSE_ANNC_UPD_006(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE Request received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE request received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_006 + + function f_CSE_ANNC_UPD_007(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE Request received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE request received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_007 + + function f_CSE_ANNC_UPD_008(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive) runs on AeSimu { + //Local variables + var RequestPrimitive v_updateRequest; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + //Test control + + //Test component configuration + f_cf02Up(); + + //Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + //Preamble + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); + v_aeIndex := f_cse_createResource(int2,v_create); + vc_cse1.done; + + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc)); + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); + vc_cse1.done; + + vc_cse1.start(f_cse_announcementProcedure_updateHandler()); + v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); + mcaPort.send(m_request(v_updateRequest)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Resource updated successfully"); + + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while updating container resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource"); + } + } + + vc_cse1.done; + + //Used to check that the resource has been updated + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); + + //Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + } //end f_CSE_ANNC_UPD_008 + + function f_CSE_ANNC_UPD_009(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + v_responsePrimitive := valueof(m_responsePrimitive(int2004,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.from_ := PX_CSE1_ID; + v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(m_response(v_responsePrimitive)); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_009 + + function f_CSE_ANNC_UPD_010(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + v_responsePrimitive := valueof(m_responsePrimitive(int2004,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.from_ := PX_CSE1_ID; + v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(m_response(v_responsePrimitive)); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_010 + + function f_CSE_ANNC_UPD_011(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + v_responsePrimitive := valueof(m_responsePrimitive(int2004,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.from_ := PX_CSE1_ID; + v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(m_response(v_responsePrimitive)); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_011 + + function f_CSE_ANNC_UPD_012(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc, template (omit) AttributeAux_list p_nullFields := omit) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive, p_nullFields)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + v_responsePrimitive := valueof(m_responsePrimitive(int2004,vc_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.from_ := PX_CSE1_ID; + v_responsePrimitive.to_ := vc_request.primitive.requestPrimitive.from_; + mccPortIn.send(m_response(v_responsePrimitive)); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_012 + + function f_CSE_ANNC_UPD_013(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on AeSimu { + //Local variables + var RequestPrimitive v_updateRequest; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + //Test control + + //Test component configuration + f_cf02Up(); + + //Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + //Preamble + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); + v_aeIndex := f_cse_createResource(int2,v_create); + vc_cse1.done; + + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc)); + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); + vc_cse1.done; + + vc_cse1.start(f_cse_announcementProcedure_updateHandler()); + v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); + mcaPort.send(m_request(v_updateRequest, p_nullFields)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Resource updated successfully"); + + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while updating container resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource"); + } + } + + vc_cse1.done; + + //Used to check that the resource has been updated + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); + + //Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + } //end f_CSE_ANNC_UPD_013 + + function f_CSE_ANNC_UPD_014(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive) runs on AeSimu { + //Local variables + var RequestPrimitive v_updateRequest; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_AEAnncResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + //Test control + + //Test component configuration + f_cf02Up(); + + //Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + //Preamble + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); + v_aeIndex := f_cse_createResource(int2,v_create); + vc_cse1.done; + + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); + + //Retrieve the parent resource index + v_AEAnncResourceIndex := f_getLatestResourceIndex(vc_cse1); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc,int4000, v_AEAnncResourceIndex)); + v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); + mcaPort.send(m_request(v_updateRequest)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Resource updated successfully"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while updating container resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource"); + } + } + + vc_cse1.done; + + //Used to check that the resource has been updated + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); + + //Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + } //end f_CSE_ANNC_UPD_014 + + }//end group Update + + group Delete{ + + function f_CSE_ANNC_DEL_001(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on AeSimu { + //Local variables + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + //Test control + + //Test component configuration + f_cf02Up(); + + //Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + //Preamble + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); + v_aeIndex := f_cse_createResource(int2,v_create); + vc_cse1.done; + + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc)); + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); + vc_cse1.done; + + vc_cse1.start(f_cse_announcementProcedure_deleteHandler()); + v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); + mcaPort.send(m_request(v_request)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Resource deleted successfully"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while deleting container resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while deleting resource"); + } + } + + vc_cse1.done; + + //Check to see if the resource is present or not + if (f_isResourceNotPresent(v_aeIndex, f_getResourceName(vc_resourcesList[v_resourceIndex].resource))){ + setverdict(pass, __SCOPE__ & ":INFO: Resource deleted"); + }else { + setverdict(fail, __SCOPE__ & ":ERROR: Resource not deleted"); + } + + //Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + } //end f_CSE_ANNC_DEL_001 + + function f_CSE_ANNC_DEL_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_latestResourceIndex; + var integer v_aEAnncIndex := -1; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + // Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + // Test Body + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + + v_ae1.start(f_cse_deleteResource(v_latestResourceIndex)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(mw_delete(f_getResourceAddress(v_latestResourceIndex)))){ + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Delete Request received successfully"); + } + [] mccPortIn.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error Delete request was not received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while waiting to receive Delete request"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_DEL_002 + + }//end group Delete }// end group Announcement diff --git a/OneM2M_Testcases_AE_Release_1.ttcn b/OneM2M_Testcases_AE_Release_1.ttcn index f3c3a86f3ec741b163fbc8acc1b57dbd17c5ec87..1d435e6fcef35896871e73d5937c765f86698a6c 100644 --- a/OneM2M_Testcases_AE_Release_1.ttcn +++ b/OneM2M_Testcases_AE_Release_1.ttcn @@ -2037,7 +2037,7 @@ module OneM2M_Testcases_AE_Release_1 { //Test behavior - mcaPortIn.send(m_request(m_notify)); + mcaPortIn.send(m_request(m_notify(f_getLocalResourceAddress(v_auxInteger)))); tc_ac.start; alt{ diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn index 04c9954742b8daa276f1ae60518bab6cea7495f0..e80720fc489b558523ecb695766668930a6c5938 100644 --- a/OneM2M_Testcases_CSE_Release_1.ttcn +++ b/OneM2M_Testcases_CSE_Release_1.ttcn @@ -397,7 +397,7 @@ module OneM2M_Testcases_CSE_Release_1 { var integer v_cseBaseIndex := -1; var ResourceType v_resourceType := int2; var universal charstring v_action := __SCOPE__ & ": Please, make sure that the following AE-ID is allowed to register: " & PX_ALLOWED_C_AE_IDS[0]; - + //Test control if(not(PICS_IN_CSE)) { setverdict(inconc, __SCOPE__ & ": IUT shall be IN-CSE to run this test case"); @@ -713,7 +713,7 @@ module OneM2M_Testcases_CSE_Release_1 { tc_ac.start; alt { - [] mccPortIn.receive(mw_request(mw_createAEAnnc(PX_CSE_ID, f_getLocalResourceAddress(vc_cSEBaseIndex), -, "S"))) { + [] mccPortIn.receive(mw_request(mw_createAEAnnc(PX_CSE_ID, f_getLocalResourceAddress(vc_cSEBaseIndex), -))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": AE creation redirected."); } @@ -902,7 +902,7 @@ module OneM2M_Testcases_CSE_Release_1 { //Preamble vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); - + //Create AEAnnc v_aeAnncIndex := f_cse_announcementProcedure_announceResource(int2, m_createAEAnnc(-, PX_CSE1_ID & "/" & "S", PX_APP_ID, PX_CSE1_ID & "/" & "S")); @@ -995,7 +995,7 @@ module OneM2M_Testcases_CSE_Release_1 { vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(PX_CSE_ID, -, -, -))); vc_cse1.done; - + tc_ac.start; alt { @@ -1079,7 +1079,7 @@ module OneM2M_Testcases_CSE_Release_1 { setverdict(fail, __SCOPE__ & "Resource ID not set correctly."); } - } + } [] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value v_response{ tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); @@ -1212,7 +1212,7 @@ module OneM2M_Testcases_CSE_Release_1 { var integer v_cseBaseIndex := -1; var ResourceType v_resourceType := int2; var universal charstring v_action := __SCOPE__ & ": Please, make sure that the following AppId is not allowed to register: " & PX_APP_ID; - + //Test control // Test component configuration @@ -1221,7 +1221,7 @@ module OneM2M_Testcases_CSE_Release_1 { //Preamble action(v_action); f_sleepIgnoreDef(PX_TCONFIG_IUT); - + // Test Body v_request := valueof(m_createAe(PX_NOT_ALLOWED_APP_ID, -, PX_AE1_ID_STEM, -, -)); @@ -2664,7 +2664,7 @@ module OneM2M_Testcases_CSE_Release_1 { if (PX_IN_CSE){ vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); } - + if (PX_MN_CSE){ vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSEBase); } @@ -2975,7 +2975,7 @@ module OneM2M_Testcases_CSE_Release_1 { // Preamble if (PX_MN_CSE){ - vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE); + vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE); } if (PX_IN_CSE){ @@ -3875,7 +3875,7 @@ module OneM2M_Testcases_CSE_Release_1 { }// end group g_CSE_DMR_CRE_008 group g_CSE_DMR_CRE_009 { - + /** * @desc Check that the IUT increaments and then copies the field value of attribute stateTag in parent container resource when contentInstance resource is created as the direct child of the parent container * @@ -4328,7 +4328,7 @@ module OneM2M_Testcases_CSE_Release_1 { }// end group g_CSE_DMR_CRE_013 group g_CSE_DMR_CRE_014 { - + /** * @desc Check that the IUT updates the currentByteSize attribute in a <container> parent resource when a new <contentInstance> resource is created. * @@ -5941,7 +5941,7 @@ module OneM2M_Testcases_CSE_Release_1 { } } - } // end g_CSE_DMR_UPD_008 + } // end g_CSE_DMR_UPD_008 group g_CSE_DMR_UPD_009{ @@ -6040,8 +6040,7 @@ module OneM2M_Testcases_CSE_Release_1 { // Test Body if(ispresent(vc_resourcesList[v_containerIndex].resource.container.stateTag)) { - v_updateRequest := f_getUpdateRequestPrimitive(int3, v_containerIndex, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int3, v_containerIndex, v_updateRequest); mcaPort.send(m_request(m_retrieve(f_getResourceAddress(v_containerIndex), f_getOriginator(v_containerIndex)))); @@ -7794,7 +7793,7 @@ module OneM2M_Testcases_CSE_Release_1 { var integer v_resourceIndex := -1; var integer v_childResourceIndex := -1; const ResourceType c_containerResourceType := int3; - + // Test control // Test component configuration @@ -9115,8 +9114,7 @@ module OneM2M_Testcases_CSE_Release_1 { v_setOfArcs_1.accessControlRule_list := {v_accessControlRule_1}; v_setOfArcs_2.accessControlRule_list := {v_accessControlRule_2}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs_1, v_setOfArcs_2)); - v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex1, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int1, v_acpIndex1, v_updateRequest); // Test Body v_updateRequest := valueof(m_updateAeBase); @@ -9208,8 +9206,7 @@ module OneM2M_Testcases_CSE_Release_1 { v_setOfArcs_1.accessControlRule_list := {v_accessControlRule_1}; v_setOfArcs_2.accessControlRule_list := {v_accessControlRule_2}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs_1, v_setOfArcs_2)); - v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex1, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int1, v_acpIndex1, v_updateRequest); // Test Body v_updateRequest := valueof(m_updateAeBase); @@ -9794,7 +9791,7 @@ module OneM2M_Testcases_CSE_Release_1 { // Tear down f_cf01Down(); } // end TC_CSE_DIS_001 - + /** * @desc Check that the IUT returns successfully appropriate list of discovered resource when the filter criteria is provided in the request * @@ -10209,7 +10206,7 @@ module OneM2M_Testcases_CSE_Release_1 { // Tear down f_cf01Down(); } // end TC_CSE_DIS_007 - + group g_CSE_DIS_008{ /** diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index 4ed95d7d698bc0a08df7d425d78f9a8a47b3076d..1b6a7bd56538b942f29c04539e3cb1d537adbe1d 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -6202,14 +6202,12 @@ module OneM2M_Testcases_CSE_Release_2 { vc_ae2.start(f_cse_notifyProcedure_aggregatedNoficationHandler(v_contentResponse, c_numberOfAggregatedNotification)); v_updateRequest.primitiveContent.aE.labels := v_labels_1; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 1 t_batchNotificationTimer.start; v_updateRequest := m_updateAeBase; v_updateRequest.primitiveContent.aE.appName := "MyAppName2"; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 2 vc_ae2.done; v_elapsedTime := t_batchNotificationTimer.read; @@ -6457,8 +6455,7 @@ module OneM2M_Testcases_CSE_Release_2 { // Test Body vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // AE update request - f_cse_updateResource(v_request); // AE update + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // AE update request f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); @@ -6549,8 +6546,7 @@ module OneM2M_Testcases_CSE_Release_2 { // Test Body vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // AE update request - f_cse_updateResource(v_request); // AE update + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // AE update request f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); @@ -6722,16 +6718,13 @@ module OneM2M_Testcases_CSE_Release_2 { vc_ae2.start(f_cse_notifyProcedure_aggregatedNoficationHandler(v_contentResponse, numberOfAggregatedNotification)); // check that no notification is received v_updateRequest.primitiveContent.aE.labels := v_labels_1; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 1 v_updateRequest.primitiveContent.aE.labels := v_labels_2; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 2 v_updateRequest.primitiveContent.aE.labels := v_labels_3; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 3 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 3 f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); @@ -6801,16 +6794,13 @@ module OneM2M_Testcases_CSE_Release_2 { vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs v_updateRequest.primitiveContent.aE.labels := v_labels_1; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 1 v_updateRequest.primitiveContent.aE.labels := v_labels_2; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 2 v_updateRequest.primitiveContent.aE.labels := v_labels_3; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 3 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 3 f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); @@ -7114,7 +7104,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_updateRequest := m_updateAcpBase; var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; - v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {f_getAnnouncementTargetPoA()}; + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int1, v_createRequestAnnc, omit, v_updateRequest));//AccessControlPolicy v_ae1.done; @@ -7126,7 +7116,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequest := m_createAcpBase; var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; - v_createRequest.primitiveContent.accessControlPolicy.announceTo := {f_getAnnouncementTargetPoA()}; + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int1, v_createRequestAnnc, v_createRequest, omit));//AccessControlPolicy v_ae1.done; @@ -7138,7 +7128,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_updateRequest := m_updateContainerBase; var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; - v_updateRequest.primitiveContent.container.announceTo := {f_getAnnouncementTargetPoA()}; + v_updateRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int3, v_createRequestAnnc, omit, v_updateRequest));//Container v_ae1.done; @@ -7150,7 +7140,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; - v_createRequest.primitiveContent.container.announceTo := {f_getAnnouncementTargetPoA()}; + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int3, v_createRequestAnnc, v_createRequest, omit));//Container v_ae1.done; @@ -7162,7 +7152,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_updateRequest := m_updateGroupBase; var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; - v_updateRequest.primitiveContent.group_.announceTo := {f_getAnnouncementTargetPoA()}; + v_updateRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int9, v_createRequestAnnc, omit, v_updateRequest));//Group v_ae1.done; @@ -7174,7 +7164,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequest := m_createGroupBase; var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; - v_createRequest.primitiveContent.group_.announceTo := {f_getAnnouncementTargetPoA()}; + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int9, v_createRequestAnnc, v_createRequest, omit));//Group v_ae1.done; @@ -7186,7 +7176,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequest := m_createContentInstanceBase; var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnncBase; - v_createRequest.primitiveContent.contentInstance.announceTo := {f_getAnnouncementTargetPoA()}; + v_createRequest.primitiveContent.contentInstance.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int4, v_createRequestAnnc, v_createRequest, omit));//ContentInstance v_ae1.done; @@ -7195,7 +7185,1904 @@ module OneM2M_Testcases_CSE_Release_2 { }// end group g_CSE_ANNC_001 }//end group Basic - }//end group Announcement + + group Create { + + group g_CSE_ANNC_CRE_001 { + + testcase TC_CSE_ANNC_CRE_001() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_ae1.start(f_CSE_ANNC_CRE_001(int3, v_createRequestAnnc, v_createRequest));//Container + v_ae1.done; + + } //end TC_CSE_ANNC_CRE_001 + } // end group g_CSE_ANNC_CRE_001 + + group g_CSE_ANNC_CRE_002 { + + testcase TC_CSE_ANNC_CRE_002_ACP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {f_getAnnouncementTargetPoA()}; + + v_cse1.start(f_CSE_ANNC_CRE_002(int1, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_002_CNT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + + v_updateRequest.primitiveContent.container.announceTo := {f_getAnnouncementTargetPoA()}; + + v_cse1.start(f_CSE_ANNC_CRE_002(int3, v_createRequestAnnc, v_updateRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_002_GRP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + + v_updateRequest.primitiveContent.group_.announceTo := {f_getAnnouncementTargetPoA()}; + + v_cse1.start(f_CSE_ANNC_CRE_002(int9, v_createRequestAnnc, v_updateRequest));//Group + v_cse1.done; + } + } //end group g_CSE_ANNC_CRE_002 + + group g_CSE_ANNC_CRE_003 { + + testcase TC_CSE_ANNC_CRE_003() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createContentInstanceBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc; + + v_createRequest.primitiveContent.contentInstance.announceTo := {PX_CSE1_ID}; + + v_ae1.start(f_CSE_ANNC_CRE_003(int4, v_createRequestAnnc, v_createRequest));//ContentInstance + v_ae1.done; + + } //end TC_CSE_ANNC_CRE_003 + + } //end group g_CSE_ANNC_CRE_003 + + group g_CSE_ANNC_CRE_004 { + + testcase TC_CSE_ANNC_CRE_004_ACP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_004_CseSimu(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_004_CNT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_004_CseSimu(int3, v_createRequestAnnc, v_createRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_004_CIN() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContentInstanceBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc; + + v_createRequest.primitiveContent.contentInstance.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_004_CseSimu(int4, v_createRequestAnnc, v_createRequest));//ContentInstance + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_004_GRP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_004_CseSimu(int9, v_createRequestAnnc, v_createRequest));//Group + v_cse1.done; + } + + }// end group g_CSE_ANNC_CRE_004 + + group g_CSE_ANNC_CRE_005 { + + testcase TC_CSE_ANNC_CRE_005_ACP() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_005_CseSimu(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_005_CNT() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_005_CseSimu(int3, v_createRequestAnnc, v_createRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_005_CIN() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContentInstanceBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc; + + v_createRequest.primitiveContent.contentInstance.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_005_CseSimu(int4, v_createRequestAnnc, v_createRequest));//ContentInstance + v_cse1.done; + + } + + testcase TC_CSE_ANNC_CRE_005_GRP() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_005_CseSimu(int9, v_createRequestAnnc, v_createRequest));//Group + v_cse1.done; + } + + } //end group g_CSE_ANNC_CRE_005 + + group g_CSE_ANNC_CRE_006 { + + testcase TC_CSE_ANNC_CRE_006_ACP() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_006_CseSimu(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_006_CNT() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_006_CseSimu(int3, v_createRequestAnnc, v_createRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_006_CIN() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContentInstanceBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc; + + v_createRequest.primitiveContent.contentInstance.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_006_CseSimu(int4, v_createRequestAnnc, v_createRequest));//ContentInstance + v_cse1.done; + + } + + testcase TC_CSE_ANNC_CRE_006_GRP() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_006_CseSimu(int9, v_createRequestAnnc, v_createRequest));//Group + v_cse1.done; + } + + } //end group g_CSE_ANNC_CRE_006 + + group g_CSE_ANNC_CRE_007 { + + testcase TC_CSE_ANNC_CRE_007_ACP() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_007_CseSimu(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_007_CNT() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_007_CseSimu(int3, v_createRequestAnnc, v_createRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_007_CIN() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContentInstanceBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc; + + v_createRequest.primitiveContent.contentInstance.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_007_CseSimu(int4, v_createRequestAnnc, v_createRequest));//ContentInstance + v_cse1.done; + + } + + testcase TC_CSE_ANNC_CRE_007_GRP() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_CRE_007_CseSimu(int9, v_createRequestAnnc, v_createRequest));//Group + v_cse1.done; + } + + } //end group g_CSE_ANNC_CRE_007 + + group g_CSE_ANNC_CRE_008 { + + testcase TC_CSE_ANNC_CRE_008_ACP_MBS() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.accessControlPolicy.announcedAttribute := {"maxByteSize"}; + + v_cse1.start(f_CSE_ANNC_CRE_008_CseSimu(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_007_CNT_CNF() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.announcedAttribute := {"contentInfo"}; + + v_cse1.start(f_CSE_ANNC_CRE_008_CseSimu(int3, v_createRequestAnnc, v_createRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_CRE_007_CIN_MT() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContentInstanceBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc; + + v_createRequest.primitiveContent.contentInstance.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.announcedAttribute := {"memberType"}; + + v_cse1.start(f_CSE_ANNC_CRE_008_CseSimu(int4, v_createRequestAnnc, v_createRequest));//ContentInstance + v_cse1.done; + + } + + testcase TC_CSE_ANNC_CRE_007_GRP_LOI() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.announcedAttribute := {"locationContainerID"}; + + v_cse1.start(f_CSE_ANNC_CRE_008_CseSimu(int9, v_createRequestAnnc, v_createRequest));//Group + v_cse1.done; + } + + } //end group g_CSE_ANNC_CRE_008 + + group g_CSE_ANNC_CRE_009 { + + testcase TC_CSE_ANNC_CRE_009_CNT() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.labels := {"MyLabel"}; + + v_cse1.start(f_CSE_ANNC_CRE_009_CseSimu(int3, v_createRequestAnnc, v_createRequest));//Container + v_cse1.done; + } + } //end group g_CSE_ANNC_CRE_009 + } //end group Create + + group Retrieve { + + group g_CSE_ANNC_RET_001 { + + testcase TC_CSE_ANNC_RET_001_ACP() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + + v_ae1.start(f_CSE_ANNC_RET_001(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy + v_ae1.done; + } + + testcase TC_CSE_ANNC_RET_001_CNT() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_001(int3, v_createRequestAnnc, v_createRequest));//Container + v_ae1.done; + } + + testcase TC_CSE_ANNC_RET_001_CIN() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createContentInstanceBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc; + + v_ae1.start(f_CSE_ANNC_RET_001(int4, v_createRequestAnnc, v_createRequest));//ContentInstance + v_ae1.done; + } + + testcase TC_CSE_ANNC_RET_001_GRP() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_001(int9, v_createRequestAnnc, v_createRequest));//Group + v_ae1.done; + } + + } //end group g_CSE_ANNC_RET_001 + + group g_CSE_ANNC_RET_002 { + + testcase TC_CSE_ANNC_RET_002_ACP() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + + v_ae1.start(f_CSE_ANNC_RET_002(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy + v_ae1.done; + } + + testcase TC_CSE_ANNC_RET_002_CNT() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_002(int3, v_createRequestAnnc, v_createRequest));//Container + v_ae1.done; + } + + testcase TC_CSE_ANNC_RET_002_CIN() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createContentInstanceBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc; + + v_ae1.start(f_CSE_ANNC_RET_002(int4, v_createRequestAnnc, v_createRequest));//ContentInstance + v_ae1.done; + } + + testcase TC_CSE_ANNC_RET_002_GRP() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_002(int9, v_createRequestAnnc, v_createRequest));//Group + v_ae1.done; + } + + } //end group g_CSE_ANNC_RET_002 + + } //end group Retrieve + + group Update{ + + group g_CSE_ANNC_UPD_001{ + + testcase TC_CSE_ANNC_UPD_001_ACP() runs on Tester system CseSystem { + // Local variables + var MnCseSimu v_cse1 := MnCseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_001(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_001_CNT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + + v_updateRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_001(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_001_GRP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + + v_updateRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_001(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group + v_cse1.done; + } + + }// end group g_CSE_ANNC_UPD_001 + + group g_CSE_ANNC_UPD_002{ + + testcase TC_CSE_ANNC_UPD_002_ACP() runs on Tester system CseSystem { + // Local variables + var MnCseSimu v_cse1 := MnCseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + var AttributeAux_list v_nullFields; + var ListOfURIs v_announceTo := {"To be deleted"}; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := v_announceTo; + v_nullFields := {{"announceTo", omit}}; + + v_cse1.start(f_CSE_ANNC_UPD_002(int1, v_createRequest, v_createRequestAnnc, v_updateRequest, v_nullFields));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_002_CNT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var AttributeAux_list v_nullFields; + var ListOfURIs v_announceTo := {"To be deleted"}; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_updateRequest.primitiveContent.container.announceTo := v_announceTo; + v_nullFields := {{"announceTo", omit}}; + + v_cse1.start(f_CSE_ANNC_UPD_002(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_nullFields));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_002_GRP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var AttributeAux_list v_nullFields; + var ListOfURIs v_announceTo := {"To be deleted"}; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_updateRequest.primitiveContent.group_.announceTo := v_announceTo; + v_nullFields := {{"announceTo", omit}}; + + v_cse1.start(f_CSE_ANNC_UPD_002(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_nullFields));//Group + v_cse1.done; + } + + }// end group g_CSE_ANNC_UPD_002 + + group g_CSE_ANNC_UPD_003{ + + testcase TC_CSE_ANNC_UPD_003_ACP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + var ResponsePrimitive v_responsePrimitive; + var AttributeAux_list v_nullFields; + var ListOfURIs v_announceTo := {"To be deleted"}; + var PrimitiveContent v_primitiveContentRetrieveResource; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := v_announceTo; + v_nullFields := {{"announceTo", omit}}; + + v_ae1.start(f_CSE_ANNC_UPD_003(int1, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields));//AccessControlPolicy + v_ae1.done; + + if(getverdict == pass){ + v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(ispresent(v_responsePrimitive.primitiveContent)) { + if(ischosen(v_responsePrimitive.primitiveContent.accessControlPolicy)) { + if(ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy.announceTo)){ + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL"); + } + } + } + + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + + //Check that the resource has been udpated correctly + if(ischosen(v_primitiveContentRetrieveResource.accessControlPolicy)) { + if(ispresent(v_primitiveContentRetrieveResource.accessControlPolicy.announceTo)){ + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute not updated correctly"); + } + } + } + + } + + testcase TC_CSE_ANNC_UPD_003_CNT() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var ResponsePrimitive v_responsePrimitive; + var AttributeAux_list v_nullFields; + var ListOfURIs v_announceTo := {"To be deleted"}; + var PrimitiveContent v_primitiveContentRetrieveResource; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_updateRequest.primitiveContent.container.announceTo := v_announceTo; + v_nullFields := {{"announceTo", omit}}; + + v_ae1.start(f_CSE_ANNC_UPD_003(int3, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields));//Container + v_ae1.done; + + if(getverdict == pass){ + v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(ispresent(v_responsePrimitive.primitiveContent)) { + if(ischosen(v_responsePrimitive.primitiveContent.container)) { + if(ispresent(v_responsePrimitive.primitiveContent.container.announceTo)){ + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL"); + } + } + } + + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + + //Check that the resource has been udpated correctly + if(ischosen(v_primitiveContentRetrieveResource.container)) { + if(ispresent(v_primitiveContentRetrieveResource.container.announceTo)){ + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute not updated correctly"); + } + } + } + + } + + testcase TC_CSE_ANNC_UPD_003_GRP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var ResponsePrimitive v_responsePrimitive; + var AttributeAux_list v_nullFields; + var ListOfURIs v_announceTo := {"To be deleted"}; + var PrimitiveContent v_primitiveContentRetrieveResource; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_updateRequest.primitiveContent.group_.announceTo := v_announceTo; + v_nullFields := {{"announceTo", omit}}; + + v_ae1.start(f_CSE_ANNC_UPD_003(int9, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields));//Group + v_ae1.done; + + if(getverdict == pass){ + v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(ispresent(v_responsePrimitive.primitiveContent)) { + if(ischosen(v_responsePrimitive.primitiveContent.group_)) { + if(ispresent(v_responsePrimitive.primitiveContent.group_.announceTo)){ + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL"); + } + } + } + + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + + //Check that the resource has been udpated correctly + if(ischosen(v_primitiveContentRetrieveResource.group_)) { + if(ispresent(v_primitiveContentRetrieveResource.group_.announceTo)){ + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute not updated correctly"); + } + } + } + } + + }// end group g_CSE_ANNC_UPD_003 + + group g_CSE_ANNC_UPD_004 { + + testcase TC_CSE_ANNC_UPD_004_ACP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + v_updateRequest.primitiveContent.accessControlPolicy.announcedAttribute := {"ToBeDeleted"}; + v_updateRequest.primitiveContent.accessControlPolicy.parentID := PX_CSE1_ID; + + v_cse1.start(f_CSE_ANNC_UPD_004(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_004_CNT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + + v_updateRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_updateRequest.primitiveContent.container.announcedAttribute := {"ToBeDeleted"}; + v_updateRequest.primitiveContent.container.parentID := PX_CSE1_ID; + + v_cse1.start(f_CSE_ANNC_UPD_004(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_004_GRP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + + v_updateRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_updateRequest.primitiveContent.group_.announcedAttribute := {"ToBeDeleted"}; + v_updateRequest.primitiveContent.group_.parentID := PX_CSE1_ID; + + v_cse1.start(f_CSE_ANNC_UPD_004(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group + v_cse1.done; + } + } // end group g_CSE_ANNC_UPD_004 + + group g_CSE_ANNC_UPD_005 { + + testcase TC_CSE_ANNC_UPD_005() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnnc; + var RequestPrimitive v_requestPrimitive; + var Labels v_labels_1 := {"VALUE_1"}; + var AttributeAux_list v_nullFields; + var Labels v_labels_2 := {"To be deleted"}; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.labels := v_labels_1; + + v_updateRequest.primitiveContent.container.labels := v_labels_2; + v_nullFields := {{"labels", omit}}; + + v_cse1.start(f_CSE_ANNC_UPD_005(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc, v_nullFields));//Container + v_cse1.done; + + if(getverdict == pass){ + v_requestPrimitive := f_getRequestPrimitive(v_cse1); + if(ispresent(v_requestPrimitive.primitiveContent)) { + if(ischosen(v_requestPrimitive.primitiveContent.containerAnnc)) { + if(ispresent(v_requestPrimitive.primitiveContent.containerAnnc.labels)){ + setverdict(fail, __SCOPE__ & ": Error: labels attribute is not set to NULL"); + } + } + } + + } + + } + } // end group g_CSE_ANNC_UPD_005 + + group g_CSE_ANNC_UPD_006 { + + testcase TC_CSE_ANNC_UPD_006_ACP() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_006(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_006_CNT() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + + v_updateRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_006(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_006_GRP() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + + v_updateRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_006(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group + v_cse1.done; + } + }// end group g_CSE_ANNC_UPD_006 + + group g_CSE_ANNC_UPD_007 { + + testcase TC_CSE_ANNC_UPD_007_ACP() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_007(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_007_CNT() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + + v_updateRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_007(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_007_GRP() runs on Tester system CseSystem { + //Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + + v_updateRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_007(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group + v_cse1.done; + } + } //end group g_CSE_ANNC_UPD_007 + + group g_CSE_ANNC_UPD_008 { + + testcase TC_CSE_ANNC_UPD_008_CNT_MBS() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var ResponsePrimitive v_responsePrimitive; + var AttributeAux_list v_nullFields; + var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; + var PrimitiveContent v_primitiveContentRetrieveResource; + var XSD.NonNegativeInteger v_maxByteSize := 512; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize; + v_createRequest.primitiveContent.container.announcedAttribute := v_announcedAttribute; + + v_updateRequest.primitiveContent.container.announcedAttribute := {"maxByteSize"}; + + v_ae1.start(f_CSE_ANNC_UPD_008(int3, v_createRequestAnnc, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(ispresent(v_responsePrimitive.primitiveContent)) { + if(ischosen(v_responsePrimitive.primitiveContent.container)) { + if(ispresent(v_responsePrimitive.primitiveContent.container.announcedAttribute)){ + setverdict(pass, __SCOPE__ & ": announcedAttribute attribute is present"); + } else { + setverdict(fail, __SCOPE__ & ": announcedAttribute attribute is not present"); + } + } + } + + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + + //Check that the resource has been udpated correctly + if(ischosen(v_primitiveContentRetrieveResource.container)) { + if(ispresent(v_primitiveContentRetrieveResource.container.announcedAttribute)){ + setverdict(pass, __SCOPE__ & "announcedAttribute attribute updated correctly"); + } else { + setverdict(fail, __SCOPE__ & "announcedAttribute attribute not updated correctly"); + } + } + } + } + + testcase TC_CSE_ANNC_UPD_008_GRP_MT() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var ResponsePrimitive v_responsePrimitive; + var AttributeAux_list v_nullFields; + var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; + var PrimitiveContent v_primitiveContentRetrieveResource; + var MemberType v_memberType := int3; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.group_.memberType := v_memberType; + v_createRequest.primitiveContent.group_.announcedAttribute := v_announcedAttribute; + + v_updateRequest.primitiveContent.group_.announcedAttribute := {"memberType"}; + + v_ae1.start(f_CSE_ANNC_UPD_008(int9, v_createRequestAnnc, v_createRequest, v_updateRequest));//Group + v_ae1.done; + + if(getverdict == pass){ + v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(ispresent(v_responsePrimitive.primitiveContent)) { + if(ischosen(v_responsePrimitive.primitiveContent.group_)) { + if(ispresent(v_responsePrimitive.primitiveContent.group_.announcedAttribute)){ + setverdict(pass, __SCOPE__ & ": announcedAttribute attribute is present"); + } else { + setverdict(fail, __SCOPE__ & ": announcedAttribute attribute is not present"); + } + } + } + + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + + //Check that the resource has been udpated correctly + if(ischosen(v_primitiveContentRetrieveResource.group_)) { + if(ispresent(v_primitiveContentRetrieveResource.group_.announcedAttribute)){ + setverdict(pass, __SCOPE__ & "announcedAttribute attribute updated correctly"); + } else { + setverdict(fail, __SCOPE__ & "announcedAttribute attribute not updated correctly"); + } + } + } + } + } //end group g_CSE_ANNC_UPD_008 + + group g_CSE_ANNC_UPD_009{ + + testcase TC_CSE_ANNC_UPD_009_CNT_MBS() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnnc; + var XSD.NonNegativeInteger v_maxByteSize := 512; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize; + + v_createRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize; + + v_updateRequest.primitiveContent.container.announcedAttribute := {"maxByteSize"}; + + v_updateRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize; + + v_cse1.start(f_CSE_ANNC_UPD_009(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_009_GRP_MT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateGroupAnnc; + var MemberType v_memberType := int3; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.group_.memberType := v_memberType; + + v_createRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType; + + v_updateRequest.primitiveContent.group_.announcedAttribute := {"memberType"}; + + v_updateRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType; + + v_cse1.start(f_CSE_ANNC_UPD_009(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group + v_cse1.done; + } + + }// end group g_CSE_ANNC_UPD_009 + + group g_CSE_ANNC_UPD_010{ + + testcase TC_CSE_ANNC_UPD_010_ACP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateAccessControlPolicyAnnc; + var Timestamp v_expirationTime_1 := "21001231T012345"; + var Timestamp v_expirationTime_2 := "21101231T012345"; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.accessControlPolicy.expirationTime := v_expirationTime_1; + + v_createRequestAnnc.primitiveContent.accessControlPolicyAnnc.expirationTime := v_expirationTime_1; + + v_updateRequest.primitiveContent.accessControlPolicy.expirationTime := v_expirationTime_2; + + v_updateRequestAnnc.primitiveContent.accessControlPolicyAnnc.expirationTime := v_expirationTime_2; + + v_cse1.start(f_CSE_ANNC_UPD_010(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_010_CNT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnnc; + var Timestamp v_expirationTime_1 := "21001231T012345"; + var Timestamp v_expirationTime_2 := "21101231T012345"; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.expirationTime := v_expirationTime_1; + + v_createRequestAnnc.primitiveContent.containerAnnc.expirationTime := v_expirationTime_1; + + v_updateRequest.primitiveContent.container.expirationTime := v_expirationTime_2; + + v_updateRequestAnnc.primitiveContent.containerAnnc.expirationTime := v_expirationTime_2; + + v_cse1.start(f_CSE_ANNC_UPD_010(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_010_GRP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateGroupAnnc; + var Timestamp v_expirationTime_1 := "21001231T012345"; + var Timestamp v_expirationTime_2 := "21101231T012345"; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.group_.expirationTime := v_expirationTime_1; + + v_createRequestAnnc.primitiveContent.groupAnnc.expirationTime := v_expirationTime_1; + + v_updateRequest.primitiveContent.group_.expirationTime := v_expirationTime_2; + + v_updateRequestAnnc.primitiveContent.groupAnnc.expirationTime := v_expirationTime_2; + + v_cse1.start(f_CSE_ANNC_UPD_010(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group + v_cse1.done; + } + + }// end group g_CSE_ANNC_UPD_010 + + group g_CSE_ANNC_UPD_011{ + + testcase TC_CSE_ANNC_UPD_011_CNT_MBS() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnnc; + var XSD.NonNegativeInteger v_maxByteSize_1 := 512; + var XSD.NonNegativeInteger v_maxByteSize_2 := 1024; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize_1; + v_createRequest.primitiveContent.container.announcedAttribute := {"maxByteSize"}; + + v_createRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize_1; + + v_updateRequest.primitiveContent.container.maxByteSize := v_maxByteSize_2; + + v_updateRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize_2; + + v_cse1.start(f_CSE_ANNC_UPD_011(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_011_GRP_MT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateGroupAnnc; + var MemberType v_memberType_1 := int3; + var MemberType v_memberType_2 := int4; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.group_.memberType := v_memberType_1; + v_createRequest.primitiveContent.group_.announcedAttribute := {"memberType"}; + + v_createRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType_1; + + v_updateRequest.primitiveContent.group_.memberType := v_memberType_2; + + v_updateRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType_2; + + v_cse1.start(f_CSE_ANNC_UPD_011(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group + v_cse1.done; + } + + }// end group g_CSE_ANNC_UPD_011 + + group g_CSE_ANNC_UPD_012{ + + testcase TC_CSE_ANNC_UPD_012_CNT_MBS() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnnc; + var RequestPrimitive v_requestPrimitive; + var XSD.NonNegativeInteger v_maxByteSize := 512; + var AttributeAux_list v_nullFields; + var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize; + v_createRequest.primitiveContent.container.announcedAttribute := {"maxByteSize"}; + + v_createRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize; + + v_updateRequest.primitiveContent.container.announcedAttribute := v_announcedAttribute; + v_nullFields := {{"announcedAttribute", omit}}; + + v_cse1.start(f_CSE_ANNC_UPD_012(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc, v_nullFields));//Container + v_cse1.done; + + if(getverdict == pass){ + v_requestPrimitive := f_getRequestPrimitive(v_cse1); + if(ispresent(v_requestPrimitive.primitiveContent)) { + if(ischosen(v_requestPrimitive.primitiveContent.containerAnnc)) { + if(ispresent(v_requestPrimitive.primitiveContent.containerAnnc.maxByteSize)){ + setverdict(fail, __SCOPE__ & ": Error: maxByteSize attribute is not set to NULL"); + } + } + } + + } + + } + + testcase TC_CSE_ANNC_UPD_012_GRP_MT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateGroupAnnc; + var RequestPrimitive v_requestPrimitive; + var MemberType v_memberType := int3; + var AttributeAux_list v_nullFields; + var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.group_.memberType := v_memberType; + v_createRequest.primitiveContent.group_.announcedAttribute := {"memberType"}; + + v_createRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType; + + v_updateRequest.primitiveContent.group_.announcedAttribute := v_announcedAttribute; + v_nullFields := {{"announcedAttribute", omit}}; + + v_cse1.start(f_CSE_ANNC_UPD_012(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc, v_nullFields));//Group + v_cse1.done; + + if(getverdict == pass){ + v_requestPrimitive := f_getRequestPrimitive(v_cse1); + if(ispresent(v_requestPrimitive.primitiveContent)) { + if(ischosen(v_requestPrimitive.primitiveContent.groupAnnc)) { + if(ispresent(v_requestPrimitive.primitiveContent.groupAnnc.memberType)){ + setverdict(fail, __SCOPE__ & ": Error: memberType attribute is not set to NULL"); + } + } + } + + } + } + + }// end group g_CSE_ANNC_UPD_012 + + group g_CSE_ANNC_UPD_013{ + + testcase TC_CSE_ANNC_UPD_013_CNT_MBS() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var ResponsePrimitive v_responsePrimitive; + var AttributeAux_list v_nullFields; + var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; + var PrimitiveContent v_primitiveContentRetrieveResource; + var XSD.NonNegativeInteger v_maxByteSize := 512; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize; + v_createRequest.primitiveContent.container.announcedAttribute := {"maxByteSize"}; + + v_updateRequest.primitiveContent.container.announcedAttribute := v_announcedAttribute; + v_nullFields := {{"announcedAttribute", omit}}; + + v_ae1.start(f_CSE_ANNC_UPD_013(int3, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields));//Container + v_ae1.done; + + if(getverdict == pass){ + v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(ispresent(v_responsePrimitive.primitiveContent)) { + if(ischosen(v_responsePrimitive.primitiveContent.container)) { + if(ispresent(v_responsePrimitive.primitiveContent.container.announcedAttribute)){ + setverdict(fail, __SCOPE__ & ": Error: announcedAttribute attribute is not set to NULL"); + } + } + } + + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + + //Check that the resource has been udpated correctly + if(ischosen(v_primitiveContentRetrieveResource.container)) { + if(ispresent(v_primitiveContentRetrieveResource.container.announcedAttribute)){ + setverdict(fail, __SCOPE__ & ": Error: announcedAttribute attribute not updated correctly"); + } + } + } + + } + + testcase TC_CSE_ANNC_UPD_013_GRP_MT() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var ResponsePrimitive v_responsePrimitive; + var AttributeAux_list v_nullFields; + var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; + var PrimitiveContent v_primitiveContentRetrieveResource; + var MemberType v_memberType := int3; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.group_.memberType := v_memberType; + v_createRequest.primitiveContent.group_.announcedAttribute := {"memberType"}; + + v_updateRequest.primitiveContent.group_.announcedAttribute := v_announcedAttribute; + v_nullFields := {{"announcedAttribute", omit}}; + + v_ae1.start(f_CSE_ANNC_UPD_013(int9, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields));//Group + v_ae1.done; + + if(getverdict == pass){ + v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(ispresent(v_responsePrimitive.primitiveContent)) { + if(ischosen(v_responsePrimitive.primitiveContent.group_)) { + if(ispresent(v_responsePrimitive.primitiveContent.group_.announcedAttribute)){ + setverdict(fail, __SCOPE__ & ": Error: announcedAttribute attribute is not set to NULL"); + } + } + } + + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + + //Check that the resource has been udpated correctly + if(ischosen(v_primitiveContentRetrieveResource.group_)) { + if(ispresent(v_primitiveContentRetrieveResource.group_.announcedAttribute)){ + setverdict(fail, __SCOPE__ & ": Error: announcedAttribute attribute not updated correctly"); + } + } + } + } + + }// end group g_CSE_ANNC_UPD_013 + + group g_CSE_ANNC_UPD_014{ + + testcase TC_CSE_ANNC_UPD_014_CNT() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var ResponsePrimitive v_responsePrimitive; + + v_updateRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_ae1.start(f_CSE_ANNC_UPD_014(int3, v_createRequestAnnc, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(ispresent(v_responsePrimitive.primitiveContent)) { + if(ischosen(v_responsePrimitive.primitiveContent.container)) { + if(ispresent(v_responsePrimitive.primitiveContent.container.announcedAttribute)){ + setverdict(fail, __SCOPE__ & ": Error: announcedAttribute attribute is not set to NULL"); + } + } + } + } + } + } //end group g_CSE_ANNC_UPD_014 + }//end group Update + + group Delete{ + + group g_CSE_ANNC_DEL_001{ + + testcase TC_CSE_ANNC_DEL_001_ACP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_ae1.start(f_CSE_ANNC_DEL_001(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy + v_ae1.done; + } + + testcase TC_CSE_ANNC_DEL_001_CNT() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_ae1.start(f_CSE_ANNC_DEL_001(int3, v_createRequestAnnc, v_createRequest));//Container + v_ae1.done; + } + + testcase TC_CSE_ANNC_DEL_001_GRP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_ae1.start(f_CSE_ANNC_DEL_001(int9, v_createRequestAnnc, v_createRequest));//Group + v_ae1.done; + } + + }// end group g_CSE_ANNC_DEL_001 + + group g_CSE_ANNC_DEL_002{ + + testcase TC_CSE_ANNC_DEL_002_ACP() runs on Tester system CseSystem { + // Local variables + var MnCseSimu v_cse1 := MnCseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_DEL_002(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_DEL_002_CNT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_DEL_002(int3, v_createRequestAnnc, v_createRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_DEL_002_GRP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_DEL_002(int9, v_createRequestAnnc, v_createRequest));//Group + v_cse1.done; + } + + }// end group g_CSE_ANNC_DEL_002 + }//end group Delete + + }//end group Announcement + + group PollingChannel { + + /** + * @desc Check that the IUT which hosts <pollingChannel> resource forwards a Notify request successfully to a target AE, once the IUT receives a polling request from AE (retrieve request to <pollingChannelURI> resource) + * + */ + testcase TC_CSE_PCH_001() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_CSE_PCH_001()); + + v_ae1.done; + + } + + function f_CSE_PCH_001() runs on AeSimu { + // Local variables + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + var MsgIn v_response; + var RequestPrimitive v_requestNotify; + + // Test control + + // Test component configuration + f_cf02Up(); + + // Test adapter configuration + + // Preamble + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; + + v_resourceIndex := f_cse_createResource(int15, m_createPollingChannelBase, v_aeIndex); + + v_request := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); + mcaPort.send(m_request(v_request)); + + v_requestNotify := valueof(m_notify(f_getResourceAddress(v_aeIndex))); + + vc_cse1.start(f_cse_notifyProcedure_notify(v_requestNotify)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePollingResponse(v_requestNotify))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Polling response received"); + } + [] mcaPort.receive(mw_response(mw_responsePollingResponse)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Content not carrying request targeting AE1"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + } // end TC_CSE_PCH_001 + + /** + * @desc Check that the IUT which hosts <pollingChannel> resource forwards a Notify request successfully to a target AE, once the IUT receives a polling request from AE + * + */ + testcase TC_CSE_PCH_002() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_CSE_PCH_002()); + + v_ae1.done; + + } + + function f_CSE_PCH_002() runs on AeSimu { + // Local variables + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + var MsgIn v_response; + var RequestPrimitive v_requestNotify; + + // Test control + + // Test component configuration + f_cf02Up(); + + // Test adapter configuration + + // Preamble + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; + + v_resourceIndex := f_cse_createResource(int15, m_createPollingChannelBase, v_aeIndex); + + v_requestNotify := valueof(m_notify(f_getResourceAddress(v_aeIndex))); + + vc_cse1.start(f_cse_notifyProcedure_notify(v_requestNotify)); + + v_request := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); + mcaPort.send(m_request(v_request)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePollingResponse(v_requestNotify))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Polling response received"); + } + [] mcaPort.receive(mw_response(mw_responsePollingResponse)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Content not carrying request targeting AE1"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + } // end TC_CSE_PCH_002 + + testcase TC_CSE_PCH_003() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_CSE_PCH_003()); + + v_ae1.done; + + } + + function f_CSE_PCH_003() runs on AeSimu { + //Local variables + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + var MsgIn v_response; + var RequestPrimitive v_requestNotify; + + // Test control + + + // Test component configuration + f_cf02Up(); + + // Test adapter configuration + + // Preamble + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; + + v_resourceIndex := f_cse_createResource(int15, m_createPollingChannelBase, v_aeIndex); + + v_request := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); + mcaPort.send(m_request(v_request)); + + v_requestNotify := valueof(m_notify(f_getResourceAddress(v_aeIndex))); + vc_cse1.start(f_cse_notifyProcedure_notify(v_requestNotify)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePollingResponse(v_requestNotify))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Polling response received"); + } + [] mcaPort.receive(mw_response(mw_responsePollingResponse)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Content not carrying request targeting AE1"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); + } + } + + mcaPort.send(m_request(v_requestNotify)); + + //Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + } + + testcase TC_CSE_PCH_004() runs on Tester system CseSystem { + + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_cse1.start(f_CSE_PCH_004()); + + v_cse1.done; + } + + function f_CSE_PCH_004() runs on CseSimu { + //Local variables + var integer v_cseIndex := -1; + var integer v_resourceIndex := -1; + var MsgIn v_request; + var ResponsePrimitive v_response; + var template UtTriggerPrimitive v_utRequest1 := m_utCreatePollingChannel; + var template UtTriggerPrimitive v_utRequest2; + var charstring v_action1 := "Please, send a Polling Channel request"; + var charstring v_action2 := "Please, send a Retrieve Polling Channel request"; + var RequestPrimitive v_requestNotify; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + + // Preamble + vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //send triggering primitive to SUT + f_sendUtPrimitive(v_utRequest1,v_action1); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(m_createPollingChannelBase)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__&":INFO: Resource type Polling Channel created successfuly"); + } + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__&":INFO: No request received for creating resource type Polling Channel"); + } + } + + v_utRequest2 := m_utRetrievePollingChannel(f_getResourceAddress(v_cseIndex)); + //send triggering primitive to SUT + f_sendUtPrimitive(v_utRequest2,v_action2); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(m_retrievePollingRequest(f_getResourceAddress(v_cseIndex), f_getOriginator(v_cseIndex)))) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__&":INFO: Resource type Polling Channel retrieved successfuly"); + v_response := valueof(m_responsePrimitive(int2000,v_request.primitive.requestPrimitive.requestIdentifier)); + v_response.from_ := PX_CSE1_ID; + v_response.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(m_response(v_response)); + } + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__&":INFO: No request received for creating resource type Polling Channel"); + } + } + + v_requestNotify := valueof(m_notify(f_getResourceAddress(v_cseIndex))); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(v_requestNotify)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": NOTIFY request received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while expecting NOTIFY request"); + } + } + + //Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + } + + group g_CSE_PCH_005 { + + testcase TC_CSE_PCH_005_CRE() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_request; + var integer v_aeIndex1 := -1; + var integer v_aeIndex2 := -1; + var template RequestPrimitive v_createRequest := m_createPollingChannelBase; + + + v_request := f_getCreateRequestPrimitive(int15, v_createRequest, v_aeIndex1); + v_request.to_ := f_getResourceAddress(v_aeIndex2); + + v_ae1.start(f_CSE_PCH_005(v_aeIndex1, v_aeIndex2, v_request)); + v_ae1.done; + + } + + testcase TC_CSE_PCH_005_RET() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_request; + var integer v_aeIndex1 := -1; + var integer v_aeIndex2 := -1; + var template RequestPrimitive v_createRequest := m_createPollingChannelBase; + + + v_request := f_getCreateRequestPrimitive(int15, v_createRequest, v_aeIndex1); + + v_request := valueof(m_retrievePollingRequest(f_getResourceAddress(v_aeIndex1), f_getOriginator(v_aeIndex1))); + v_request.to_ := f_getResourceAddress(v_aeIndex2); + + v_ae1.start(f_CSE_PCH_005(v_aeIndex1, v_aeIndex2, v_request)); + v_ae1.done; + } + + testcase TC_CSE_PCH_005_UPD() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + var RequestPrimitive v_request; + var integer v_aeIndex1 := -1; + var integer v_aeIndex2 := -1; + var template RequestPrimitive v_createRequest := m_createPollingChannelBase; + + + v_request := f_getCreateRequestPrimitive(int15, v_createRequest, v_aeIndex1); + + + v_request := valueof(m_updatePollingChannelBase); + v_request.to_ := f_getResourceAddress(v_aeIndex2); + + v_ae1.start(f_CSE_PCH_005(v_aeIndex1, v_aeIndex2, v_request)); + v_ae1.done; + + } + + testcase TC_CSE_PCH_005_DEL() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + var RequestPrimitive v_request; + var integer v_aeIndex1 := -1; + var integer v_aeIndex2 := -1; + var template RequestPrimitive v_createRequest := m_createPollingChannelBase; + + + v_request := f_getCreateRequestPrimitive(int15, v_createRequest, v_aeIndex1); + + + v_request := valueof(m_deletePollingChannelBase(f_getResourceAddress(v_aeIndex1))); + v_request.to_ := f_getResourceAddress(v_aeIndex2); + + v_ae1.start(f_CSE_PCH_005(v_aeIndex1, v_aeIndex2, v_request)); + v_ae1.done; + + } + + function f_CSE_PCH_005(inout integer p_aeIndex1, inout integer p_aeIndex2, RequestPrimitive p_requestprimitive) runs on AeSimu { + + //Local variables + var integer v_aeIndex1 := -1; + var integer v_aeIndex2 := -1; + var integer v_resourceIndex := -1; + var integer v_acpAuxIndex := -1; + var RequestPrimitive v_request; + var MsgIn v_response; + var RequestPrimitive v_requestNotify; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_acpAuxIndex := f_cse_preamble_createAcpAux(-, int63);//c_CUDNDi) + + p_aeIndex1 := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -);//c_CRDNDi); + + p_aeIndex2 := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -);//c_CRDNDi); + + //v_resourceIndex := f_cse_createResource(int15, m_createPollingChannelBase, v_aeIndex); + mcaPort.send(m_request(p_requestprimitive)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) { + tc_ac.stop; + setverdict(pass, __SCOPE__&":INFO: Polling Resource type not created as originator has no privilege"); + } + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__&":INFO: No answer while creating polling resource type"); + } + } + + + } + } //end group g_CSE_PCH_005 + + /** + * @desc Check that the IUT sends the response with a status to the CSE1 when the request expires according to its Request Expiration Timestamp + * + */ + testcase TC_CSE_PCH_006() runs on Tester system CseSystem { + + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_cse1.start(f_CSE_PCH_006()); + + v_cse1.done; + + } + + function f_CSE_PCH_006() runs on CseSimu { + // Local variables + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + var MsgIn v_response; + var RequestPrimitive v_requestNotify; + + // Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + + // Preamble + vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); + + vc_ae1.start(f_cse_preamble_registerAe());//AE1 is registred; + vc_ae1.done; + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getResource(vc_ae1); + + vc_ae1.start(f_cse_createResource(int15, m_createPollingChannelBase, v_aeIndex));//PollingChannel is created; + vc_ae1.done; + + v_requestNotify := valueof(m_notify(f_getResourceAddress(v_aeIndex))); + v_request.from_ := PX_CSE1_ID; + + mccPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mccPort.receive(mw_response(mw_responsePrimitive(int4108))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":Response status code set to 4108 (REQUEST_TIMEOUT)"); + } + [] mccPort.receive(mw_response()) { + tc_ac.stop; + setverdict(inconc, __SCOPE__&":INFO: Unexpected message received"); + } + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__&":INFO: No answer while performing notification"); + } + } + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + } // end f_CSE_PCH_006 + + }//end group PollingChannel + group Non_Blocking_Requests{ @@ -7216,7 +9103,7 @@ module OneM2M_Testcases_CSE_Release_2 { v_ae1.done; } - + testcase TC_CSE_NBR_SYN_001_UPD() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; @@ -7571,8 +9458,405 @@ module OneM2M_Testcases_CSE_Release_2 { }// end group Asynchronous }// end group Non_Blocking_Requests + + group Device_Management { + group timeSeries { + + /** + * @desc Check that the IUT inserts the dataGenerationTime informantion of a missing data point and increases the missingDataCurrentNr attribute when a missing data point is detected + * + */ + testcase TC_CSE_TS_001() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_CSE_TS_001()); + + v_ae1.done; + + } + + function f_CSE_TS_001() runs on AeSimu return ResponsePrimitive { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + + v_aeIndex := f_cse_preamble_registerAe(); + + v_resourceIndex := f_cse_createResource(int29, m_createTimeSeries(-, -, 5, -, 2000), v_aeIndex); + + //Create data points and force a missingDataPoint + f_cse_generateMissingDataPoint(v_resourceIndex); + // Test Body + mcaPort.send(m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Response OK for retrieving"); + if(not(ispresent(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataList))) { + setverdict(fail, __SCOPE__ & ": missingDataList attribute not present"); + } + if(not(ispresent(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataCurrentNr))) { + setverdict(fail, __SCOPE__ & ": missingDataCurrentNr attribute not present"); + } else { + if(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataCurrentNr != 1) { + setverdict(fail, __SCOPE__ & ": missingDataCurrentNr attribute wrong value"); + } + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK())) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + return vc_response.primitive.responsePrimitive; + + }//end f_CSE_DMR_TS_001 + + /** + * @desc Check that the IUT removes the oldest element in MissingDataList when MissingDataCurrentNr reaches MissingDataMaxNr to enable insertion of a new missing data point + * + */ + testcase TC_CSE_TS_002() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_CSE_TS_002()); + + v_ae1.done; + + } + + function f_CSE_TS_002() runs on AeSimu return ResponsePrimitive { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request := valueof(m_createTimeSeriesBase); + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var Timestamp v_missingDataPointTimestamp; + var XSD.Long v_missingDataPointRel; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + + v_aeIndex := f_cse_preamble_registerAe(); + + v_resourceIndex := f_cse_createResource(int29, m_createTimeSeries(-, -, 5, 1, 2000), v_aeIndex); + + //Create data points and force a missingDataPoint + f_cse_generateMissingDataPoint(v_resourceIndex); + + //Retrieve first missing data point + mcaPort.send(m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Response OK for retrieving"); + if(not(ispresent(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataList))) { + setverdict(inconc, __SCOPE__ & ": missingDataList attribute not present"); + } else { + if(ischosen(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataList.alt_)) { + v_missingDataPointTimestamp := v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataList.alt_[0]; + } else { + v_missingDataPointRel := v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataList.alt_1[0]; + } + } + if(not(ispresent(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataCurrentNr))) { + setverdict(inconc, __SCOPE__ & ": missingDataCurrentNr attribute not present"); + } else { + if(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataCurrentNr != 1) { + setverdict(inconc, __SCOPE__ & ": missingDataCurrentNr attribute wrong value"); + } + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK())) -> value v_response { + tc_ac.stop; + setverdict(inconc, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(inconc, __SCOPE__ & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__ & ": No answer while retrieving resource"); + } + } + + f_checkAeSimuStatus(); + + //Test body + //Create data points and force a second missingDataPoint + f_cse_generateMissingDataPoint(v_resourceIndex); + + //Retrieve second missing data point + mcaPort.send(m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); - }//end group CSE + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Response OK for retrieving"); + if(not(ispresent(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataList))) { + setverdict(inconc, __SCOPE__ & ": missingDataList attribute not present"); + } else { + if(ischosen(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataList.alt_)) { + if(v_missingDataPointTimestamp < v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataList.alt_[0]) { + setverdict(pass, __SCOPE__ & ": missingData point inserted in missingDataList"); + } else { + setverdict(fail, __SCOPE__ & ": missingData point not inserted in missingDataList"); + } + } else { + if(v_missingDataPointRel < v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataList.alt_1[0]) { + setverdict(pass, __SCOPE__ & ": missingData point inserted in missingDataList"); + } else { + setverdict(fail, __SCOPE__ & ": missingData point not inserted in missingDataList"); + } + } + } + if(not(ispresent(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataCurrentNr))) { + setverdict(fail, __SCOPE__ & ": missingDataCurrentNr attribute not present"); + } else { + if(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.missingDataCurrentNr != 1) { + setverdict(fail, __SCOPE__ & ": missingDataCurrentNr attribute wrong value"); + } + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK())) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); + } + } + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + return vc_response.primitive.responsePrimitive; + + }//end f_CSE_DMR_TS_002 + + /** + * @desc Check that the IUT sends a notification with missing data points information when the number of missing data points detected becomes equal to the minimum specified missing number of the Time Series Data specified in missingData condition of the subscription resource + * + */ + testcase TC_CSE_TS_003() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_CSE_TS_003()); + + v_ae1.done; + + } + + function f_CSE_TS_003() runs on AeSimu { + // Local variables + var integer v_aeIndex := -1; + var integer v_timeSeriesIndex := -1; + var integer v_subscriptionIndex := -1; + var EventNotificationCriteria v_eventNotificationCriteria := valueof(m_eventNotificationCriteria({int1}, -)); + var template RequestPrimitive v_createRequest := omit; + var RequestPrimitive v_request; + var integer v_ae2Index := -1; + var XSD.NonNegativeInteger v_missingDataPointNumber := 1; + var template PrimitiveContent v_contentNotification := {timeSeries := mw_contentTimeSeries(?,v_missingDataPointNumber)}; + + v_eventNotificationCriteria.missingData := valueof(m_missingData(v_missingDataPointNumber, "1000")); + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + v_timeSeriesIndex := f_cse_createResource(int29, m_createTimeSeries(-, true, 5, -, 2000), v_aeIndex);//TimeSeries + + f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23);//AE2 registered + + v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_timeSeriesIndex), -, {f_getResourceAddress(v_aeIndex)}, v_eventNotificationCriteria, omit, omit, omit, omit, omit, omit); + + v_subscriptionIndex := f_cse_createResource(int23, v_createRequest, v_timeSeriesIndex);//Subscription under TimeSeries + + if(vc_ae2.running) { + vc_ae2.stop; + }; + + // Test Body + + //Create data points and force a missingDataPoint + vc_ae2.start(f_cse_generateMissingDataPoint(v_timeSeriesIndex)); + vc_ae2.done; + + f_cse_notifyProcedure_representationHandler(v_contentNotification); + + //Postamble + f_cse_postamble_deleteResources(); + + //Tear down + f_cf01Down(); + + } // end f_CSE_TS_003 + + /** + * @desc Check that the IUT does not send notification when the total number of missing data points does not exceed the minimum specified missing number of the Time Series Data specified in missingData condition of the subscription resource during the window duration specified in the same missingData condition + * + */ + testcase TC_CSE_TS_004() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_CSE_TS_004()); + + v_ae1.done; + + } + + function f_CSE_TS_004() runs on AeSimu { + // Local variables + var integer v_aeIndex := -1; + var integer v_timeSeriesIndex := -1; + var integer v_subscriptionIndex := -1; + var EventNotificationCriteria v_eventNotificationCriteria := valueof(m_eventNotificationCriteria({int1}, -)); + var template RequestPrimitive v_createRequest := omit; + var ResponsePrimitive v_responsePrimitive; + var integer v_ae2Index := -1; + var XSD.NonNegativeInteger v_missingDataPointNumber := 100; + var template PrimitiveContent v_contentResponse; + + v_eventNotificationCriteria.missingData := valueof(m_missingData(v_missingDataPointNumber, "1000")); + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + v_timeSeriesIndex := f_cse_createResource(int29, m_createTimeSeries(-, true, 5, -, 2000), v_aeIndex);//TimeSeries + + f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23);//AE2 registered + + v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_timeSeriesIndex), -, {f_getResourceAddress(v_aeIndex)}, v_eventNotificationCriteria, omit, omit, omit, omit, omit, omit); + + v_subscriptionIndex := f_cse_createResource(int23, v_createRequest, v_timeSeriesIndex);//Subscription under TimeSeries + + if(vc_ae2.running) { + vc_ae2.stop; + }; + + // Test Body + + //Create data points and force a missingDataPoint + vc_ae2.start(f_cse_generateMissingDataPoint(v_timeSeriesIndex)); + vc_ae2.done; + + tc_ac.start; + alt { + [] mcaPortIn.receive(mw_request(mw_notifyNotification(?))){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ":ERROR: Notification received"); + //Send response in any case + v_responsePrimitive := valueof(m_responseNotification(int2001, omit)); + v_responsePrimitive.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier; + mcaPortIn.send(m_response(v_responsePrimitive)); + } + [] tc_ac.timeout { + setverdict(pass, __SCOPE__ & ": Notification not received"); + } + } + + //Check if the IUT restarts missing data point counter and timer + mcaPort.send(m_request(m_retrieve(f_getResourceAddress(v_timeSeriesIndex), f_getOriginator(v_timeSeriesIndex)))); + + v_contentResponse.timeSeries := mw_contentTimeSeries_rc1; + v_contentResponse.timeSeries.missingDataCurrentNr := 0; + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse))){ + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Response OK for retrieving. MissingDataCurrentNr has been restarted"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error, resource elements provided not matching expected resource elements"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); + } + } + + //Postamble + f_cse_postamble_deleteResources(); + + //Tear down + f_cf01Down(); + } // end f_CSE_TS_004 + + }//end group timeSeries + + }//end group dataManagement + }//end group CSE + }