diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index a37d0c8372af917a157f1f35f7ceebe08bf511be..c830f4b99081be51c645d1a7c963e2f0a866f549 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -2540,7 +2540,7 @@ module OneM2M_Functions { * @param p_expectedResourceIndex Expected target parent resource of the announcemnet * @verdict */ - function f_cse_announcementProcedure_createHandler(template RequestPrimitive p_requestprimitive := ?, in ResponseStatusCode p_responseStatusCode := int2001, in integer p_expectedParentResourceIndex := vc_localRemoteCseIndex) runs on CseSimu return integer{ + function f_cse_announcementProcedure_createHandler(template RequestPrimitive p_requestprimitive := mw_createAnnc, in ResponseStatusCode p_responseStatusCode := int2001, in integer p_expectedParentResourceIndex := vc_localRemoteCseIndex) runs on CseSimu return integer{ // Local variables var integer v_announcedResourceIndex; @@ -2553,8 +2553,11 @@ module OneM2M_Functions { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Expected Announcement received"); v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, p_responseStatusCode, p_expectedParentResourceIndex); - f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); - } + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + if(getverdict == inconc) { + setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address"); + } + } [] mccPortIn.receive(mw_request(?)) -> value vc_request { tc_ac.stop; setverdict(fail, __SCOPE__ & ":ERROR: Request received with unexpected parameters"); @@ -2623,7 +2626,6 @@ module OneM2M_Functions { function f_cse_announcementProcedure_updateHandler(template RequestPrimitive p_requestprimitive := mw_update, in ResponseStatusCode p_responseStatusCode := int2004, template(omit) integer p_expectedResourceIndex := omit) runs on CseSimu { // Local variables - var MsgIn v_request; var integer v_parentIndex := vc_localRemoteCseIndex; var integer v_announcedResourceIndex; var ResponsePrimitive v_responsePrimitive; @@ -2634,16 +2636,16 @@ module OneM2M_Functions { tc_ac.start; alt { - [] mccPortIn.receive(mw_request(p_requestprimitive)) -> value v_request { + [] mccPortIn.receive(mw_request(p_requestprimitive)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Expected UPDATE Announcement received"); - f_processUpdateRequestPrimitive(v_request.primitive.requestPrimitive); + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } - [] mccPortIn.receive(mw_request(?)) -> value v_request { + [] mccPortIn.receive(mw_request(?)) -> value vc_request { setverdict(fail, __SCOPE__ & ":ERROR: Request received with unexpected parameters"); - v_responsePrimitive := valueof(m_responsePrimitive(int4000,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive := valueof(m_responsePrimitive(int4000,vc_request.primitive.requestPrimitive.requestIdentifier)); f_send(e_mccPortIn, m_response(v_responsePrimitive)); } [] tc_ac.timeout { @@ -3366,6 +3368,40 @@ module OneM2M_Functions { v_myResource.contentInstanceAnnc.creationTime := fx_generateTimestamp(); v_myResource.contentInstanceAnnc.lastModifiedTime := v_myResource.contentInstanceAnnc.creationTime; } + } else if(p_resourceType == int10029 and ispresent(p_resource)) { //TimeSeriesAnnc + if(ischosen(p_resource.timeSeriesAnnc)){ + v_myResource.timeSeriesAnnc := valueof(p_resource.timeSeriesAnnc); + v_myResource.timeSeriesAnnc.resourceID := "tsA" & int2str(v_resourceIndex); + if(not(ispresent(p_resource.timeSeriesAnnc.resourceName))) { + v_myResource.timeSeriesAnnc.resourceName := "timeSeriesAnnc" & int2str(v_resourceIndex); + } + v_myResource.timeSeriesAnnc.resourceType := p_resourceType; + v_myResource.timeSeriesAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); + v_myResource.timeSeriesAnnc.creationTime := fx_generateTimestamp(); + v_myResource.timeSeriesAnnc.lastModifiedTime := v_myResource.timeSeriesAnnc.creationTime; + if(not(ispresent(p_resource.timeSeriesAnnc.expirationTime))) { + v_myResource.timeSeriesAnnc.expirationTime := "20301231T012345"; + } + } + } else if(p_resourceType == int10030 and ispresent(p_resource)) { //TimeSeriesInstanceAnnc + if(ischosen(p_resource.timeSeriesInstanceAnnc)){ + v_myResource.timeSeriesInstanceAnnc := valueof(p_resource.timeSeriesInstanceAnnc); + v_myResource.timeSeriesInstanceAnnc.resourceID := "tsiA" & int2str(v_resourceIndex); + if(not(ispresent(p_resource.timeSeriesInstanceAnnc.resourceName))) { + v_myResource.timeSeriesInstanceAnnc.resourceName := "timeSeriesInstanceAnnc" & int2str(v_resourceIndex); + } + v_myResource.timeSeriesInstanceAnnc.resourceType := p_resourceType; + v_myResource.timeSeriesInstanceAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); + v_myResource.timeSeriesInstanceAnnc.creationTime := fx_generateTimestamp(); + v_myResource.timeSeriesInstanceAnnc.lastModifiedTime := v_myResource.timeSeriesInstanceAnnc.creationTime; + if(not(ispresent(p_resource.timeSeriesInstanceAnnc.expirationTime))) { + v_myResource.timeSeriesInstanceAnnc.expirationTime := "20301231T012345"; + } + v_myResource.timeSeriesInstanceAnnc.contentSize := lengthof(v_myResource.timeSeriesInstanceAnnc.content); + if(not(ispresent(p_resource.timeSeriesInstanceAnnc.sequenceNr))) { + v_myResource.timeSeriesInstanceAnnc.sequenceNr := 1; + } + } } else if (p_resourceType == int1 and ispresent (p_resource)) { //Acp Resource if(ischosen (p_resource.accessControlPolicy)){ v_myResource.accessControlPolicy := valueof(p_resource.accessControlPolicy); @@ -4598,7 +4634,7 @@ module OneM2M_Functions { p_request.requestIdentifier := valueof(p_request.requestIdentifier) & f_rnd(1, 1000000); if((p_resourceType != int2)) { - if(p_resourceType == int16) { + if((p_resourceType == int16) or (p_resourceType == int10016)) { p_request.from_ := PX_TS_CSE1.cseId; } else { p_request.from_ := f_getOriginator(p_parentIndex, vc_testSystemRole); @@ -4784,9 +4820,6 @@ module OneM2M_Functions { if(ischosen(p_contentResource.container)) { return f_resourceIdCleaner(p_contentResource.container.resourceID); } - if(ischosen(p_contentResource.containerAnnc)) { - return f_resourceIdCleaner(p_contentResource.containerAnnc.resourceID); - } if(ischosen(p_contentResource.contentInstance)) { return f_resourceIdCleaner(p_contentResource.contentInstance.resourceID); } @@ -4805,9 +4838,6 @@ module OneM2M_Functions { if(ischosen(p_contentResource.aE)) { return f_resourceIdCleaner(p_contentResource.aE.resourceID); } - if(ischosen(p_contentResource.aEAnnc)) { - return f_resourceIdCleaner(p_contentResource.aEAnnc.resourceID); - } if(ischosen(p_contentResource.serviceSubscribedAppRule)) { return f_resourceIdCleaner(p_contentResource.serviceSubscribedAppRule.resourceID); } @@ -4829,7 +4859,41 @@ module OneM2M_Functions { if(ischosen(p_contentResource.statsCollect)) { return f_resourceIdCleaner(p_contentResource.statsCollect.resourceID); } - + if(ischosen(p_contentResource.timeSeries)) { + return p_contentResource.timeSeries.resourceID; + } + if(ischosen(p_contentResource.timeSeriesInstance)) { + return p_contentResource.timeSeriesInstance.resourceID; + } + //Announced resources + if(ischosen(p_contentResource.accessControlPolicyAnnc)) { + return f_resourceIdCleaner(p_contentResource.accessControlPolicyAnnc.resourceID); + } + if(ischosen(p_contentResource.aEAnnc)) { + return f_resourceIdCleaner(p_contentResource.aEAnnc.resourceID); + } + if(ischosen(p_contentResource.containerAnnc)) { + return f_resourceIdCleaner(p_contentResource.containerAnnc.resourceID); + } + if(ischosen(p_contentResource.contentInstanceAnnc)) { + return f_resourceIdCleaner(p_contentResource.contentInstanceAnnc.resourceID); + } + if(ischosen(p_contentResource.groupAnnc)) { + return f_resourceIdCleaner(p_contentResource.groupAnnc.resourceID); + } + if(ischosen(p_contentResource.scheduleAnnc)) { + return f_resourceIdCleaner(p_contentResource.scheduleAnnc.resourceID); + } + if(ischosen(p_contentResource.remoteCSEAnnc)) { + return f_resourceIdCleaner(p_contentResource.remoteCSEAnnc.resourceID); + } + if(ischosen(p_contentResource.timeSeriesAnnc)) { + return p_contentResource.timeSeriesAnnc.resourceID; + } + if(ischosen(p_contentResource.timeSeriesInstanceAnnc)) { + return p_contentResource.timeSeriesInstanceAnnc.resourceID; + } + log(__SCOPE__&":WARNING: Primitive Content Kind not implemented"); return "resourceIDNotFound"; @@ -4847,21 +4911,12 @@ module OneM2M_Functions { if(ischosen(p_contentResource.accessControlPolicy)) { return p_contentResource.accessControlPolicy.resourceName; } - if(ischosen(p_contentResource.accessControlPolicyAnnc)) { - return p_contentResource.accessControlPolicyAnnc.resourceName; - } if(ischosen(p_contentResource.container)) { return p_contentResource.container.resourceName; } - if(ischosen(p_contentResource.containerAnnc)) { - return p_contentResource.containerAnnc.resourceName; - } if(ischosen(p_contentResource.contentInstance)) { return p_contentResource.contentInstance.resourceName; } - if(ischosen(p_contentResource.contentInstanceAnnc)) { - return p_contentResource.contentInstanceAnnc.resourceName; - } if(ischosen(p_contentResource.schedule)) { return p_contentResource.schedule.resourceName; } @@ -4874,15 +4929,9 @@ module OneM2M_Functions { if(ischosen(p_contentResource.group_)) { return p_contentResource.group_.resourceName; } - if(ischosen(p_contentResource.groupAnnc)) { - return p_contentResource.groupAnnc.resourceName; - } if(ischosen(p_contentResource.aE)) { return p_contentResource.aE.resourceName; } - if(ischosen(p_contentResource.aEAnnc)) { - return p_contentResource.aEAnnc.resourceName; - } if(ischosen(p_contentResource.serviceSubscribedAppRule)) { return p_contentResource.serviceSubscribedAppRule.resourceName; } @@ -4916,6 +4965,32 @@ module OneM2M_Functions { if(ischosen(p_contentResource.timeSeriesInstance)) { return p_contentResource.timeSeriesInstance.resourceName; } + //Announced resources + if(ischosen(p_contentResource.accessControlPolicyAnnc)) { + return p_contentResource.accessControlPolicyAnnc.resourceName; + } + if(ischosen(p_contentResource.aEAnnc)) { + return p_contentResource.aEAnnc.resourceName; + } + if(ischosen(p_contentResource.containerAnnc)) { + return p_contentResource.containerAnnc.resourceName; + } + if(ischosen(p_contentResource.contentInstanceAnnc)) { + return p_contentResource.contentInstanceAnnc.resourceName; + } + if(ischosen(p_contentResource.groupAnnc)) { + return p_contentResource.groupAnnc.resourceName; + } + if(ischosen(p_contentResource.remoteCSEAnnc)) { + return p_contentResource.remoteCSEAnnc.resourceName; + } + if(ischosen(p_contentResource.timeSeriesAnnc)) { + return p_contentResource.timeSeriesAnnc.resourceName; + } + if(ischosen(p_contentResource.timeSeriesInstanceAnnc)) { + return p_contentResource.timeSeriesInstanceAnnc.resourceName; + } + log(__SCOPE__&":WARNING: Primitive Content Kind not implemented"); return "resourceNameNotFound"; @@ -4948,11 +5023,13 @@ module OneM2M_Functions { } } else if (ischosen(vc_resourcesList[p_targetResourceIndex].resource.remoteCSE)) { return vc_resourcesList[p_targetResourceIndex].resource.remoteCSE.cSE_ID; + } else if (ischosen(vc_resourcesList[p_targetResourceIndex].resource.remoteCSEAnnc)) { + return PX_TS_CSE1.cseId;//To double check } else { - return f_getOriginator(vc_resourcesList[p_targetResourceIndex].parentIndex); + return f_getOriginator(vc_resourcesList[p_targetResourceIndex].parentIndex, p_testSystemRole); } } else { - return f_getOriginator(vc_resourcesList[p_targetResourceIndex].parentIndex); + return f_getOriginator(vc_resourcesList[p_targetResourceIndex].parentIndex, p_testSystemRole); } } @@ -4996,6 +5073,23 @@ module OneM2M_Functions { } + /** + * @desc Return of an attributeList from an attributeAux list + * @param p_attributeAuxList Source attributeAuxList + * @return AttributeList + */ + function f_getAttributeList(in AttributeAux_list p_attributeAuxList) return AttributeList_1 { + var AttributeList_1 v_attributeList; + var integer i; + + for (i:=0; i < lengthof(p_attributeAuxList); i := i + 1){ + v_attributeList[i] := p_attributeAuxList[i].name; + } + + return v_attributeList; + + } + /** * @desc Resolution of the announcement target CSE PoA * @param p_protocolBinding Protocol Binding @@ -6391,13 +6485,13 @@ module OneM2M_Functions { } } if(p_responseStatusCode == int2001) { - setverdict(pass, __SCOPE__&":INFO: Resource created successfuly"); - v_localResource := f_generateLocalResource(p_request.primitiveContent, v_parentIndex, p_request.resourceType); - v_localResourceIndex := f_setLocalResource(v_localResource, p_request.resourceType, v_parentIndex); - vc_response.primitive.responsePrimitive.primitiveContent := vc_localResourcesList[v_localResourceIndex].resource; + setverdict(pass, __SCOPE__&":INFO: Resource created successfuly"); + v_localResource := f_generateLocalResource(p_request.primitiveContent, v_parentIndex, p_request.resourceType); + v_localResourceIndex := f_setLocalResource(v_localResource, p_request.resourceType, v_parentIndex); + vc_response.primitive.responsePrimitive.primitiveContent := vc_localResourcesList[v_localResourceIndex].resource; } else { setverdict(pass, __SCOPE__&":INFO: Resource creation rejected"); - } + } } vc_response.primitive.responsePrimitive.from_ := PX_TS_CSE1.cseId; vc_response.primitive.responsePrimitive.to_ := p_request.from_; @@ -6409,23 +6503,31 @@ module OneM2M_Functions { * @desc Proccessing of the UPDATE request primitive * @param p_request Request primitive to be processed */ - function f_processUpdateRequestPrimitive(in RequestPrimitive p_request, in ResponseStatusCode p_responseStatusCode := int2004) runs on CseSimu return integer { + function f_processUpdateRequestPrimitive(in RequestPrimitive p_request, in ResponseStatusCode p_responseStatusCode := int2004, template(omit) integer p_expectedTargetResourceIndex := omit) runs on CseSimu return integer { var integer v_targetLocalResourceIndex := -1; v_targetLocalResourceIndex := f_getLocalResourceIndex(p_request.to_); + vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode,p_request.requestIdentifier)); if(v_targetLocalResourceIndex == -1) { setverdict(inconc,__SCOPE__&": ERROR: Target resource not found"); - vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(int4004,p_request.requestIdentifier)); - + vc_response.primitive.responsePrimitive.responseStatusCode := int4004; } else { - vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode,p_request.requestIdentifier)); - if(p_responseStatusCode == int2001) { - setverdict(pass, __SCOPE__&":INFO: Resource updated successfuly"); - f_updateLocalResource(v_targetLocalResourceIndex, p_request.primitiveContent); - vc_response.primitive.responsePrimitive.primitiveContent := vc_localResourcesList[v_targetLocalResourceIndex].resource; + if(isvalue(p_expectedTargetResourceIndex)){ + if(valueof(p_expectedTargetResourceIndex) != v_targetLocalResourceIndex){ + setverdict(inconc, __SCOPE__ & ":ERROR: Unexpected Target Resource Address"); + vc_response.primitive.responsePrimitive.responseStatusCode := int4000; + return v_targetLocalResourceIndex; + } else { + setverdict(pass, __SCOPE__ & ":INFO: Expected Target Resource Address"); + } + } + if(p_responseStatusCode == int2004) { + setverdict(pass, __SCOPE__&":INFO: Resource updated successfuly"); + f_updateLocalResource(v_targetLocalResourceIndex, p_request.primitiveContent); + vc_response.primitive.responsePrimitive.primitiveContent := vc_localResourcesList[v_targetLocalResourceIndex].resource; } else { setverdict(pass, __SCOPE__&":INFO: Resource update rejected"); - } + } } vc_response.primitive.responsePrimitive.from_ := PX_TS_CSE1.cseId; vc_response.primitive.responsePrimitive.to_ := p_request.from_; @@ -6437,20 +6539,30 @@ module OneM2M_Functions { * @desc Proccessing of the RETRIEVE request primitive * @param p_request Request primitive to be processed */ - function f_processRetrieveRequestPrimitive(in RequestPrimitive p_request, in ResponseStatusCode p_responseStatusCode := int2000) runs on CseSimu return integer { + function f_processRetrieveRequestPrimitive(in RequestPrimitive p_request, in ResponseStatusCode p_responseStatusCode := int2000, template(omit) integer p_expectedTargetResourceIndex := omit) runs on CseSimu return integer { var integer v_targetLocalResourceIndex := -1; v_targetLocalResourceIndex := f_getLocalResourceIndex(p_request.to_); + vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode,p_request.requestIdentifier)); if(v_targetLocalResourceIndex == -1) { setverdict(inconc,__SCOPE__&": ERROR: Target resource not found"); - vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(int4004,p_request.requestIdentifier)); - + vc_response.primitive.responsePrimitive.responseStatusCode := int4004; } else { - setverdict(pass, __SCOPE__&":INFO: Resource retrieved successfuly"); - vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode,p_request.requestIdentifier)); + if(isvalue(p_expectedTargetResourceIndex)){ + if(valueof(p_expectedTargetResourceIndex) != v_targetLocalResourceIndex){ + setverdict(inconc, __SCOPE__ & ":ERROR: Unexpected Target Resource Address"); + vc_response.primitive.responsePrimitive.responseStatusCode := int4000; + return v_targetLocalResourceIndex; + } else { + setverdict(pass, __SCOPE__ & ":INFO: Expected Target Resource Address"); + } + } if(p_responseStatusCode == int2000) { - vc_response.primitive.responsePrimitive.primitiveContent := vc_localResourcesList[v_targetLocalResourceIndex].resource; - } + setverdict(pass, __SCOPE__&":INFO: Resource retrieved successfuly"); + vc_response.primitive.responsePrimitive.primitiveContent := vc_localResourcesList[v_targetLocalResourceIndex].resource; + } else { + setverdict(pass, __SCOPE__&":INFO: Resource retrieve rejected"); + } } vc_response.primitive.responsePrimitive.from_ := PX_TS_CSE1.cseId; vc_response.primitive.responsePrimitive.to_ := p_request.from_; @@ -6462,18 +6574,26 @@ module OneM2M_Functions { * @desc Proccessing of the DELETE request primitive * @param p_request Request primitive to be processed */ - function f_processDeleteRequestPrimitive(in RequestPrimitive p_request, in ResponseStatusCode p_responseStatusCode := int2002) runs on CseSimu return integer { + function f_processDeleteRequestPrimitive(in RequestPrimitive p_request, in ResponseStatusCode p_responseStatusCode := int2002, template(omit) integer p_expectedTargetResourceIndex := omit) runs on CseSimu return integer { var integer v_targetLocalResourceIndex := -1; v_targetLocalResourceIndex := f_getLocalResourceIndex(p_request.to_); + vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode,p_request.requestIdentifier)); if(v_targetLocalResourceIndex == -1) { setverdict(inconc,__SCOPE__&": ERROR: Target resource not found"); - vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(int4004,p_request.requestIdentifier)); - + vc_response.primitive.responsePrimitive.responseStatusCode := int4004; } else { - vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode,p_request.requestIdentifier)); + if(isvalue(p_expectedTargetResourceIndex)){ + if(valueof(p_expectedTargetResourceIndex) != v_targetLocalResourceIndex){ + setverdict(inconc, __SCOPE__ & ":ERROR: Unexpected Target Resource Address"); + vc_response.primitive.responsePrimitive.responseStatusCode := int4000; + return v_targetLocalResourceIndex; + } else { + setverdict(pass, __SCOPE__ & ":INFO: Expected Target Resource Address"); + } + } if(p_responseStatusCode == int2002) { - setverdict(pass, __SCOPE__&":INFO: Resource deleted successfuly"); + setverdict(pass, __SCOPE__&":INFO: Resource deleted successfuly"); } else { setverdict(pass, __SCOPE__&":INFO: Resource deletion rejected"); } diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index a98b9fe7eddf88fbdf8ac104b7f2046dc8309647..650ae807b347b6291065ea4aac71ffabcb07153c 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -75,7 +75,7 @@ module OneM2M_Templates { forcedFields := p_forcedFields }; - template MsgIn mw_request(in template RequestPrimitive p_requestPrimitive, template AttributeList_1 p_nullFields := *) := { + template MsgIn mw_request(in template (present) RequestPrimitive p_requestPrimitive, template AttributeList_1 p_nullFields := *) := { primitive := { requestPrimitive := p_requestPrimitive}, nullFields := p_nullFields }; @@ -598,7 +598,6 @@ module OneM2M_Templates { * @desc Reception template for update Ae resource */ template RequestPrimitive mw_updateAe(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := { - resourceType := int2, primitiveContent:= {aE := ?} }; @@ -715,13 +714,11 @@ module OneM2M_Templates { * @desc Reception template for update remoteCSE resource */ template RequestPrimitive mw_updateRemoteCSE(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := { - resourceType := int16, primitiveContent:= {remoteCSE := ?} }; template (value) RequestPrimitive m_updateAEAnncBase modifies m_update:= { requestIdentifier := testcasename() & "-m_updateAEAnnc", - resourceType := int10002, primitiveContent := {aEAnnc := m_contentUpdateAEAnnc} }; @@ -733,7 +730,6 @@ module OneM2M_Templates { * @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 := ?} }; @@ -741,7 +737,6 @@ module OneM2M_Templates { * @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 := ?} }; @@ -749,7 +744,6 @@ module OneM2M_Templates { * @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 := ?} }; @@ -773,7 +767,6 @@ module OneM2M_Templates { * @desc Base Reception template for update TimeSeriesAnnc */ template RequestPrimitive mw_updateTimeSeriesAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := { - resourceType := int10029, primitiveContent := {timeSeriesAnnc := ?} }; @@ -863,37 +856,8 @@ module OneM2M_Templates { /** * @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 := *, - desiredIdentifierResultType := *, - tokens := *, - tokenIDs := *, - localTokenIDs := *, - tokenRequestIndicator := *, - groupRequestTargetMembers := *, - authorSignIndicator := *, - authorSigns := *, - authorRelIndicator := *, - semanticQueryIndicator := *, - releaseVersionIndicator := ?, - vendorInformation := * + template RequestPrimitive mw_createAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?) modifies mw_create := { + resourceType := (int10001,int10002,int10003,int10004,int10009,int10010,int10013,int10014,int10016,int10018,int10024,int10028,int10029,int10030,int10034,int10038,int10039,int10040,int10041,int10042) } /** @@ -1093,6 +1057,15 @@ module OneM2M_Templates { primitiveContent := {remoteCSE := mw_contentCreateRemoteCSEBase} }; + /** + * @desc Base CREATE request primitive for remoteCSEAnnc resource + */ + template (value) RequestPrimitive m_createRemoteCSEAnncBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createRemoteCSE", + resourceType := int10016, + primitiveContent := {remoteCSEAnnc := m_contentCreateRemoteCSEAnnc} + }; + /** * @desc CREATE request primitive for Container resource wiht no resourceName provided */ @@ -3544,6 +3517,39 @@ module OneM2M_Templates { activityPatternElements := omit,//O choice := omit//O }; + + /** + * @desc Base primitiveContent for CREATE operation for RemoteCSEAnnc resource + * @param p_name Resource name + */ + template (value) RemoteCSEAnnc_optional m_contentCreateRemoteCSEAnnc := { + resourceName := omit,//NA NP + resourceType := omit,//NA NP + resourceID := omit,//NA NP + parentID := omit,//NA NP + creationTime := omit,//NA NP + lastModifiedTime := omit,//NA NP + labels := omit,//MA O + accessControlPolicyIDs := omit,//MA O + expirationTime := "29991231T235959",//MA M + link := "NotInitialized",//M + dynamicAuthorizationConsultationIDs := omit,//OA O + cseType := omit,//OA O + pointOfAccess := omit,//OA O + cSEBase := omit,//OA O + cSE_ID := omit,//OA O + requestReachability := false,//OA O + nodeLink := omit,//OA O + contentSerialization := omit,//OA O + e2eSecInfo := omit,//MA M + descendantCSEs := omit,//OA O + supportedReleaseVersions := {"3"}, //MA M + multicastCapability := omit,//OA O + externalGroupID := omit,//OA O + triggerEnable := omit,//OA O + activityPatternElements := omit,//OA O + choice := omit//OA O + }; /** * @desc Base reception template of primitiveContent for CREATE operation for ContainerAnnc resource @@ -3910,7 +3916,7 @@ module OneM2M_Templates { labels := omit,//O accessControlPolicyIDs := omit,//O expirationTime := omit,//O - link := omit,//M TODO Put the right value + link := "NotInitialized",//M dynamicAuthorizationConsultationIDs := omit, //O maxNrOfInstances := omit,//O maxByteSize := omit,//O @@ -3941,7 +3947,7 @@ module OneM2M_Templates { labels := *,//MA accessControlPolicyIDs := ?,//MA expirationTime := ?,//MA M - link := omit, //O NA + link := ?, //M NA dynamicAuthorizationConsultationIDs := *, //OA maxNrOfInstances := *,//O OA maxByteSize := *,//O OA @@ -3970,8 +3976,8 @@ module OneM2M_Templates { creationTime := omit,//NA M lastModifiedTime := omit,//NA M labels := *,//MA - expirationTime := omit,//NA M - link := omit, //O NA + expirationTime := ?,//MA M To be double checked SDS-2019-0668R01 + link := ?, //M NA dataGenerationTime := *,//M OA content := *,//M OA sequenceNr := *,//O OA diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn index dd36e5326f3d8e66c8aa5d0032d6f7d94184b7ef..20b5205b598a001be95c30513e64e097fd488ce9 100644 --- a/LibOneM2M/OneM2M_TypesAndValues.ttcn +++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn @@ -30,6 +30,7 @@ module OneM2M_TypesAndValues { const XSD.String c_defaultContainerAnncResourceName := "MyContainerAnncResource"; const XSD.String c_defaultDeliveryResourceName := "MyDeliveryResource"; const XSD.String c_defaultRemoteCSEResourceName := "MyRemoteCSEResource"; + const XSD.String c_defaultRemoteCSEAnncResourceName := "MyRemoteCSEAnncResource"; const XSD.String c_defaultMgmtObjResourceName := "MyMgmtObjResource"; const XSD.String c_defaultMgmtCmdResourceName := "MyMgmtCmdResource"; const XSD.String c_defaultAeResourceName := "MyAeResource"; diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index e74cd570ac94c2e3119c90800b67fee1f4be1547..f64467559d076e88facb24b04fa39a483b5819cd 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -8684,6 +8684,9 @@ module OneM2M_PermutationFunctions { f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + //Retrieve the AEAnnc resource index + v_parentIndex := f_getLatestLocalResourceIndex(vc_cse1); + // Test Body if (ispresent (p_requestUpdatePrimitive)) { v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); @@ -8693,19 +8696,27 @@ module OneM2M_PermutationFunctions { if (p_resourceType == int4) { v_create := m_createContainerBase; v_create.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; - vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createContainerAnnc())); + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createContainerAnnc(), -, v_parentIndex));//Do not commit v_resourceIndex := f_cse_createResource(int3, v_create, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_resourceIndex); + } else if (p_resourceType == int30) { + v_create := m_createTimeSeriesBase; + v_create.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createTimeSeriesAnnc(), -, v_parentIndex));//Do not commit + v_resourceIndex := f_cse_createResource(int29, v_create, v_aeIndex); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_resourceIndex); } else { v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_aeIndex); } + //Retrieve the parent resource index + v_parentIndex := f_getLatestLocalResourceIndex(vc_cse1); + v_responsePrimitive.responseStatusCode := int2001; } - //Retrieve the parent resource index - v_AEAnncResourceIndex := f_getLatestLocalResourceIndex(vc_cse1); - vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_AEAnncResourceIndex)); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_parentIndex));//Do not commit - parent is always remoteCSE f_send(e_mcaPort, m_request(v_request)); tc_ac.start; @@ -9352,65 +9363,65 @@ module OneM2M_PermutationFunctions { function f_CSE_ANNC_UPD_001(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu system CseSystem { // 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_aEAnncIndex := -1; var integer v_aeIndex := -1; - var integer v_latestResourceIndex; + var integer v_resourceIndex := -1; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); - v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; //Test control // Test component configuration f_cf02UpCseSimuMaster(); - + // Test adapter configuration // Register the CSE - f_cse_registerRemoteCse(m_createRemoteCSEBase); - + f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()})); + //Preamble - - v_ae1.start(f_cse_createResource(int2,v_create)); - f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); - v_ae1.done; + vc_ae1.start(f_cse_createResource(int2,v_create)); + v_aEAnncIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); - v_aeIndex:= f_getLatestResourceIndex(v_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); - v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex)); - v_ae1.done; - - v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); - // Test Body - v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_resourceIndex := f_getLatestResourceIndex(vc_ae1); + // Test Body + vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); + tc_ac.start; alt { - [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value vc_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"); - } - + setverdict(pass, __SCOPE__ & ":INFO: Announcement creation received"); + + f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + [] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Unexpected creation received"); + + f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { - setverdict(fail, __SCOPE__ & ":ERROR: No CREATE REQUEST received"); + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } - } - v_ae1.done; - + } + + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + // Postamble f_cse_postamble_deleteResourcesCSE(); - + // Tear down f_cf02DownCseSimuMaster(); @@ -9418,106 +9429,112 @@ module OneM2M_PermutationFunctions { 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 system CseSystem { // 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_announcedResourceIndex; var integer v_aEAnncIndex := -1; - var integer v_latestResourceIndex; - var ResponsePrimitive v_responsePrimitive; + var integer v_resourceIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); - v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; //Test control // Test component configuration f_cf02UpCseSimuMaster(); - + // Test adapter configuration // Register the CSE - f_cse_registerRemoteCse(m_createRemoteCSEBase); - + f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()})); + //Preamble - - v_ae1.start(f_cse_createResource(int2,v_create)); - f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); - v_ae1.done; - - v_aeIndex:= f_getLatestResourceIndex(v_ae1); + vc_ae1.start(f_cse_createResource(int2,v_create)); + v_aEAnncIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); - v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex)); - f_cse_announcementProcedure_createHandler(p_createRequestAnnc); - v_ae1.done; - - v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); + v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, vc_localRemoteCseIndex); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_resourceIndex := f_getLatestResourceIndex(vc_ae1); // Test Body - v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); - + vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, p_nullFields)); + tc_ac.start; alt { - [] mccPortIn.receive(mw_request(mw_delete(f_getResourceAddress(v_latestResourceIndex)))){ + [] mccPortIn.receive(mw_request(mw_delete)) -> value vc_request { tc_ac.stop; - setverdict(pass, __SCOPE__ & ": Delete Request received successfully"); - } - [] mccPortIn.receive { - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Error Delete request was not received"); + setverdict(pass, __SCOPE__ & ":INFO: Announcement deletion received"); + + f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { - setverdict(fail, __SCOPE__ & ": No answer while waiting to receive Delete request"); + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } - v_ae1.done; - + + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + // 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 system CseSystem { //Local variables var RequestPrimitive v_updateRequest; var integer v_aeIndex := -1; - var integer v_resourceIndex; - var ResponsePrimitive v_responsePrimitive; + var integer v_aEAnncIndex := -1; + var integer v_resourceIndex := -1; + var integer v_announcedResourceIndex := -1; + var integer v_localRemoteCseIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); - v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; + //Test control //Test component configuration f_cf02Up(); - - //Register the CSE - vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); - vc_cse1.done; - + + // Test adapter configuration + // Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()}))); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1); + //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; + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + + v_aEAnncIndex := f_getLatestLocalResourceIndex(vc_cse1); + + // Test Body + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_localRemoteCseIndex)); + v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + + v_announcedResourceIndex := f_getLatestLocalResourceIndex(vc_cse1); - vc_cse1.start(f_cse_announcementProcedure_deleteHandler()); + // Test Body + vc_cse1.start(f_cse_announcementProcedure_deleteHandler(-, -, v_announcedResourceIndex)); + v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); f_send(e_mcaPort, 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; @@ -9531,9 +9548,9 @@ module OneM2M_PermutationFunctions { setverdict(fail, __SCOPE__ & ": No answer while updating resource"); } } - - vc_cse1.done; - + + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + //Used to check that the resource has been updated vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); @@ -9542,110 +9559,143 @@ module OneM2M_PermutationFunctions { // 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 system CseSystem { + function f_CSE_ANNC_UPD_004(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on AeSimu system CseSystem { // 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_announcedResourceIndex := -1; var integer v_aEAnncIndex := -1; - var integer v_latestResourceIndex; - var ResponsePrimitive v_responsePrimitive; + var integer v_resourceIndex := -1; + var integer v_localRemoteCseIndex := -1; + var RequestPrimitive v_updateRequest; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); - v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; - + v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; + //Test control - + // Test component configuration - f_cf02UpCseSimuMaster(); - + f_cf02Up(); + // Test adapter configuration // Register the CSE - f_cse_registerRemoteCse(m_createRemoteCSEBase); - + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()}))); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1); + //Preamble + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); + v_aeIndex := f_cse_createResource(int2,v_create); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex)); - v_ae1.done; + v_aEAnncIndex := f_getLatestLocalResourceIndex(vc_cse1); + + // Test Body + v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); + + // Test Body + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_localRemoteCseIndex)); - v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); + f_send(e_mcaPort, m_request(v_updateRequest)); - // Test Body - v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); - v_ae1.done; + 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"); + } + } + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + // Postamble - f_cse_postamble_deleteResourcesCSE(); + f_cse_postamble_deleteResources(); // Tear down - f_cf02DownCseSimuMaster(); + f_cf02Down(); }//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 system CseSystem { // 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_latestResourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_resourceIndex := -1; + var integer v_announcedResourceIndex := -1; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); - v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; //Test control // Test component configuration f_cf02UpCseSimuMaster(); - + // Test adapter configuration // Register the CSE - f_cse_registerRemoteCse(m_createRemoteCSEBase); - + f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()})); + //Preamble - - v_ae1.start(f_cse_createResource(int2,v_create)); - f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); - v_ae1.done; - - v_aeIndex:= f_getLatestResourceIndex(v_ae1); + vc_ae1.start(f_cse_createResource(int2,v_create)); + v_aEAnncIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_aeIndex := f_getLatestResourceIndex(vc_ae1); - v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex)); - 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)); + vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); + v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, vc_localRemoteCseIndex); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_resourceIndex := f_getLatestResourceIndex(vc_ae1); + // Test Body + vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, 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_TS_CSE1.cseId; - v_responsePrimitive.to_ := vc_request.primitive.requestPrimitive.from_; - f_send(e_mccPortIn, m_response(v_responsePrimitive)); + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + [] mccPortIn.receive(mw_request(mw_update)) -> value vc_request { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ":ERROR: Unexpected update operation received"); + + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } - v_ae1.done; - + + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + // Postamble f_cse_postamble_deleteResourcesCSE(); - + // Tear down f_cf02DownCseSimuMaster(); @@ -9653,54 +9703,60 @@ module OneM2M_PermutationFunctions { function f_CSE_ANNC_UPD_006(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu system CseSystem { // 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_resourceIndex := -1; var integer v_aeIndex := -1; - var integer v_latestResourceIndex; - var ResponsePrimitive v_responsePrimitive; + var integer v_announcedRemoteCseIndex; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); + var template RequestPrimitive v_createRequestRemoteCseAnnc := m_createRemoteCSEAnncBase; - v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; - - //Test control - + //Test control + // Test component configuration f_cf02UpCseSimuMaster(); - + // Test adapter configuration - // Register the CSE - f_cse_registerRemoteCse(m_createRemoteCSEBase); - + // Do not register the CSE + v_createRequestRemoteCseAnnc.primitiveContent := f_setLink(valueof(v_createRequestRemoteCseAnnc.primitiveContent), f_getLocalResourceAddress()); + v_createRequestRemoteCseAnnc.primitiveContent.remoteCSEAnnc.pointOfAccess := {f_getCompletePoA()}; + v_announcedRemoteCseIndex := f_cse_createResource_cseSimu(int10016, v_createRequestRemoteCseAnnc); + //Preamble - - v_ae1.start(f_cse_createResource(int2,v_create)); - f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); - v_ae1.done; - - v_aeIndex:= f_getLatestResourceIndex(v_ae1); + vc_ae1.start(f_cse_createResource(int2,v_create)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_aeIndex := f_getLatestResourceIndex(vc_ae1); - v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex)); - 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)); - + vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_resourceIndex := f_getLatestResourceIndex(vc_ae1); + + // Test Body + vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); + tc_ac.start; alt { - [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value vc_request { tc_ac.stop; - setverdict(pass, __SCOPE__ & ":INFO: CREATE Request received"); + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + [] mccPortIn.receive(mw_request(mw_create)) -> value vc_request { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ":ERROR: Unexpected create operation received"); + + f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { - setverdict(fail, __SCOPE__ & ":ERROR: No CREATE request received"); + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } - v_ae1.done; + + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); @@ -9712,54 +9768,57 @@ module OneM2M_PermutationFunctions { function f_CSE_ANNC_UPD_007(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu system CseSystem { // 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_latestResourceIndex; + var integer v_resourceIndex; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, 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); - + f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()})); + //Preamble - - v_ae1.start(f_cse_createResource(int2,v_create)); - f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); - v_ae1.done; - - v_aeIndex:= f_getLatestResourceIndex(v_ae1); + vc_ae1.start(f_cse_createResource(int2,v_create)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_aeIndex := f_getLatestResourceIndex(vc_ae1); - v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex)); - 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)); - + vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_resourceIndex := f_getLatestResourceIndex(vc_ae1); + + // Test Body + vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); + tc_ac.start; alt { - [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + [] mccPortIn.receive(mw_request(mw_create)) -> value vc_request { tc_ac.stop; - setverdict(pass, __SCOPE__ & ":INFO: CREATE Request received"); + setverdict(fail, __SCOPE__ & ":ERROR: Unexpected create operation received"); + + f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { - setverdict(fail, __SCOPE__ & ":ERROR: No CREATE request received"); + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } - v_ae1.done; + + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); @@ -9773,30 +9832,34 @@ module OneM2M_PermutationFunctions { //Local variables var RequestPrimitive v_updateRequest; var integer v_aeIndex := -1; - var integer v_resourceIndex; - var ResponsePrimitive v_responsePrimitive; + var integer v_resourceIndex := -1; + var integer v_announcedResourceIndex := -1; + var integer v_localRemoteCseIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, 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; - + + // Test adapter configuration + // Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()}))); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1); + //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()); + + // Test Body + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_localRemoteCseIndex)); + v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + + v_announcedResourceIndex := f_getLatestLocalResourceIndex(vc_cse1); + + // Test Body + vc_cse1.start(f_cse_announcementProcedure_updateHandler(-, -, v_announcedResourceIndex)); v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); f_send(e_mcaPort, m_request(v_updateRequest)); @@ -9819,75 +9882,72 @@ module OneM2M_PermutationFunctions { setverdict(fail, __SCOPE__ & ": No answer while updating resource"); } } - - vc_cse1.done; - + + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + //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 system CseSystem { // 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_announcedResourceIndex := -1; var integer v_aeIndex := -1; - var integer v_latestResourceIndex; - var ResponsePrimitive v_responsePrimitive; + var integer v_resourceIndex; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, 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); - + f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()})); + //Preamble - - v_ae1.start(f_cse_createResource(int2,v_create)); - f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); - v_ae1.done; - - v_aeIndex:= f_getLatestResourceIndex(v_ae1); + vc_ae1.start(f_cse_createResource(int2,v_create)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_aeIndex := f_getLatestResourceIndex(vc_ae1); - v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex)); - 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)); - + vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); + v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_resourceIndex := f_getLatestResourceIndex(vc_ae1); + + // Test Body + vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); + tc_ac.start; alt { - [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_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_TS_CSE1.cseId; - v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; - f_send(e_mccPortIn, m_response(v_responsePrimitive)); + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + [] mccPortIn.receive(mw_request(mw_update)) -> value vc_request { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ":ERROR: Unexpected update operation received"); + + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } - v_ae1.done; + + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); @@ -9899,60 +9959,56 @@ module OneM2M_PermutationFunctions { 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 system CseSystem { // 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_announcedResourceIndex := -1; var integer v_aeIndex := -1; - var integer v_latestResourceIndex; - var ResponsePrimitive v_responsePrimitive; + var integer v_resourceIndex; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, 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); - + f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()})); + //Preamble - - v_ae1.start(f_cse_createResource(int2,v_create)); - f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); - v_ae1.done; - - v_aeIndex:= f_getLatestResourceIndex(v_ae1); + vc_ae1.start(f_cse_createResource(int2,v_create)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_aeIndex := f_getLatestResourceIndex(vc_ae1); - v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex)); - 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)); - + vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); + v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_resourceIndex := f_getLatestResourceIndex(vc_ae1); + + // Test Body + vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); + tc_ac.start; alt { - [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_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_TS_CSE1.cseId; - v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; - f_send(e_mccPortIn, m_response(v_responsePrimitive)); + + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + [] mccPortIn.receive(mw_request(mw_update)) -> value vc_request { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ":ERROR: Unexpected update operation received"); + + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } - v_ae1.done; + + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); @@ -9964,167 +10020,161 @@ module OneM2M_PermutationFunctions { 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 system CseSystem { // 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_announcedResourceIndex := -1; var integer v_aeIndex := -1; - var integer v_latestResourceIndex; - var ResponsePrimitive v_responsePrimitive; + var integer v_resourceIndex; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, 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); - + f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()})); + //Preamble - - v_ae1.start(f_cse_createResource(int2,v_create)); - f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); - v_ae1.done; - - v_aeIndex:= f_getLatestResourceIndex(v_ae1); + vc_ae1.start(f_cse_createResource(int2,v_create)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_aeIndex := f_getLatestResourceIndex(vc_ae1); - v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex)); - 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)); - + vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); + v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_resourceIndex := f_getLatestResourceIndex(vc_ae1); + + // Test Body + vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); + tc_ac.start; alt { - [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_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_TS_CSE1.cseId; - v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; - f_send(e_mccPortIn, m_response(v_responsePrimitive)); + + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + [] mccPortIn.receive(mw_request(mw_update)) -> value vc_request { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ":ERROR: Unexpected update operation received"); + + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } - v_ae1.done; + + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // 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 system CseSystem { + 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, template charstring p_attributeToDeannounce) runs on CseSimu system CseSystem { + // Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var RequestPrimitive v_requestUpdatePrimitive; - var integer v_parentIndex := -1; + var integer v_announcedResourceIndex := -1; var integer v_aeIndex := -1; - var integer v_latestResourceIndex; - var ResponsePrimitive v_responsePrimitive; + var integer v_resourceIndex; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, 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); - + f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()})); + //Preamble - - v_ae1.start(f_cse_createResource(int2,v_create)); - f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); - v_ae1.done; - - v_aeIndex:= f_getLatestResourceIndex(v_ae1); + vc_ae1.start(f_cse_createResource(int2,v_create)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_aeIndex := f_getLatestResourceIndex(vc_ae1); - v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex)); - 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)); - + vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); + v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_resourceIndex := f_getLatestResourceIndex(vc_ae1); + + // Test Body + vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, p_nullFields)); + tc_ac.start; alt { - [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_request { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc, superset(p_attributeToDeannounce))) -> 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_TS_CSE1.cseId; - v_responsePrimitive.to_ := vc_request.primitive.requestPrimitive.from_; - f_send(e_mccPortIn, m_response(v_responsePrimitive)); + + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + [] mccPortIn.receive(mw_request(mw_update)) -> value vc_request { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ":ERROR: Unexpected update operation received"); + + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex);//Update function with expected index + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } - v_ae1.done; + + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // 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 system CseSystem { + 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, template PrimitiveContent p_updateResponse) runs on AeSimu system CseSystem { //Local variables var RequestPrimitive v_updateRequest; var integer v_aeIndex := -1; - var integer v_resourceIndex; + var integer v_localRemoteCseIndex := -1; + var integer v_announcedResourceIndex := -1; + var integer v_resourceIndex := -1; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, 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; - + + // Test adapter configuration + // Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()}))); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1); + //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; + + // Test Body + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_localRemoteCseIndex)); + v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + + v_announcedResourceIndex := f_getLatestLocalResourceIndex(vc_cse1); + + // Test Body + vc_cse1.start(f_cse_announcementProcedure_updateHandler(-, -, v_announcedResourceIndex)); - vc_cse1.start(f_cse_announcementProcedure_updateHandler()); v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); f_send(e_mcaPort, m_request(v_updateRequest, p_nullFields)); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004, p_updateResponse), {"announcedAttribute"})) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource updated successfully"); @@ -10142,53 +10192,54 @@ module OneM2M_PermutationFunctions { } } - vc_cse1.done; - + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + //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 system CseSystem { + function f_CSE_ANNC_UPD_014(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive, template PrimitiveContent p_updateResponse) runs on AeSimu system CseSystem { //Local variables var RequestPrimitive v_updateRequest; var integer v_aeIndex := -1; - var integer v_resourceIndex; - var integer v_AEAnncResourceIndex; + var integer v_resourceIndex := -1; + var integer v_localRemoteCseIndex := -1; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, 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; - + + // Test adapter configuration + // Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()}))); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1); + //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)); + + // Test Body + v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); + + // Test Body + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, int4000, v_localRemoteCseIndex)); + v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); f_send(e_mcaPort, m_request(v_updateRequest)); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004, p_updateResponse), {"announceTo"})) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource updated successfully"); } @@ -10205,16 +10256,17 @@ module OneM2M_PermutationFunctions { } } - vc_cse1.done; - + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + //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 diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn index 4dfd841fac9ca6081507e724f31301ef3468f0bd..6a52a9c79edefd35dc420f622617aee698a15d77 100644 --- a/OneM2M_Testcases_CSE_Release_3.ttcn +++ b/OneM2M_Testcases_CSE_Release_3.ttcn @@ -10639,67 +10639,59 @@ module OneM2M_Testcases_CSE_Release_3 { */ testcase TC_CSE_ANNC_UPD_004_ACP() runs on Tester system CseSystem { // Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + 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; - v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE1.cseId}; - v_updateRequest.primitiveContent.accessControlPolicy.announcedAttribute := {"ToBeDeleted"}; - v_updateRequest.primitiveContent.accessControlPolicy.parentID := PX_TS_CSE1.cseId; - - v_cse1.start(f_CSE_ANNC_UPD_004(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy - v_cse1.done; + v_updateRequest.primitiveContent.accessControlPolicy.announcedAttribute := {"pi"}; + + v_ae1.start(f_CSE_ANNC_UPD_004(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy + v_ae1.done; } testcase TC_CSE_ANNC_UPD_004_CNT() runs on Tester system CseSystem { // Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc; var template RequestPrimitive v_updateRequest := m_updateContainerBase; - v_updateRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; - v_updateRequest.primitiveContent.container.announcedAttribute := {"ToBeDeleted"}; - v_updateRequest.primitiveContent.container.parentID := PX_TS_CSE1.cseId; - - v_cse1.start(f_CSE_ANNC_UPD_004(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container - v_cse1.done; + v_updateRequest.primitiveContent.container.announcedAttribute := {"pi"}; + + v_ae1.start(f_CSE_ANNC_UPD_004(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container + v_ae1.done; } testcase TC_CSE_ANNC_UPD_004_GRP() runs on Tester system CseSystem { // Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createGroupBase; var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc; var template RequestPrimitive v_updateRequest := m_updateGroupBase; v_updateRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId}; - v_updateRequest.primitiveContent.group_.announcedAttribute := {"ToBeDeleted"}; - v_updateRequest.primitiveContent.group_.parentID := PX_TS_CSE1.cseId; - - v_cse1.start(f_CSE_ANNC_UPD_004(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group - v_cse1.done; + v_updateRequest.primitiveContent.group_.announcedAttribute := {"pi"}; + + v_ae1.start(f_CSE_ANNC_UPD_004(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group + v_ae1.done; } testcase TC_CSE_ANNC_UPD_004_TS() runs on Tester system CseSystem { // Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createTimeSeriesBase; var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc; var template RequestPrimitive v_updateRequest := m_updateTimeSeriesBase; - - v_updateRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; - v_updateRequest.primitiveContent.timeSeries.announcedAttribute := {"ToBeDeleted"}; - v_updateRequest.primitiveContent.timeSeries.parentID := PX_TS_CSE1.cseId; - - v_cse1.start(f_CSE_ANNC_UPD_004(int29, v_createRequest, v_createRequestAnnc, v_updateRequest));//TimeSeries - v_cse1.done; + v_updateRequest.primitiveContent.timeSeries.announcedAttribute := {"pi"}; + + v_ae1.start(f_CSE_ANNC_UPD_004(int29, v_createRequest, v_createRequestAnnc, v_updateRequest));//TimeSeries + v_ae1.done; } } // end group g_CSE_ANNC_UPD_004 @@ -10721,7 +10713,6 @@ module OneM2M_Testcases_CSE_Release_3 { var AttributeAux_list v_nullFields; var Labels v_labels_2 := {"To be deleted"}; - v_createRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; v_createRequest.primitiveContent.container.labels := v_labels_1; @@ -10759,7 +10750,6 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; var template RequestPrimitive v_updateRequest := m_updateAcpBase; - v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE1.cseId}; v_cse1.start(f_CSE_ANNC_UPD_006(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy @@ -10885,16 +10875,13 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc; 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_TS_CSE1.cseId}; v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize; - v_createRequest.primitiveContent.container.announcedAttribute := v_announcedAttribute; - + v_updateRequest.primitiveContent.container.announcedAttribute := {"mbs"}; v_ae1.start(f_CSE_ANNC_UPD_008(int3, v_createRequestAnnc, v_createRequest, v_updateRequest));//Container @@ -10932,17 +10919,14 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc; 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; + var XSD.NonNegativeInteger v_maxNrOfMembers := 1; v_createRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId}; - v_createRequest.primitiveContent.group_.memberType := v_memberType; - v_createRequest.primitiveContent.group_.announcedAttribute := v_announcedAttribute; - - v_updateRequest.primitiveContent.group_.announcedAttribute := {"mt"}; + v_createRequest.primitiveContent.group_.maxNrOfMembers := v_maxNrOfMembers; + + v_updateRequest.primitiveContent.group_.announcedAttribute := {"mnm"}; v_ae1.start(f_CSE_ANNC_UPD_008(int9, v_createRequestAnnc, v_createRequest, v_updateRequest));//Group v_ae1.done; @@ -10979,16 +10963,13 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc; var template RequestPrimitive v_updateRequest := m_updateTimeSeriesBase; 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.timeSeries.announceTo := {PX_TS_CSE1.cseId}; v_createRequest.primitiveContent.timeSeries.maxByteSize := v_maxByteSize; - v_createRequest.primitiveContent.timeSeries.announcedAttribute := v_announcedAttribute; - + v_updateRequest.primitiveContent.timeSeries.announcedAttribute := {"mbs"}; v_ae1.start(f_CSE_ANNC_UPD_008(int29, v_createRequestAnnc, v_createRequest, v_updateRequest));//TimeSeries @@ -11039,8 +11020,6 @@ module OneM2M_Testcases_CSE_Release_3 { v_createRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize; - v_createRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize; - v_updateRequest.primitiveContent.container.announcedAttribute := {"mbs"}; v_updateRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize; @@ -11056,17 +11035,15 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc; var template RequestPrimitive v_updateRequest := m_updateGroupBase; var template RequestPrimitive v_updateRequestAnnc := mw_updateGroupAnnc; - var MemberType v_memberType := int3; + var XSD.NonNegativeInteger v_maxNrOfMembers := 1; v_createRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId}; - v_createRequest.primitiveContent.group_.memberType := v_memberType; - - v_createRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType; + v_createRequest.primitiveContent.group_.maxNrOfMembers := v_maxNrOfMembers; - v_updateRequest.primitiveContent.group_.announcedAttribute := {"mt"}; + v_updateRequest.primitiveContent.group_.announcedAttribute := {"mnm"}; - v_updateRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType; + v_updateRequestAnnc.primitiveContent.groupAnnc.maxNrOfMembers := v_maxNrOfMembers; v_cse1.start(f_CSE_ANNC_UPD_009(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group v_cse1.done; @@ -11081,13 +11058,9 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_updateRequestAnnc := mw_updateTimeSeriesAnnc; var XSD.NonNegativeInteger v_maxByteSize := 512; - - v_createRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; v_createRequest.primitiveContent.timeSeries.maxByteSize := v_maxByteSize; - v_createRequestAnnc.primitiveContent.timeSeriesAnnc.maxByteSize := v_maxByteSize; - v_updateRequest.primitiveContent.timeSeries.announcedAttribute := {"mbs"}; v_updateRequestAnnc.primitiveContent.timeSeriesAnnc.maxByteSize := v_maxByteSize; @@ -11111,18 +11084,18 @@ module OneM2M_Testcases_CSE_Release_3 { 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"; + var Labels v_label_1 := {"LABEL_1"}; + var Labels v_label_2 := {"LABEL_2"}; v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE1.cseId}; - v_createRequest.primitiveContent.accessControlPolicy.expirationTime := v_expirationTime_1; + v_createRequest.primitiveContent.accessControlPolicy.labels := v_label_1; - v_createRequestAnnc.primitiveContent.accessControlPolicyAnnc.expirationTime := v_expirationTime_1; + v_createRequestAnnc.primitiveContent.accessControlPolicyAnnc.labels := v_label_1; - v_updateRequest.primitiveContent.accessControlPolicy.expirationTime := v_expirationTime_2; + v_updateRequest.primitiveContent.accessControlPolicy.labels := v_label_2; - v_updateRequestAnnc.primitiveContent.accessControlPolicyAnnc.expirationTime := v_expirationTime_2; + v_updateRequestAnnc.primitiveContent.accessControlPolicyAnnc.labels := v_label_2; v_cse1.start(f_CSE_ANNC_UPD_010(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container v_cse1.done; @@ -11135,18 +11108,18 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc; 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"; + var Labels v_label_1 := {"LABEL_1"}; + var Labels v_label_2 := {"LABEL_2"}; v_createRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; - v_createRequest.primitiveContent.container.expirationTime := v_expirationTime_1; + v_createRequest.primitiveContent.container.labels := v_label_1; - v_createRequestAnnc.primitiveContent.containerAnnc.expirationTime := v_expirationTime_1; + v_createRequestAnnc.primitiveContent.containerAnnc.labels := v_label_1; - v_updateRequest.primitiveContent.container.expirationTime := v_expirationTime_2; + v_updateRequest.primitiveContent.container.labels := v_label_2; - v_updateRequestAnnc.primitiveContent.containerAnnc.expirationTime := v_expirationTime_2; + v_updateRequestAnnc.primitiveContent.containerAnnc.labels := v_label_2; v_cse1.start(f_CSE_ANNC_UPD_010(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container v_cse1.done; @@ -11159,18 +11132,18 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc; 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"; + var Labels v_label_1 := {"LABEL_1"}; + var Labels v_label_2 := {"LABEL_2"}; v_createRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId}; - v_createRequest.primitiveContent.group_.expirationTime := v_expirationTime_1; + v_createRequest.primitiveContent.group_.labels := v_label_1; - v_createRequestAnnc.primitiveContent.groupAnnc.expirationTime := v_expirationTime_1; + v_createRequestAnnc.primitiveContent.groupAnnc.labels := v_label_1; - v_updateRequest.primitiveContent.group_.expirationTime := v_expirationTime_2; + v_updateRequest.primitiveContent.group_.labels := v_label_2; - v_updateRequestAnnc.primitiveContent.groupAnnc.expirationTime := v_expirationTime_2; + v_updateRequestAnnc.primitiveContent.groupAnnc.labels := v_label_2; v_cse1.start(f_CSE_ANNC_UPD_010(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group v_cse1.done; @@ -11183,19 +11156,19 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc; var template RequestPrimitive v_updateRequest := m_updateTimeSeriesBase; var template RequestPrimitive v_updateRequestAnnc := mw_updateTimeSeriesAnnc; - var Timestamp v_expirationTime_1 := "21001231T012345"; - var Timestamp v_expirationTime_2 := "21101231T012345"; + var Labels v_label_1 := {"LABEL_1"}; + var Labels v_label_2 := {"LABEL_2"}; v_createRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; - v_createRequest.primitiveContent.timeSeries.expirationTime := v_expirationTime_1; + v_createRequest.primitiveContent.timeSeries.labels := v_label_1; - v_createRequestAnnc.primitiveContent.timeSeriesAnnc.expirationTime := v_expirationTime_1; + v_createRequestAnnc.primitiveContent.timeSeriesAnnc.labels := v_label_1; - v_updateRequest.primitiveContent.timeSeries.expirationTime := v_expirationTime_2; + v_updateRequest.primitiveContent.timeSeries.labels := v_label_2; - v_updateRequestAnnc.primitiveContent.timeSeriesAnnc.expirationTime := v_expirationTime_2; + v_updateRequestAnnc.primitiveContent.timeSeriesAnnc.labels := v_label_2; v_cse1.start(f_CSE_ANNC_UPD_010(int29, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//TimeSeries v_cse1.done; @@ -11241,19 +11214,19 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc; 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; + var XSD.PositiveInteger v_maxNrOfMembers_1 := 1; + var XSD.PositiveInteger v_maxNrOfMembers_2 := 2; v_createRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId}; - v_createRequest.primitiveContent.group_.memberType := v_memberType_1; - v_createRequest.primitiveContent.group_.announcedAttribute := {"mt"}; + v_createRequest.primitiveContent.group_.maxNrOfMembers := v_maxNrOfMembers_1; + v_createRequest.primitiveContent.group_.announcedAttribute := {"mnm"}; - v_createRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType_1; + v_createRequestAnnc.primitiveContent.groupAnnc.maxNrOfMembers := v_maxNrOfMembers_1; - v_updateRequest.primitiveContent.group_.memberType := v_memberType_2; + v_updateRequest.primitiveContent.group_.maxNrOfMembers := v_maxNrOfMembers_2; - v_updateRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType_2; + v_updateRequestAnnc.primitiveContent.groupAnnc.maxNrOfMembers := v_maxNrOfMembers_2; v_cse1.start(f_CSE_ANNC_UPD_011(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group v_cse1.done; @@ -11302,6 +11275,7 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnnc; var RequestPrimitive v_requestPrimitive; var XSD.NonNegativeInteger v_maxByteSize := 512; + var charstring v_attributeToDeannounce := "maxByteSize"; var AttributeAux_list v_nullFields; var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; @@ -11315,7 +11289,7 @@ module OneM2M_Testcases_CSE_Release_3 { 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.start(f_CSE_ANNC_UPD_012(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc, v_nullFields, v_attributeToDeannounce));//Container v_cse1.done; if(getverdict == pass){ @@ -11340,7 +11314,8 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_updateRequest := m_updateGroupBase; var template RequestPrimitive v_updateRequestAnnc := mw_updateGroupAnnc; var RequestPrimitive v_requestPrimitive; - var MemberType v_memberType := int3; + var MemberType v_memberType := int2; + var charstring v_attributeToDeannounce := "memberType"; var AttributeAux_list v_nullFields; var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; @@ -11354,7 +11329,7 @@ module OneM2M_Testcases_CSE_Release_3 { 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.start(f_CSE_ANNC_UPD_012(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc, v_nullFields, v_attributeToDeannounce));//Group v_cse1.done; if(getverdict == pass){ @@ -11379,6 +11354,7 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_updateRequestAnnc := mw_updateTimeSeriesAnnc; var RequestPrimitive v_requestPrimitive; var XSD.NonNegativeInteger v_maxByteSize := 512; + var charstring v_attributeToDeannounce := "maxByteSize"; var AttributeAux_list v_nullFields; var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; @@ -11393,7 +11369,7 @@ module OneM2M_Testcases_CSE_Release_3 { v_updateRequest.primitiveContent.timeSeries.announcedAttribute := v_announcedAttribute; v_nullFields := {{"announcedAttribute", omit}}; - v_cse1.start(f_CSE_ANNC_UPD_012(int29, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc, v_nullFields));//TimeSeries + v_cse1.start(f_CSE_ANNC_UPD_012(int29, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc, v_nullFields, v_attributeToDeannounce));//TimeSeries v_cse1.done; if(getverdict == pass){ @@ -11424,6 +11400,7 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc; var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template PrimitiveContent v_updateResponse := {container := mw_contentContainerBase}; var ResponsePrimitive v_responsePrimitive; var AttributeAux_list v_nullFields; var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; @@ -11438,7 +11415,7 @@ module OneM2M_Testcases_CSE_Release_3 { 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.start(f_CSE_ANNC_UPD_013(int3, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields, v_updateResponse));//Container v_ae1.done; if(getverdict == pass){ @@ -11469,21 +11446,22 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequest := m_createGroupBase; var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc; var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var template PrimitiveContent v_updateResponse := {group_ := mw_contentGroupBase}; var ResponsePrimitive v_responsePrimitive; var AttributeAux_list v_nullFields; var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; var PrimitiveContent v_primitiveContentRetrieveResource; - var MemberType v_memberType := int3; - + var XSD.PositiveInteger v_maxNrOfMembers_1 := 1; + v_createRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId}; - v_createRequest.primitiveContent.group_.memberType := v_memberType; - v_createRequest.primitiveContent.group_.announcedAttribute := {"mt"}; + v_createRequest.primitiveContent.group_.maxNrOfMembers := v_maxNrOfMembers_1; + v_createRequest.primitiveContent.group_.announcedAttribute := {"mnm"}; 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.start(f_CSE_ANNC_UPD_013(int9, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields, v_updateResponse));//Group v_ae1.done; if(getverdict == pass){ @@ -11513,6 +11491,7 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequest := m_createTimeSeriesBase; var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc; var template RequestPrimitive v_updateRequest := m_updateTimeSeriesBase; + var template PrimitiveContent v_updateResponse := {timeSeries := mw_contentTimeSeriesBase}; var ResponsePrimitive v_responsePrimitive; var AttributeAux_list v_nullFields; var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; @@ -11524,10 +11503,10 @@ module OneM2M_Testcases_CSE_Release_3 { v_createRequest.primitiveContent.timeSeries.maxByteSize := v_maxByteSize; v_createRequest.primitiveContent.timeSeries.announcedAttribute := {"mbs"}; - v_updateRequest.primitiveContent.container.announcedAttribute := v_announcedAttribute; + v_updateRequest.primitiveContent.timeSeries.announcedAttribute := v_announcedAttribute; v_nullFields := {{"announcedAttribute", omit}}; - v_ae1.start(f_CSE_ANNC_UPD_013(int29, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields));//TimeSeries + v_ae1.start(f_CSE_ANNC_UPD_013(int29, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields, v_updateResponse));//TimeSeries v_ae1.done; if(getverdict == pass){ @@ -11566,12 +11545,12 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc; var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template PrimitiveContent v_updateResponse := {container := mw_contentContainerBase}; var ResponsePrimitive v_responsePrimitive; - v_updateRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; - v_ae1.start(f_CSE_ANNC_UPD_014(int3, v_createRequestAnnc, v_createRequest, v_updateRequest));//Container + v_ae1.start(f_CSE_ANNC_UPD_014(int3, v_createRequestAnnc, v_createRequest, v_updateRequest, v_updateResponse));//Container v_ae1.done; if(getverdict == pass){ @@ -11579,7 +11558,7 @@ module OneM2M_Testcases_CSE_Release_3 { 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"); + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL"); } } }