diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index f6af89fbed4540266cc9852d897d9366c14f7e32..68b138ce26c4217731f791a1f838ff03d9f48c01 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -1121,7 +1121,6 @@ module OneM2M_Functions { var MyResource v_resource; var integer v_resourceIndex := -1; - p_component.start(f_sendLatestLocalResource()); alt { []infoPort.receive(mw_resource) -> value v_resource { @@ -1663,7 +1662,11 @@ module OneM2M_Functions { } } - + //If a reset of the IUT is required (for instance, to remove IUT internal variables such as CSEBaseAnnc registry) + if(vc_resetRequired) { + //Reset IUT required as CSEBaseAnnc is internally stored in IUT for further announcements + f_cse_sendUtPrimitive(m_utCommand_reset, __SCOPE__ & ": Please, reset IUT"); + } } if((vc_config == e_cf02CseSimuMaster) or ((vc_config == e_cf01) and (vc_aeSimuDesc.appId == "NMyApp2Id"))){ if(infoPort.checkstate("Connected")) { @@ -1850,6 +1853,11 @@ module OneM2M_Functions { } } } + } + //If a reset of the IUT is required (for instance, to remove IUT internal variables such as CSEBaseAnnc registry) + if(vc_resetRequired) { + //Reset IUT required as CSEBaseAnnc is internally stored in IUT for further announcements + f_cse_sendUtPrimitive_cseSimu(m_utCommand_reset, __SCOPE__ & ": Please, reset IUT"); } } @@ -2841,13 +2849,18 @@ module OneM2M_Functions { * @param p_expectedResourceIndex Expected target parent resource of the announcemnet * @verdict */ - function f_cse_announcementProcedure_createHandler(template RequestPrimitive p_requestPrimitive := mw_createAnnc, in ResponseStatusCode p_responseStatusCode := int2001, template (omit) 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, template (omit) integer p_expectedParentResourceIndex := omit) runs on CseSimu return integer{ // Local variables var integer v_announcedResourceIndex; - + var RequestPrimitive v_request; + var ResponsePrimitive v_response; + template XSD.AnyURI v_announcedResourceAddress := pattern "{vc_cseSimuDesc.cseId}*"; + + //Activate defaults when running on a PTC f_cse_activateDefaults_cse1(); + p_requestPrimitive.to_ := v_announcedResourceAddress; tc_ac.start; alt { [] mccPortIn.receive(mw_request(p_requestPrimitive)) -> value vc_request { @@ -2857,13 +2870,60 @@ module OneM2M_Functions { 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(mw_createAnnc)) -> value vc_request { tc_ac.stop; - setverdict(fail, __SCOPE__ & ":ERROR: Request received with unexpected parameters"); - v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); - f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) == PX_TS_CSE2.cseId) { + setverdict(pass, __SCOPE__ & ":INFO: Announcement received targeting CSE2"); + mccPortInternal.send(vc_request.primitive.requestPrimitive); + alt { + []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { + } + } + + f_send(e_mccPortIn, m_response(v_response)); + if(vc_request.primitive.requestPrimitive.resourceType == int10005){ + tc_ac.start; + repeat; + } else { + break; + }; + } + if((vc_request.primitive.requestPrimitive.resourceType == int10005) and (not(isvalue(p_expectedParentResourceIndex)))) { + setverdict(pass, __SCOPE__ & ":INFO: Request received for CSEBaseAnnc"); + p_expectedParentResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_cSEBaseIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + tc_ac.start; + repeat; + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Request received with unexpected parameters"); + v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + } + [vc_cseSimuDesc.cseName == "CSE2_NAME"] mccPortInternal.receive(p_requestPrimitive) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Expected Announcement received"); + v_announcedResourceIndex := f_processCreateRequestPrimitive(v_request, p_responseStatusCode, p_expectedParentResourceIndex); + mccPortInternal.send(vc_response.primitive.responsePrimitive); + if(getverdict == inconc) { + setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address"); + } + } + [vc_cseSimuDesc.cseName == "CSE2_NAME"] mccPortInternal.receive(mw_createAnnc) -> value v_request { + tc_ac.stop; + if(v_request.resourceType == int10005) { + setverdict(pass, __SCOPE__ & ":INFO: Request received for CSEBaseAnnc"); + p_expectedParentResourceIndex := f_processCreateRequestPrimitive(v_request, -, vc_cSEBaseIndex); + mccPortInternal.send(vc_response.primitive.responsePrimitive); + tc_ac.start; + repeat; + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Request received with unexpected parameters"); + v_announcedResourceIndex := f_processCreateRequestPrimitive(v_request, int4000); + mccPortInternal.send(vc_response.primitive.responsePrimitive); + } } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); @@ -2965,7 +3025,7 @@ module OneM2M_Functions { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Expected UPDATE Announcement received"); - f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive); + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, -, vc_request.nullFields); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mccPortIn.receive(mw_request(mw_update)) -> value vc_request { @@ -3728,6 +3788,16 @@ module OneM2M_Functions { v_myResource.contentInstanceAnnc.creationTime := fx_generateTimestamp(); v_myResource.contentInstanceAnnc.lastModifiedTime := v_myResource.contentInstanceAnnc.creationTime; } + } else if (p_resourceType == int10005 and ispresent (p_resource)) { //CSEBaseAnnc + if(ischosen(p_resource.cSEBaseAnnc)) { + v_myResource.cSEBaseAnnc := valueof(p_resource.cSEBaseAnnc); + v_myResource.cSEBaseAnnc.resourceName := "cSEBaseAnnc" & int2str(v_resourceIndex); + v_myResource.cSEBaseAnnc.resourceType := p_resourceType; + v_myResource.cSEBaseAnnc.resourceID := "cbA" & int2str(v_resourceIndex); + v_myResource.cSEBaseAnnc.parentID := f_getResourceId(vc_localResourcesList[p_parentIndex].resource); + v_myResource.cSEBaseAnnc.creationTime := fx_generateTimestamp(); + v_myResource.cSEBaseAnnc.lastModifiedTime := v_myResource.cSEBaseAnnc.creationTime; + } } else if (p_resourceType == int10016 and ispresent (p_resource)) { //RemoteCSEAnnc if(ischosen(p_resource.remoteCSEAnnc)) { v_myResource.remoteCSEAnnc := valueof(p_resource.remoteCSEAnnc); @@ -3967,7 +4037,7 @@ module OneM2M_Functions { * @param p_localResourceIndex Resource index of resource to be updated * @param p_resource Resource update */ - function f_updateLocalResource(in integer p_localResourceIndex, in PrimitiveContent p_resource) runs on CseSimu { + function f_updateLocalResource(in integer p_localResourceIndex, in PrimitiveContent p_resource, template (omit) AttributeList_1 p_nullFields := omit) runs on CseSimu { var XSD.AnyURI v_remoteCSEAnncAddress; var PrimitiveContent v_primitiveContent; @@ -4188,6 +4258,51 @@ module OneM2M_Functions { if(ispresent(p_resource.containerAnnc.maxInstanceAge)) { vc_localResourcesList[p_localResourceIndex].resource.containerAnnc.maxInstanceAge := p_resource.containerAnnc.maxInstanceAge; } + if(isvalue(p_nullFields)) { + if (p_nullFields[0] == "maxByteSize") { + vc_localResourcesList[p_localResourceIndex].resource.containerAnnc.maxByteSize := omit; + } + } + } else if(ischosen(vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc) and (ischosen(p_resource.timeSeriesAnnc))) {//timeSeriesAnnc + if(ispresent(p_resource.containerAnnc.expirationTime)) { + vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.expirationTime := p_resource.timeSeriesAnnc.expirationTime; + } + if(ispresent(p_resource.containerAnnc.labels)) { + vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.labels := p_resource.timeSeriesAnnc.labels; + } + if(ispresent(p_resource.containerAnnc.dynamicAuthorizationConsultationIDs)) { + vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.dynamicAuthorizationConsultationIDs := p_resource.timeSeriesAnnc.dynamicAuthorizationConsultationIDs; + } + if(ispresent(p_resource.containerAnnc.maxNrOfInstances)) { + vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.maxNrOfInstances := p_resource.timeSeriesAnnc.maxNrOfInstances; + } + if(ispresent(p_resource.containerAnnc.maxByteSize)) { + vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.maxByteSize := p_resource.timeSeriesAnnc.maxByteSize; + } + if(ispresent(p_resource.containerAnnc.maxInstanceAge)) { + vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.maxInstanceAge := p_resource.timeSeriesAnnc.maxInstanceAge; + } + if(isvalue(p_nullFields)) { + if (p_nullFields[0] == "maxByteSize") { + vc_localResourcesList[p_localResourceIndex].resource.timeSeriesAnnc.maxByteSize := omit; + } + } + + } else if(ischosen(vc_localResourcesList[p_localResourceIndex].resource.groupAnnc) and (ischosen(p_resource.groupAnnc))) {//groupAnnc + if(ispresent(p_resource.containerAnnc.expirationTime)) { + vc_localResourcesList[p_localResourceIndex].resource.groupAnnc.expirationTime := p_resource.groupAnnc.expirationTime; + } + if(ispresent(p_resource.containerAnnc.labels)) { + vc_localResourcesList[p_localResourceIndex].resource.groupAnnc.labels := p_resource.groupAnnc.labels; + } + if(ispresent(p_resource.containerAnnc.dynamicAuthorizationConsultationIDs)) { + vc_localResourcesList[p_localResourceIndex].resource.groupAnnc.dynamicAuthorizationConsultationIDs := p_resource.groupAnnc.dynamicAuthorizationConsultationIDs; + } + if(isvalue(p_nullFields)) { + if (p_nullFields[0] == "maxNrOfMembers") { + vc_localResourcesList[p_localResourceIndex].resource.groupAnnc.maxNrOfMembers := omit; + } + } } } //End of function @@ -4223,8 +4338,10 @@ module OneM2M_Functions { } else if (p_resourceType == int10029) { v_originalResourceIndex := f_generateAndSetLocalResource(m_primitiveContentTimeSeries(m_contentCreateTimeSeries), -, int29); } - p_requestPrimitive.primitiveContent := f_setLink(valueof(p_requestPrimitive.primitiveContent), f_getLocalResourceAddress(v_originalResourceIndex, -, e_spRelative)); - p_requestPrimitive.primitiveContent := f_setExpirationTime(valueof(p_requestPrimitive.primitiveContent), vc_localResourcesList[v_originalResourceIndex].resource); + if(v_originalResourceIndex != -1) { + p_requestPrimitive.primitiveContent := f_setLink(valueof(p_requestPrimitive.primitiveContent), f_getLocalResourceAddress(v_originalResourceIndex, -, e_spRelative)); + p_requestPrimitive.primitiveContent := f_setExpirationTime(valueof(p_requestPrimitive.primitiveContent), vc_localResourcesList[v_originalResourceIndex].resource); + } //TODO Add other resource types @@ -4367,7 +4484,21 @@ module OneM2M_Functions { var integer v_parentResourceIndex := -1; var MsgIn v_request; var ResponsePrimitive v_response; + var RequestPrimitive v_requestPrimitive; + var template XSD.AnyURI v_retargetingToCse2 := pattern "{PX_TS_CSE2.cseId}*"; + //Retargeting + [vc_auxiliaryCse2Up] mccPortIn.receive(mw_request(mw_requestPrimitive(-, v_retargetingToCse2))) -> value v_request { + log(__SCOPE__&": WARNING: Unexpected REQUEST message received targeting CSE2"); + mccPortInternal.send(v_request.primitive.requestPrimitive); + alt { + []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { + } + } + + f_send(e_mccPortIn, m_response(v_response)); + repeat; + } [] mccPortIn.receive(mw_request(mw_create())) -> value v_request { log(__SCOPE__&": WARNING: Unexpected CREATE message received"); @@ -4418,6 +4549,42 @@ module OneM2M_Functions { log(__SCOPE__&": WARNING: Unexpected message received"); repeat; } + [] mccPortInternal.receive(mw_retrieve(?)) -> value v_requestPrimitive { + log(__SCOPE__&": WARNING: Unexpected RETRIEVE message received"); + + f_processRetrieveRequestPrimitive(v_requestPrimitive); + mccPortInternal.send(vc_response.primitive.responsePrimitive); + repeat; + } + [] mccPortInternal.receive(mw_delete()) -> value v_requestPrimitive { + log(__SCOPE__&": WARNING: Unexpected DELETE message received"); + + f_processDeleteRequestPrimitive(v_requestPrimitive); + mccPortInternal.send(vc_response.primitive.responsePrimitive); + repeat; + } + [vc_auxiliaryCse2Up] infoPort.receive(SyncPoints:e_error) from vc_cse2 { + log(__SCOPE__&": ERROR: Component CSE2 failed"); + f_cse_postamble_deleteResourcesCSE(); + // Tear down + if(vc_config == e_cf02CseSimuMaster) { + f_cf02DownCseSimuMaster(); + kill; + } else if (vc_config == e_cf03) { + f_cf03Down(); + kill; + } else if (vc_config == e_cf04) { + f_cf04Down(); + kill; + } + } + [vc_config == e_cf02CseSimuMaster] infoPort.receive(SyncPoints:e_error) from vc_ae1 { + log(__SCOPE__&": ERROR: Component AE1 failed"); + f_cse_postamble_deleteResourcesCSE(); + // Tear down + f_cf02DownCseSimuMaster(); + kill; + } } /** @@ -4453,6 +4620,20 @@ module OneM2M_Functions { log(__SCOPE__&": WARNING: Unexpected message received"); repeat; } + [vc_config == e_cf02] infoPort.receive(SyncPoints:e_error) from vc_cse1 { + log(__SCOPE__&": ERROR: Component CSE1 failed"); + f_cse_postamble_deleteResources(); + // Tear down + f_cf02Down(); + kill; + } + [vc_auxiliaryAe2Up] infoPort.receive(SyncPoints:e_error) from vc_ae2 { + log(__SCOPE__&": ERROR: Component AE2 failed"); + f_cse_postamble_deleteResources(); + // Tear down + f_cf01Down(); + kill; + } } /** @@ -4503,24 +4684,27 @@ module OneM2M_Functions { * @param p_action Description of the given action to be performed by the IUT * @verdict */ - function f_cse_sendUtPrimitive(template UtTriggerPrimitive p_utRequest, in universal charstring p_action) runs on AeSimu { + function f_cse_sendUtPrimitive(template UtTriggerPrimitive p_utRequest, in universal charstring p_action, in boolean fromPostamble := true) runs on AeSimu { if (PX_UT_IMPLEMENTED){ - p_utRequest.requestPrimitive.requestIdentifier := "m_uttriggerPrimitive" & f_rnd(1, 1000000); - + if(not(ispresent(p_utRequest.utCommand))) { + p_utRequest.requestPrimitive.requestIdentifier := "m_uttriggerPrimitive" & f_rnd(1, 1000000); + } deactivate; f_sendUtPrimitive(p_utRequest); - f_checkAeSimuStatus(); - - activate(a_default()); - if(vc_config == e_cf01) { - vc_aeSimu := activate(a_cse_cf01()); - } else if ((vc_config == e_cf02) or (vc_config == e_cf02CseSimuMaster)) { - if(vc_testSystemRole == e_ae) { - vc_aeSimu := activate(a_cse_cf02_ae1()); + if(not(fromPostamble)) { + f_checkAeSimuStatus(); + + activate(a_default()); + if(vc_config == e_cf01) { + vc_aeSimu := activate(a_cse_cf01()); + } else if ((vc_config == e_cf02) or (vc_config == e_cf02CseSimuMaster)) { + if(vc_testSystemRole == e_ae) { + vc_aeSimu := activate(a_cse_cf02_ae1()); + } } } } else { @@ -4534,22 +4718,25 @@ module OneM2M_Functions { * @param p_action Description of the given action to be performed by the IUT * @verdict */ - function f_cse_sendUtPrimitive_cseSimu(template UtTriggerPrimitive p_utRequest, in universal charstring p_action) runs on CseSimu { + function f_cse_sendUtPrimitive_cseSimu(template UtTriggerPrimitive p_utRequest, in universal charstring p_action, in boolean fromPostamble := true) runs on CseSimu { if (PX_UT_IMPLEMENTED){ - p_utRequest.requestPrimitive.requestIdentifier := "m_uttriggerPrimitive" & f_rnd(1, 1000000); - + if(not(ispresent(p_utRequest.utCommand))) { + p_utRequest.requestPrimitive.requestIdentifier := "m_uttriggerPrimitive" & f_rnd(1, 1000000); + } deactivate; f_sendUtPrimitive(p_utRequest); - - f_checkCseSimuStatus(); - activate(a_default()); - if ((vc_config == e_cf02) or (vc_config == e_cf02CseSimuMaster)) { - if (vc_testSystemRole == e_cse) { - vc_cseSimu := activate(a_cse_cf02_cse1()); + if(not(fromPostamble)) { + f_checkCseSimuStatus(); + + activate(a_default()); + if ((vc_config == e_cf02) or (vc_config == e_cf02CseSimuMaster)) { + if (vc_testSystemRole == e_cse) { + vc_cseSimu := activate(a_cse_cf02_cse1()); + } } } } else { @@ -5183,7 +5370,7 @@ module OneM2M_Functions { p_request.requestIdentifier := valueof(p_request.requestIdentifier) & f_rnd(1, 1000000); - if((p_resourceType != int2) and (p_resourceType != int16)) { + if((p_resourceType != int2) and (p_resourceType != int16) and (p_resourceType != int10005)) { p_request.from_ := f_getOriginator(p_parentIndex, vc_testSystemRole); } //Only set To parameter if it has not been set yet @@ -5458,6 +5645,9 @@ module OneM2M_Functions { if(ischosen(p_contentResource.contentInstanceAnnc)) { return f_resourceIdCleaner(p_contentResource.contentInstanceAnnc.resourceID); } + if(ischosen(p_contentResource.cSEBaseAnnc)) { + return f_resourceIdCleaner(p_contentResource.cSEBaseAnnc.resourceID); + } if(ischosen(p_contentResource.groupAnnc)) { return f_resourceIdCleaner(p_contentResource.groupAnnc.resourceID); } @@ -5573,6 +5763,9 @@ module OneM2M_Functions { if(ischosen(p_contentResource.contentInstanceAnnc)) { return p_contentResource.contentInstanceAnnc.resourceName; } + if(ischosen(p_contentResource.cSEBaseAnnc)) { + return p_contentResource.cSEBaseAnnc.resourceName; + } if(ischosen(p_contentResource.groupAnnc)) { return p_contentResource.groupAnnc.resourceName; } @@ -5618,6 +5811,8 @@ 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.cSEBaseAnnc)) { + return PX_TS_CSE1.cseId; } else { return f_getOriginator(vc_resourcesList[p_targetResourceIndex].parentIndex, p_testSystemRole); } @@ -6001,6 +6196,9 @@ module OneM2M_Functions { else if(p_resourceType == int4) { return int10004; } + else if(p_resourceType == int5) { + return int10005; + } else if(p_resourceType == int9) { return int10009; } @@ -6087,6 +6285,31 @@ module OneM2M_Functions { return v_ipv4Address; } // end f_getIpv4Address + + /** + * @desc Get the CSE-ID of the target CSE + * @return CSE-ID + */ + function f_getTargetCseId(in XSD.ID p_resourceID) runs on Tester return XSD.ID { + var integer v_length := lengthof(p_resourceID); + var integer i; + var XSD.ID result := ""; + + if(f_isScopeSpRelative(p_resourceID)) { + //log("p_resourceID: " & p_resourceID); + for (i := 0; i < v_length; i := i + 1 ){ + if ((p_resourceID[i]=="/") and (i != 0)){ + //log("result: " & result); + return result; + } + else{ + result := result & p_resourceID[i]; + } + } + } //TODO Extend to absolute scope + //log("result: " & result); + return result; + } /** * @desc Saving of a resource and its parent index in the internal resource list @@ -6335,6 +6558,9 @@ module OneM2M_Functions { else if (ischosen(p_resource.contentInstanceAnnc)){ p_resource.contentInstanceAnnc.link := p_link; } + else if (ischosen(p_resource.cSEBaseAnnc)){ + p_resource.cSEBaseAnnc.link := p_link; + } else if (ischosen(p_resource.groupAnnc)){ p_resource.groupAnnc.link := p_link; } @@ -7101,7 +7327,7 @@ 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, template(omit) integer p_expectedTargetResourceIndex := omit) runs on CseSimu return integer { + function f_processUpdateRequestPrimitive(in RequestPrimitive p_request, in ResponseStatusCode p_responseStatusCode := int2004, template(omit) integer p_expectedTargetResourceIndex := omit, template (omit) AttributeList_1 p_nullFields := omit) runs on CseSimu return integer { var integer v_targetLocalResourceIndex := -1; v_targetLocalResourceIndex := f_getLocalResourceIndex(p_request.to_); @@ -7121,7 +7347,7 @@ module OneM2M_Functions { } if(p_responseStatusCode == int2004) { setverdict(pass, __SCOPE__&":INFO: Resource updated successfuly"); - f_updateLocalResource(v_targetLocalResourceIndex, p_request.primitiveContent); + f_updateLocalResource(v_targetLocalResourceIndex, p_request.primitiveContent, p_nullFields); vc_response.primitive.responsePrimitive.primitiveContent := vc_localResourcesList[v_targetLocalResourceIndex].resource; } else { setverdict(pass, __SCOPE__&":INFO: Resource update rejected"); diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index e4ae75bb890105efc5dd04545ee391dbd6d45633..bd6f671795f4a341c145b443718ae2bbd9949bc6 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -881,7 +881,7 @@ 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 := ?) modifies mw_create := { - resourceType := (int10001,int10002,int10003,int10004,int10009,int10010,int10013,int10014,int10016,int10018,int10024,int10028,int10029,int10030,int10034,int10038,int10039,int10040,int10041,int10042) + resourceType := (int10001,int10002,int10003,int10004,int10005, int10009,int10010,int10013,int10014,int10016,int10018,int10024,int10028,int10029,int10030,int10034,int10038,int10039,int10040,int10041,int10042) } /** @@ -916,14 +916,15 @@ module OneM2M_Templates { /** * @desc Reception template for CREATE AEAnnc for registration when AE-ID-Stem starts with S */ - template RequestPrimitive mw_createAEAnnc_s_ae_id(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?, template XSD.AnyURI p_link := ?) modifies mw_create := { + template RequestPrimitive mw_createAEAnnc_s_ae_id(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?, template XSD.AnyURI p_link := ?) modifies mw_createAnnc := { primitiveContent := {aEAnnc := mw_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds)} }; /** * @desc Reception template for CREATE AEAnnc as announced resource */ - template RequestPrimitive mw_createAEAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?, template XSD.AnyURI p_link := ?) modifies mw_create := { + template RequestPrimitive mw_createAEAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := *, template XSD.AnyURI p_link := ?) modifies mw_create := { + resourceType := int10002, primitiveContent := {aEAnnc := mw_contentCreateAEAnnc(-, p_accessControlPolicyIds)} }; @@ -969,7 +970,7 @@ module OneM2M_Templates { /** * @desc Reception template for CREATE AcpAnnc */ - template RequestPrimitive mw_createAccessControlPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + template RequestPrimitive mw_createAccessControlPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := { to_ := p_to, from_ := p_from, resourceType := int10001, @@ -979,7 +980,7 @@ module OneM2M_Templates { /** * @desc Reception template for CREATE AcpAnnc */ - template RequestPrimitive mw_createRemoteCSEAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?) modifies mw_create := { + template RequestPrimitive mw_createRemoteCSEAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?) modifies mw_createAnnc := { resourceType := int10016, primitiveContent := {remoteCSEAnnc := mw_contentCreateRemoteCSEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds)} }; @@ -992,6 +993,23 @@ module OneM2M_Templates { resourceType := int5, primitiveContent := {cSEBase := m_contentCreateCSEBase} }; + + /** + * @desc Base CREATE request primitive for CSEBaseAnnc resource + */ + template RequestPrimitive m_createCSEBaseAnncBase(template (value) XSD.ID p_from := PX_TS_CSE1.cseId, template (omit) AcpType p_accessControlPolicyIds := omit, XSD.AnyURI p_link := "NotInitialized") modifies m_create := { + from_ := p_from, + resourceType := int10005, + primitiveContent := {cSEBaseAnnc := m_contentCreateCSEBaseAnnc(-, p_accessControlPolicyIds, p_link)} + } + + /** + * @desc Reception template for CREATE CSEBaseAnnc + */ + template RequestPrimitive mw_createCSEBaseAnnc(template XSD.ID p_from := ?, template XSD.ID p_to := ?, template AcpType p_accessControlPolicyIds := ?) modifies mw_createAnnc := { + resourceType := int10005, + primitiveContent := {cSEBaseAnnc := mw_contentCreateCSEBaseAnnc({"Credential-ID:None"}, p_accessControlPolicyIds)} + }; /** @@ -1090,7 +1108,7 @@ module OneM2M_Templates { /** * @desc Base Reception template for CREATE ContainerAnnc */ - template RequestPrimitive mw_createContainerAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + template RequestPrimitive mw_createContainerAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := { resourceType := int10003, primitiveContent := {containerAnnc := mw_contentCreateContainerAnncBase} }; @@ -1156,7 +1174,7 @@ module OneM2M_Templates { /** * @desc Reception template for CREATE ContentInstanceAnnc */ - template RequestPrimitive mw_createContentInstanceAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + template RequestPrimitive mw_createContentInstanceAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := { resourceType := int10004, primitiveContent := {contentInstanceAnnc := mw_contentCreateContentInstanceAnncBase} }; @@ -1220,7 +1238,7 @@ module OneM2M_Templates { /** * @desc Reception template for CREATE GroupAnnc */ - template RequestPrimitive mw_createGroupAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + template RequestPrimitive mw_createGroupAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := { resourceType := int10009, primitiveContent := {groupAnnc := mw_contentCreateGroupAnncBase} }; @@ -1255,7 +1273,7 @@ module OneM2M_Templates { /** * @desc Reception template for CREATE MgmtObjAnnc */ - template RequestPrimitive mw_createMgmtObjAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + template RequestPrimitive mw_createMgmtObjAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := { resourceType := int10013, primitiveContent := {announcedMgmtResource := mw_contentCreateMgmtObjAnncBase} }; @@ -1281,7 +1299,7 @@ module OneM2M_Templates { /** * @desc Reception template for CREATE NodeAnnc */ - template RequestPrimitive mw_createNodeAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + template RequestPrimitive mw_createNodeAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := { resourceType := int10014, primitiveContent := {nodeAnnc := mw_contentCreateNodeAnncBase} }; @@ -1337,7 +1355,7 @@ module OneM2M_Templates { /** * @desc Reception template for CREATE ScheduleAnnc */ - template RequestPrimitive mw_createScheduleAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + template RequestPrimitive mw_createScheduleAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := { resourceType := int10018, primitiveContent := {scheduleAnnc := mw_contentCreateScheduleAnncBase} }; @@ -1484,7 +1502,7 @@ module OneM2M_Templates { /** * @desc Reception template for CREATE LocationPolicyAnnc */ - template RequestPrimitive mw_createLocationPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + template RequestPrimitive mw_createLocationPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := { resourceType := int10010, primitiveContent := {locationPolicyAnnc := mw_contentCreateLocationPolicyAnncBase} }; @@ -1633,7 +1651,7 @@ module OneM2M_Templates { /** * @desc Base Reception template for CREATE TimeSeriesInstanceAnnc */ - template RequestPrimitive mw_createTimeSeriesInstanceAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + template RequestPrimitive mw_createTimeSeriesInstanceAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_createAnnc := { resourceType := int10030, primitiveContent := {timeSeriesInstanceAnnc := mw_contentCreateTimeSeriesInstanceAnncBase} }; @@ -2704,6 +2722,60 @@ module OneM2M_Templates { choice := omit }; + /** + * @desc Base primitiveContent for CREATE operation for CSEBaseAnnc resource + * @param p_name Resource name + */ + template (value) CSEBaseAnnc_optional m_contentCreateCSEBaseAnnc (template (omit) Labels p_labels := (omit), template (omit)AcpType p_accessControlPolicyIds := omit, template (value) XSD.AnyURI p_link) := { + resourceName := omit,//NA M + resourceType := omit,//NA M + resourceID := omit,//NA M + parentID := omit,//NA M + creationTime := omit,//NA M + lastModifiedTime := omit,//NA M + labels := p_labels,//MA O + accessControlPolicyIDs := p_accessControlPolicyIds,//MA O + expirationTime := "29991231T235959",//MA M + link := p_link,//M + cseType := omit,//OA O + cSE_ID := omit,//OA M + supportedResourceType := omit,//OA M + pointOfAccess := omit,//OA O + nodeLink := omit,//OA O + dynamicAuthorizationConsultationIDs := omit,//OA O + contentSerialization := omit,//OA O + e2eSecInfo := omit,//OA O + supportedReleaseVersions := {"1", "2", "2a", "3"}, //MA M Mandatory for RemoteCSE from Release 2 + choice := omit//NA + }; + + /** + * @desc Base primitiveContent for CREATE operation for CSEBaseAnnc resource + * @param p_name Resource name + */ + template CSEBaseAnnc_optional mw_contentCreateCSEBaseAnnc (in template Labels p_labels := *, in template AcpType p_accessControlPolicyIds := ?, template XSD.AnyURI p_link := ?) := { + resourceName := omit,//NA M + resourceType := omit,//NA M + resourceID := omit,//NA M + parentID := omit,//NA M + creationTime := omit,//NA M + lastModifiedTime := omit,//NA M + labels := p_labels,//MA O + accessControlPolicyIDs := p_accessControlPolicyIds,//MA O + expirationTime := ?,//MA M + link := p_link,//M + cseType := *,//OA O + cSE_ID := *,//OA M + supportedResourceType := ?,//OA M + pointOfAccess := *,//OA O + nodeLink := *,//OA O + dynamicAuthorizationConsultationIDs := *,//OA O + contentSerialization := *,//OA O + e2eSecInfo := ?,//OA O + supportedReleaseVersions := ?, //MA M Mandatory for RemoteCSE from Release 2 + choice := omit//NA + }; + /** * @desc Base primitiveContent for CREATE operation for PollingChannel resource * @param p_accessControlPolicyIds ACP IDs for the PollingChannel @@ -2897,7 +2969,7 @@ module OneM2M_Templates { creationTime := omit,//NA M lastModifiedTime := omit,//NA M labels := *,//MA O - accessControlPolicyIDs := ?,//MA O + accessControlPolicyIDs := *,//MA O //TODO Fix if acpi is mandatory for announced resources (SDS discussion) expirationTime := ?,//MA M link := ?,//M dynamicAuthorizationConsultationIDs := *, //OA O @@ -3971,7 +4043,7 @@ module OneM2M_Templates { creationTime := omit,//NA M lastModifiedTime := omit,//NA M labels := *,//MA O - accessControlPolicyIDs := ?,//MA O + accessControlPolicyIDs := *,//MA O expirationTime := ?,//MA M link := ?, //M dynamicAuthorizationConsultationIDs := *,//OA O @@ -4330,7 +4402,7 @@ module OneM2M_Templates { creationTime := omit,//NA M lastModifiedTime := omit,//NA M labels := *,//MA - accessControlPolicyIDs := ?,//MA + accessControlPolicyIDs := *,//MA expirationTime := ?,//MA M link := ?, //M NA dynamicAuthorizationConsultationIDs := *, //OA @@ -6193,6 +6265,24 @@ module OneM2M_Templates { template AccessControlPolicy_optional mw_contentAcp_rc8 modifies mw_contentAcp_allOmit := { choice := {choice_list := ?} //O } + + template AccessControlPolicyAnnc_optional mw_contentAcpAnncBase := { + resourceName := ?,//M + resourceType := ?,//M + resourceID := ?,//M + parentID := ?,//M + creationTime := ?,//M + lastModifiedTime := ?,//M + labels := *,//O + expirationTime := ?,//M + link := ?,//M + privileges := ?,//M + selfPrivileges := ?,//M + authorizationDecisionResourceIDs := *,//O + authorizationPolicyResourceIDs := *,//O + authorizationInformationResourceIDs := *,//O + choice := *//O + }; template Group_optional mw_contentGroupBase := { resourceName := ?,//M @@ -6309,6 +6399,32 @@ module OneM2M_Templates { choice := {choice_list := ?} //O } + template GroupAnnc_optional mw_contentGroupAnncBase := { + resourceName := ?,//M + resourceType := ?,//M + resourceID := ?,//M + parentID := ?,//M + creationTime := ?,//M + lastModifiedTime := ?,//M + labels := *,//O + accessControlPolicyIDs := *,//O + expirationTime := ?,//M + link := ?,//M + dynamicAuthorizationConsultationIDs := *, //O + memberType := *,//O + specializationType := *,//O + currentNrOfMembers := *,//O + maxNrOfMembers := *,//O + memberIDs := *,//O + membersAccessControlPolicyIDs := *,//O + memberTypeValidated := *,//O + consistencyStrategy := *,//O + groupName := *,//O + semanticSupportIndicator := *,//O + notifyAggregation := *,//O + choice := *//O + }; + template (value) MgmtCmd_optional m_contentMgmtCmd_allOmit := { resourceName := omit,//M resourceType := omit,//M @@ -6838,6 +6954,25 @@ module OneM2M_Templates { choice := omit }; + template ContentInstanceAnnc_optional mw_contentContentInstanceAnncBase := { + resourceName := ?,//M + resourceType := ?,//M + resourceID := ?,//M + parentID := ?,//M + creationTime := ?,//M + lastModifiedTime := ?,//M + labels := *,//O + expirationTime := ?,//M + link := ?,//M + stateTag := *,//O + contentInfo := *,//O + contentSize := *,//O + ontologyRef := *,//O + content := *,//O + choice := * //O + + }; + template Container_optional mw_contentContainerBase := { resourceName := ?,//M resourceType := ?,//M @@ -6969,6 +7104,30 @@ module OneM2M_Templates { choice := {choice_list := ?} //O } + template ContainerAnnc_optional mw_contentContainerAnncBase := { + resourceName := ?,//M + resourceType := ?,//M + resourceID := ?,//M + parentID := ?,//M + creationTime := ?,//M + lastModifiedTime := ?,//M + labels := *,//O + accessControlPolicyIDs := *,//O + expirationTime := ?,//M + link := ?,//M + dynamicAuthorizationConsultationIDs := *, //O + stateTag := *,//O + maxNrOfInstances := *,//O + maxByteSize := *,//O + maxInstanceAge := *,//O + currentNrOfInstances := *,//O + currentByteSize := *,//O + locationID := *,//O + ontologyRef := *,//O + disableRetrieval := *, //O + choice := *//O + }; + template (value) Notification m_contentNotification_allOmit := { notificationEvent:= omit, verificationRequest := omit, @@ -7190,6 +7349,33 @@ module OneM2M_Templates { choice := {choice_list := ?} //O } + template TimeSeriesAnnc_optional mw_contentTimeSeriesAnncBase := { + resourceName := ?,//M + resourceType := ?,//M + resourceID := ?,//M + parentID := ?,//M + creationTime := ?,//M + lastModifiedTime := ?,//M + labels := *,//O + accessControlPolicyIDs := *,//O + expirationTime := ?,//M + link := ?,//M + dynamicAuthorizationConsultationIDs := *,//O + maxNrOfInstances := *,//O + maxByteSize := *,//O + maxInstanceAge := *,//O + currentNrOfInstances := *,//O + currentByteSize := *,//O + periodicInterval := *,//O + missingDataMaxNr := *,//O + missingDataList := *,//O + missingDataCurrentNr := *,//O + missingDataDetectTimer := *,//O + ontologyRef := *,//O + contentInfo := *,//O + choice := *//O + }; + template TimeSeriesInstance_optional mw_contentTimeSeriesInstanceBase := { resourceName := ?,//M resourceType := ?,//M @@ -7207,6 +7393,23 @@ module OneM2M_Templates { contentSize := ?,//M choice := *//O }; + + template TimeSeriesInstanceAnnc_optional mw_contentTimeSeriesInstanceAnncBase := { + resourceName := ?,//M + resourceType := ?,//M + resourceID := ?,//M + parentID := ?,//M + creationTime := ?,//M + lastModifiedTime := ?,//M + labels := *,//O + expirationTime := ?,//M + link := ?,//M + dataGenerationTime := *,//O + content := *,//O + sequenceNr := *,//O + contentSize := *,//O + choice := *//O + }; template (value) Role_optional mw_contentRole_allOmit := { resourceName := omit,//O @@ -7867,6 +8070,42 @@ module OneM2M_Templates { }; + /** + * @desc Base Reception template for request primitive + */ + template RequestPrimitive mw_requestPrimitive(template XSD.ID p_from := *, template XSD.ID p_to := ?) := { + operation := ?, + 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 ResponsePrimitive mw_responsePrimitiveInverse(ResponseStatusCode p_statusCode) := { responseStatusCode := complement(p_statusCode), requestIdentifier := ?, @@ -8098,6 +8337,7 @@ module OneM2M_Templates { group UpperTester { template (value) UtTriggerPrimitive m_utCreate := { + utCommand := omit, requestPrimitive := { operation := int1, to_ := "NotInitialized", @@ -8182,6 +8422,7 @@ module OneM2M_Templates { } template (value) UtTriggerPrimitive m_utRetrieve(XSD.ID p_targetResourceAddress) := { + utCommand := omit, requestPrimitive := { operation := int2, to_ := p_targetResourceAddress, @@ -8234,6 +8475,7 @@ module OneM2M_Templates { } template (value) UtTriggerPrimitive m_utUpdate := { + utCommand := omit, requestPrimitive := { operation := int3, to_ := "NotInitialized", @@ -8286,6 +8528,7 @@ module OneM2M_Templates { } template (value) UtTriggerPrimitive m_utDelete := { + utCommand := omit, requestPrimitive := { operation := int4, to_ := "NotInitialized", @@ -8515,6 +8758,7 @@ module OneM2M_Templates { } template (value) UtTriggerPrimitive m_utNotify := { + utCommand := omit, requestPrimitive := { operation := int5, to_ := "NotInitialized", @@ -8549,6 +8793,12 @@ module OneM2M_Templates { }, forcedFields := omit }; + + template (value) UtTriggerPrimitive m_utCommand_reset := { + utCommand := "Reset", + requestPrimitive := omit, + forcedFields := omit + } } group t8_primitives { diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn index b78c80dd7be33d46acd8f561428e31cd247ed86a..66b9933e5f4bf0a660b921ee6069df3ec97caf6a 100644 --- a/LibOneM2M/OneM2M_TestSystem.ttcn +++ b/LibOneM2M/OneM2M_TestSystem.ttcn @@ -52,6 +52,7 @@ module OneM2M_TestSystem { var Configurations vc_config; var TestSystemRole vc_testSystemRole; var boolean vc_componentRegistered := false; + var boolean vc_resetRequired := false; //Default behaviour var default vc_aeSimu := null; var default vc_cseSimu := null; diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn index e38c7f43c0130183f3ada473ed43476e2acb7919..0f6925e5ba76e5eca9a1f1791da3006ab4aa4910 100644 --- a/LibOneM2M/OneM2M_TypesAndValues.ttcn +++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn @@ -187,7 +187,8 @@ module OneM2M_TypesAndValues { } type record UtTriggerPrimitive { - RequestPrimitive requestPrimitive, + UtCommands utCommand optional, + RequestPrimitive requestPrimitive optional, AttributeAux_list forcedFields optional } with { @@ -204,6 +205,8 @@ module OneM2M_TypesAndValues { charstring value_ optional }; + type charstring UtCommands (pattern "(Reset|Shutdown)"); + type record of AttributeAux AttributeAux_list; group ESPrimConfiguration { @@ -251,7 +254,7 @@ group OptionalResourceTypes { Labels labels optional, Timestamp expirationTime optional, ListOfURIs announceTo optional, - record length(1 .. infinity) of XSD.NCName announcedAttribute optional, + record length(1 .. infinity) of XSD.NCName announcedAttribute optional,//TODO A list that can be empty SetOfAcrs privileges optional, SetOfAcrs selfPrivileges optional, ListOfURIs authorizationDecisionResourceIDs optional, @@ -604,7 +607,7 @@ group OptionalResourceTypes { Timestamp expirationTime optional, ListOfURIs dynamicAuthorizationConsultationIDs optional, ListOfURIs announceTo optional, - record length(1 .. infinity) of XSD.NCName announcedAttribute optional, + record length(1 .. infinity) of XSD.NCName announcedAttribute optional,//TODO A list that can be empty XSD.NonNegativeInteger stateTag optional, XSD.ID creator optional, XSD.NonNegativeInteger maxNrOfInstances optional, @@ -840,6 +843,79 @@ group OptionalResourceTypes { variant (choice.choice_list[-].group_) "name as 'group'"; }; + type record CSEBaseAnnc_optional + { + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + Labels labels optional, + Timestamp expirationTime optional, + XSD.AnyURI link optional, + AcpType accessControlPolicyIDs optional, + CseTypeID cseType optional, + XSD.ID cSE_ID optional, + ResourceTypeList_1 supportedResourceType optional,//TODO Remove inline type + PoaList pointOfAccess optional, + XSD.AnyURI nodeLink optional, + ListOfURIs dynamicAuthorizationConsultationIDs optional, + Serializations contentSerialization optional, + E2eSecInfo e2eSecInfo optional, + SupportedReleaseVersions supportedReleaseVersions optional, + union { + record length(1 .. infinity) of ChildResourceRef childResource_list, + record length(1 .. infinity) of union { + RemoteCSE remoteCSE, + RemoteCSEAnnc remoteCSEAnnc, + Node node, + AE aE, + Container container, + Group group_, + AccessControlPolicy accessControlPolicy, + Subscription subscription, + MgmtCmd mgmtCmd, + LocationPolicy locationPolicy, + StatsConfig statsConfig, + StatsCollect statsCollect, + Request request, + Delivery delivery, + Schedule schedule, + M2mServiceSubscriptionProfile m2mServiceSubscriptionProfile, + ServiceSubscribedAppRule serviceSubscribedAppRule, + Role role, + XSD.Token token, + Sg_flexContainerResource_group sg_flexContainerResource, + AuthorizationDecision_1 authorizationDecision, + AuthorizationPolicy authorizationPolicy, + AuthorizationInformation authorizationInformation, + OntologyRepository ontologyRepository, + SemanticMashupJobProfile semanticMashupJobProfile, + SemanticMashupInstance semanticMashupInstance, + AEContactList aEContactList, + LocalMulticastGroup localMulticastGroup, + CrossResourceSubscription crossResourceSubscription, + BackgroundDataTransfer backgroundDataTransfer, + TransactionMgmt transactionMgmt, + Transaction transaction + } choice_list + } choice optional + } + with { + variant "element"; + variant (resourceName) "attribute"; + variant (cSE_ID) "name as 'CSE-ID'"; + variant (supportedResourceType) "list"; + variant (choice) "untagged"; + variant (choice.childResource_list) "untagged"; + variant (choice.childResource_list[-]) "name as 'childResource'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; + variant (choice.choice_list[-].aE) "name as capitalized"; + variant (choice.choice_list[-].group_) "name as 'group'"; + }; + type record Delivery_optional { ResourceName resourceName optional, @@ -976,7 +1052,7 @@ group OptionalResourceTypes { Timestamp expirationTime optional, ListOfURIs dynamicAuthorizationConsultationIDs optional, ListOfURIs announceTo optional, - record length(1 .. infinity) of XSD.NCName announcedAttribute optional, + record length(1 .. infinity) of XSD.NCName announcedAttribute optional,//TODO A list that can be empty XSD.ID creator optional, MemberType memberType optional, SpecializationType specializationType optional, @@ -2016,7 +2092,7 @@ group OptionalResourceTypes { Timestamp expirationTime optional, ListOfURIs dynamicAuthorizationConsultationIDs optional, ListOfURIs announceTo optional, - record length(1 .. infinity) of XSD.NCName announcedAttribute optional, + record length(1 .. infinity) of XSD.NCName announcedAttribute optional,//TODO A list that can be empty XSD.ID creator optional, XSD.NonNegativeInteger maxNrOfInstances optional, XSD.NonNegativeInteger maxByteSize optional, @@ -4195,6 +4271,7 @@ group OtherTypes { Delivery_optional delivery, FlexContainerResource_optional flexContainer, CSEBase_optional cSEBase, + CSEBaseAnnc_optional cSEBaseAnnc, Group_optional group_, GroupAnnc_optional groupAnnc, LocationPolicy_optional locationPolicy, diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index ed4d85753066849822a7842513cb608d3740bcc0..3738f7b198b9410bef77b6388634e43f9a9a8701 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -10111,7 +10111,7 @@ module OneM2M_PermutationFunctions { // Local variables var RequestPrimitive v_request; - var integer v_parentIndex := -1; + var integer v_announcedParentIndex := -1; var integer v_aeIndex := -1; var integer v_resourceIndex; var ResponsePrimitive v_responsePrimitive; @@ -10123,6 +10123,7 @@ module OneM2M_PermutationFunctions { // Test component configuration f_cf02Up(); + vc_resetRequired := true; // Test adapter configuration @@ -10130,15 +10131,14 @@ module OneM2M_PermutationFunctions { vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - //remoteCSE is by default the parent for an announced resource - v_parentIndex := 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); + //Announced parent resource is by default the parent for an announced resource + v_announcedParentIndex := f_getLatestLocalResourceIndex(vc_cse1); + // Test Body if (ispresent (p_requestUpdatePrimitive)) { v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); @@ -10148,21 +10148,21 @@ 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(), -, v_parentIndex)); + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createContainerAnnc(), -, v_announcedParentIndex)); 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); //Retrieve the parent resource index - v_parentIndex := f_getLatestLocalResourceIndex(vc_cse1); + v_announcedParentIndex := f_getLatestLocalResourceIndex(vc_cse1); } 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)); + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createTimeSeriesAnnc(), -, v_announcedParentIndex)); 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); //Retrieve the parent resource index - v_parentIndex := f_getLatestLocalResourceIndex(vc_cse1); + v_announcedParentIndex := f_getLatestLocalResourceIndex(vc_cse1); } else { v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_aeIndex); } @@ -10170,7 +10170,7 @@ module OneM2M_PermutationFunctions { v_responsePrimitive.responseStatusCode := int2001; } - vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_parentIndex)); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_announcedParentIndex)); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; @@ -10192,7 +10192,7 @@ module OneM2M_PermutationFunctions { // Postamble f_cse_postamble_deleteResources(); - + // Tear down f_cf02Down(); @@ -10205,12 +10205,14 @@ module OneM2M_PermutationFunctions { function f_CSE_ANNC_CRE_001(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on AeSimu system CseSystem { //Local variables var integer v_aeIndex := -1; + var integer v_announcedParentIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; //Test control //Test component configuration f_cf02Up(); + vc_resetRequired := true; //Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); @@ -10223,9 +10225,13 @@ module OneM2M_PermutationFunctions { f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc)); + //Retrieve the announced parent resource index + v_announcedParentIndex := f_getLatestLocalResourceIndex(vc_cse1); + + //Test body + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_announcedParentIndex)); f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); - vc_cse1.done; + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //Postamble f_cse_postamble_deleteResources(); @@ -10238,15 +10244,17 @@ module OneM2M_PermutationFunctions { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; - var XSD.AnyURI v_remoteCSEAnncAddress; + var integer v_announcedResourceIndex := -1; var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()}); var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE; - //v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId}; + var ResponsePrimitive v_response; + v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId}; // Test control // Test component configuration f_cf02UpCseSimuMaster(-, true); + vc_resetRequired := true; // Test adapter configuration @@ -10268,16 +10276,57 @@ module OneM2M_PermutationFunctions { //Update of the resource so that it gets announced vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_updateRequest, -)); - //IUT should announce itself by updating announceTo attribute of remoteCSE - v_updateRemoteCse.primitiveContent.remoteCSE.announceTo := {PX_TS_CSE2.cseId}; - f_cse_updateResourceHandler(vc_localRemoteCseIndex, v_updateRemoteCse, -); - - //Then, IUT announces the resource on the remoteCSEAnnc resource - v_remoteCSEAnncAddress := f_getLatestLocalResourceAddress(vc_cse2); - p_createRequestAnnc.to_ := v_remoteCSEAnncAddress; - - f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, omit); + //IUT should first create CSEBaseAnnc at the announcement target, and then, IUT announces the resource on the remoteCSEAnnc resource + //p_createRequestAnnc.to_ := PX_TS_CSE1.cseId; + vc_cse2.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(mw_createAnnc(-, PX_TS_CSE2.cseId))) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Expected Announcement received"); + + mccPortInternal.send(vc_request.primitive.requestPrimitive); + alt { + []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { + } + } + f_send(e_mccPortIn, m_response(v_response)); + + //Retrieve the CSEBaseAnnc resource index + if(v_response.responseStatusCode == int2001) { + tc_ac.start; + repeat; + } else { + setverdict(fail, __SCOPE__ & ":ERROR: CSEBaseAnnc not created"); + } + } + [] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) == PX_TS_CSE2.cseId) { + mccPortInternal.send(vc_request.primitive.requestPrimitive); + alt { + []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { + } + } + + f_send(e_mccPortIn, m_response(v_response)); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Wrong announcement target"); + v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + if(getverdict == inconc) { + setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address"); + } + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble @@ -10302,6 +10351,7 @@ module OneM2M_PermutationFunctions { // Test component configuration f_cf02UpCseSimuMaster(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE @@ -10311,7 +10361,7 @@ module OneM2M_PermutationFunctions { //Preamble vc_ae1.start(f_cse_createResource(int2,v_create)); - f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); @@ -10352,18 +10402,23 @@ module OneM2M_PermutationFunctions { function f_CSE_ANNC_CRE_005(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem { // Local variables var integer v_aeIndex := -1; - var XSD.AnyURI v_remoteCSEAnncAddress; + var integer v_cSEBaseAnncIndex := -1; + var integer v_containerAnncIndex := -1; + var integer v_announcedResourceIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); var template RequestPrimitive v_createContainer := m_createContainerBase; var template RequestPrimitive v_createContainerAnnc := mw_createContainerAnnc; var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()}); - var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE; - //v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId}; + var ResponsePrimitive v_response; + + v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId}; + v_createContainer.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId}; // Test control // Test component configuration f_cf02UpCseSimuMaster(-, true); + vc_resetRequired := true; // Test adapter configuration // Register the CSE @@ -10375,32 +10430,52 @@ module OneM2M_PermutationFunctions { v_aeIndex := f_getLatestResourceIndex(vc_ae1); - v_createContainer.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId}; - v_createContainer.primitiveContent.container.resourceName := "TriggerAnnounceIUT"; + //Trigger creation of CSEBaseAnnc + vc_cse2.start(f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, -)); + v_createContainer.primitiveContent.container.resourceName := "TriggerCreationCSEBaseAnnc"; vc_ae1.start(f_cse_createResource(int3,v_createContainer, v_aeIndex)); - - //IUT shall announce itself by updating announceTo attribute of its remoteCSE on its registrar (CSE1) - v_updateRemoteCse.primitiveContent.remoteCSE.announceTo := {PX_TS_CSE2.cseId}; - f_cse_updateResourceHandler(vc_localRemoteCseIndex, v_updateRemoteCse); - - //Then, IUT announces the resource on the remoteCSEAnnc - v_remoteCSEAnncAddress := f_getLatestLocalResourceAddress(vc_cse2); - v_createContainerAnnc.to_ := v_remoteCSEAnncAddress; - - f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, omit); - + f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); + + //Then, IUT announces the resource on the CSEBaseAnnc + v_containerAnncIndex := f_getLatestLocalResourceIndex(vc_cse2); + v_cSEBaseAnncIndex := v_containerAnncIndex -1; // Test Body + vc_cse2.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_cSEBaseAnncIndex)); vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); - //IUT shall then create the announced resource on its remoteCSEAnnc as indicated in the announceTo attribute returned by its registrar (CSE1) - p_createRequestAnnc.to_ := v_remoteCSEAnncAddress; - - f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, omit); - + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) == PX_TS_CSE2.cseId) { + mccPortInternal.send(vc_request.primitive.requestPrimitive); + alt { + []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { + setverdict(pass, __SCOPE__ & ":INFO: Announcement retargeted"); + } + } + + f_send(e_mccPortIn, m_response(v_response)); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Wrong announcement target"); + v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + if(getverdict == inconc) { + setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address"); + } + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); - + // Postamble f_cse_postamble_deleteResourcesCSE(); @@ -10409,75 +10484,92 @@ module OneM2M_PermutationFunctions { }//end f_CSE_ANNC_CRE_005 - function f_CSE_ANNC_CRE_006(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem { + function f_CSE_ANNC_CRE_006(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; - var integer v_parentIndex := -1; - var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); + var RequestPrimitive v_create; // Test control // Test component configuration - f_cf02UpCseSimuMaster(); + f_cf02Up(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE - vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); - v_parentIndex := vc_localRemoteCseIndex; + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()}))); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //Preamble - vc_ae1.start(f_cse_createResource(int2,v_create)); - f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_cse_preamble_registerAe(); - v_aeIndex := f_getLatestResourceIndex(vc_ae1); - v_resourceIndex := v_aeIndex; // Test Body if (p_resourceType == int4) { v_create := m_createContainerBase; - v_create.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; - vc_ae1.start(f_cse_createResource(int3,v_create, v_aeIndex)); - v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createContainerAnnc(), -, -); - f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); - v_resourceIndex := f_getLatestResourceIndex(vc_ae1); + v_resourceIndex := f_cse_createResource(int3,v_create, v_aeIndex); } else if (p_resourceType == int30) { v_create := m_createTimeSeriesBase; - v_create.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; - vc_ae1.start(f_cse_createResource(int29,v_create, v_aeIndex)); - v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createTimeSeriesAnnc(), -, -); - f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); - v_resourceIndex := f_getLatestResourceIndex(vc_ae1); + v_resourceIndex := f_cse_createResource(int29,v_create, v_aeIndex); } - vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_resourceIndex)); - - f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_parentIndex); - - f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); - + f_send(e_mcaPort, m_request(f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_resourceIndex))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__, ": Resource created successfully"); + if(ischosen(vc_response.primitive.responsePrimitive.primitiveContent.contentInstance)) { + if(ispresent(vc_response.primitive.responsePrimitive.primitiveContent.contentInstance.announceTo)) { + if(lengthof(vc_response.primitive.responsePrimitive.primitiveContent.contentInstance.announceTo) != 0) { + setverdict(fail, __SCOPE__, ": Resource contains the attribute announceTo"); + } + } + } else if(ischosen(vc_response.primitive.responsePrimitive.primitiveContent.timeSeriesInstance)) { + if(ispresent(vc_response.primitive.responsePrimitive.primitiveContent.timeSeriesInstance.announceTo)) { + if(lengthof(vc_response.primitive.responsePrimitive.primitiveContent.timeSeriesInstance.announceTo) != 0) { + setverdict(fail, __SCOPE__, ": Resource contains the attribute announceTo"); + } + } + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__, ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__, ": Error while creating resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__, ": No answer while creating resource ContentInstance"); + } + } // Postamble - f_cse_postamble_deleteResourcesCSE(); + f_cse_postamble_deleteResources(); // Tear down - f_cf02DownCseSimuMaster(); + f_cf02Down(); }//end f_CSE_ANNC_CRE_006 function f_CSE_ANNC_CRE_007(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem { // Local variables var integer v_aeIndex := -1; - var XSD.AnyURI v_remoteCSEAnncAddress; + var integer v_announcedResourceIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()}); var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE; - //v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId}; + var ResponsePrimitive v_response; + v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId}; // Test control // Test component configuration f_cf02UpCseSimuMaster(-, true); - + vc_resetRequired := true; + // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(v_createRemoteCse); @@ -10488,19 +10580,56 @@ module OneM2M_PermutationFunctions { v_aeIndex := f_getLatestResourceIndex(vc_ae1); - p_requestCreatePrimitive.primitiveContent.container.resourceName := "TriggerAnnounceIUT"; - vc_ae1.start(f_cse_createResource(int3,p_requestCreatePrimitive, v_aeIndex)); - - //IUT shall announce itself by updating announceTo attribute of its remoteCSE on its registrar (CSE1) - v_updateRemoteCse.primitiveContent.remoteCSE.announceTo := {PX_TS_CSE2.cseId}; - f_cse_updateResourceHandler(vc_localRemoteCseIndex, v_updateRemoteCse); - - //Then, IUT announces the resource on the remoteCSEAnnc - v_remoteCSEAnncAddress := f_getLatestLocalResourceAddress(vc_cse2); - p_createRequestAnnc.to_ := v_remoteCSEAnncAddress; - - f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, omit); + vc_cse2.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -)); + vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(mw_createAnnc(-, PX_TS_CSE2.cseId))) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Expected Announcement received"); + + mccPortInternal.send(vc_request.primitive.requestPrimitive); + alt { + []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { + } + } + f_send(e_mccPortIn, m_response(v_response)); + + //Retrieve the CSEBaseAnnc resource index + if(v_response.responseStatusCode == int2001) { + tc_ac.start; + repeat; + } else { + setverdict(fail, __SCOPE__ & ":ERROR: CSEBaseAnnc not created"); + } + } + [] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) == PX_TS_CSE2.cseId) { + mccPortInternal.send(vc_request.primitive.requestPrimitive); + alt { + []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { + setverdict(pass, __SCOPE__ & ":INFO: Announcement retargeted"); + } + } + + f_send(e_mccPortIn, m_response(v_response)); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Wrong announcement target"); + v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + if(getverdict == inconc) { + setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address"); + } + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble @@ -10524,6 +10653,7 @@ module OneM2M_PermutationFunctions { // Test component configuration f_cf02UpCseSimuMaster(); + vc_resetRequired := true; //Test adapter configuration // Register the CSE @@ -10531,7 +10661,7 @@ module OneM2M_PermutationFunctions { v_parentIndex := vc_localRemoteCseIndex; vc_ae1.start(f_cse_createResource(int2,v_create)); - f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); @@ -10579,12 +10709,12 @@ module OneM2M_PermutationFunctions { // Test component configuration f_cf02UpCseSimuMaster(); - + vc_resetRequired := true; + //Test adapter configuration // Register the CSE vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); - f_checkCseSimuStatus(); vc_ae1.start(f_cse_createResource(int2,v_create)); v_aEAnncIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); @@ -10593,7 +10723,7 @@ module OneM2M_PermutationFunctions { // Test Body vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); - f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_aEAnncIndex); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble @@ -10608,14 +10738,15 @@ module OneM2M_PermutationFunctions { group Retrieve { - function f_CSE_ANNC_RET_001(ResourceType p_resourceType, template PrimitiveContent p_originalResource, template RequestPrimitive p_createRequestAnnc) runs on AeSimu system CseSystem { + function f_CSE_ANNC_RET_001(ResourceType p_resourceType, template PrimitiveContent p_originalResource, template RequestPrimitive p_createRequestAnnc, template PrimitiveContent p_primitiveContent) runs on AeSimu system CseSystem { // Local variables var integer v_cseBaseIndex := -1; var integer v_aeIndex := -1; var integer v_remoteCSEIndex := -1; var integer v_originalResourceIndex := -1; - var XSD.ID v_originalResourceAddress; + var integer v_cseBaseAnncIndex := -1; + var XSD.ID v_originalResourceAddress, v_cseBaseResourceAddress; var template RequestPrimitive v_createAE := m_createAe(PX_TS_AE1.appId, omit, omit); var template RequestPrimitive v_createAcp := m_createAcpBase; var XSD.ID v_resourceAnncAddress; @@ -10625,6 +10756,7 @@ module OneM2M_PermutationFunctions { // Test component configuration f_cf02Up(); + vc_resetRequired := true; // Test adapter configuration @@ -10635,27 +10767,21 @@ module OneM2M_PermutationFunctions { v_cseBaseIndex := f_getLatestLocalResourceIndex(vc_cse1); + v_cseBaseResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, -, e_spRelative); + //Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - v_remoteCSEIndex := f_getLatestResourceIndex(vc_cse1); - - //Creating resource in Hosting CSE - vc_cse1.start(f_generateAndSetLocalResource(valueof(p_originalResource), v_cseBaseIndex, p_resourceType)); - f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - - v_originalResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, -, -); - - v_originalResourceIndex := f_getLatestLocalResource(vc_cse1); - if((p_resourceType == int3) or (p_resourceType == int9) or (p_resourceType == int29)) { p_createRequestAnnc := f_setAcpId(p_createRequestAnnc, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}); } - p_createRequestAnnc.primitiveContent := f_setLink(valueof(p_createRequestAnnc.primitiveContent), v_originalResourceAddress); - p_createRequestAnnc.primitiveContent := f_setExpirationTime(valueof(p_createRequestAnnc.primitiveContent), vc_resourcesList[v_originalResourceIndex].resource); - vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_remoteCSEIndex)); + vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int5), m_createCSEBaseAnncBase(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, v_cseBaseResourceAddress), -)); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + v_cseBaseAnncIndex := f_getLatestResourceIndex(vc_cse1); + //Creating announced resource (original resource in CSE1) in Hosting CSE + vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_cseBaseAnncIndex)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceAnncAddress := f_getLatestResourceAddress(vc_cse1, -, -); @@ -10664,10 +10790,14 @@ module OneM2M_PermutationFunctions { f_send(e_mcaPort, m_request(m_retrieve(v_resourceAnncAddress, f_getOriginator(v_aeIndex)))); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_primitiveContent))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__, ": Resource " & int2str(enum2int(p_resourceType)) & " retrieved successfully"); } + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__, ": Wrong content"); + } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__, ": Wrong response status code"); @@ -10685,27 +10815,26 @@ module OneM2M_PermutationFunctions { }//end f_CSE_ANNC_RET_001 - function f_CSE_ANNC_RET_002(ResourceType p_resourceType, template PrimitiveContent p_originalResource, template RequestPrimitive p_createRequestAnnc) runs on AeSimu system CseSystem { + function f_CSE_ANNC_RET_002(ResourceType p_resourceType, template PrimitiveContent p_originalResource, template RequestPrimitive p_createRequestAnnc, template PrimitiveContent p_primitiveContent) runs on AeSimu system CseSystem { - //Local variables - var template RequestPrimitive v_request; + // Local variables var integer v_cseBaseIndex := -1; var integer v_aeIndex := -1; var integer v_remoteCSEIndex := -1; - var integer v_originalResourceIndex, v_originalLocalResourceIndex := -1; - var XSD.ID v_originalResourceAddress; - var XSD.ID v_resourceAnncAddress; + var integer v_originalResourceIndex := -1; + var integer v_cseBaseAnncIndex := -1; + var XSD.ID v_originalResourceAddress, v_cseBaseResourceAddress; var template RequestPrimitive v_createAE := m_createAe(PX_TS_AE1.appId, omit, omit); var template RequestPrimitive v_createAcp := m_createAcpBase; - var integer v_aeAnncIndex; - var integer v_resourceAnncIndex; + var XSD.ID v_resourceAnncAddress; var integer v_acpIndex; - var XSD.ID v_membersAcpId; + var RequestPrimitive v_request; - //Test control + // Test control // Test component configuration f_cf02Up(); + vc_resetRequired := true; // Test adapter configuration @@ -10716,36 +10845,43 @@ module OneM2M_PermutationFunctions { v_cseBaseIndex := f_getLatestLocalResourceIndex(vc_cse1); + v_cseBaseResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, -, e_spRelative); + //Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - v_remoteCSEIndex := f_getLatestResourceIndex(vc_cse1); - if((p_resourceType == int3) or (p_resourceType == int9) or (p_resourceType == int29)) { p_createRequestAnnc := f_setAcpId(p_createRequestAnnc, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}); } - //Creation of original resource locally and then announcement of it to IUT - vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_remoteCSEIndex)); + vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int5), m_createCSEBaseAnncBase(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, v_cseBaseResourceAddress), -)); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); + v_cseBaseAnncIndex := f_getLatestResourceIndex(vc_cse1); + //Creating announced resource (original resource in CSE1) in Hosting CSE + vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_cseBaseAnncIndex)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceAnncAddress := f_getLatestResourceAddress(vc_cse1, -, -); - v_resourceAnncIndex := f_getLatestResourceIndex(vc_cse1); - v_originalLocalResourceIndex := f_getLatestLocalResourceIndex(vc_cse1); v_originalResourceIndex := f_getLatestLocalResource(vc_cse1); + // Test Body + vc_cse1.start(f_cse_retrieveResourceHandler(v_originalResourceIndex, -, -)); + v_request := m_retrieve(v_resourceAnncAddress, f_getOriginator(v_aeIndex)); v_request.resultContent := int7; - // Test Body - vc_cse1.start(f_cse_retrieveResourceHandler(v_originalLocalResourceIndex, -, -)); - f_send(e_mcaPort, m_request(valueof(v_request))); + + f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, vc_resourcesList[v_originalResourceIndex].resource))) -> value vc_response { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_primitiveContent))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__, ": Resource " & int2str(enum2int(p_resourceType)) & " retrieved successfully"); } + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__, ": Wrong content"); + } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__, ": Wrong response status code"); @@ -10762,8 +10898,7 @@ module OneM2M_PermutationFunctions { f_cse_postamble_deleteResources(); // Tear down - f_cf02Down(); - + f_cf02Down(); } //end f_CSE_ANNC_RET_002 @@ -10784,6 +10919,7 @@ module OneM2M_PermutationFunctions { // Test component configuration f_cf02UpCseSimuMaster(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE @@ -10811,14 +10947,14 @@ module OneM2M_PermutationFunctions { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement creation received"); - f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_aEAnncIndex); 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"); + setverdict(fail, __SCOPE__ & ":ERROR: Unexpected creation received"); - f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, vc_localRemoteCseIndex); + f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, -); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { @@ -10840,16 +10976,14 @@ module OneM2M_PermutationFunctions { // Local variables var integer v_aeIndex := -1; var integer v_announcedResourceIndex := -1; - var integer v_aEAnncIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); - v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; - //Test control // Test component configuration f_cf02UpCseSimuMaster(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE @@ -10857,13 +10991,12 @@ module OneM2M_PermutationFunctions { //Preamble 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); vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); - v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, vc_localRemoteCseIndex); + v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); @@ -10902,31 +11035,23 @@ module OneM2M_PermutationFunctions { 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_TS_CSE1.cseId}; - + //Test control //Test component configuration f_cf02Up(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); 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_aEAnncIndex := f_getLatestLocalResourceIndex(vc_cse1); + v_aeIndex := f_cse_preamble_registerAe(); // Test Body - vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_localRemoteCseIndex)); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -)); v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); @@ -10977,7 +11102,6 @@ module OneM2M_PermutationFunctions { var integer v_announcedResourceIndex := -1; var integer v_aEAnncIndex := -1; 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); @@ -10987,12 +11111,12 @@ module OneM2M_PermutationFunctions { // Test component configuration f_cf02Up(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1); //Preamble vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); @@ -11005,7 +11129,7 @@ module OneM2M_PermutationFunctions { v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); // Test Body - vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_localRemoteCseIndex)); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_aEAnncIndex)); v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); f_send(e_mcaPort, m_request(v_updateRequest)); @@ -11043,17 +11167,15 @@ module OneM2M_PermutationFunctions { 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 integer v_aeIndex := -1; - var integer v_aEAnncIndex := -1; var integer v_resourceIndex := -1; var integer v_announcedResourceIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); - v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; - //Test control // Test component configuration f_cf02UpCseSimuMaster(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE @@ -11061,14 +11183,13 @@ module OneM2M_PermutationFunctions { //Preamble 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); // Test Body vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); - v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, vc_localRemoteCseIndex); + v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); @@ -11116,20 +11237,22 @@ 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 integer v_resourceIndex := -1; + var integer v_resourceIndex, v_containerAnncIndex, v_cSEBaseAnncIndex := -1; var integer v_aeIndex := -1; - var XSD.AnyURI v_remoteCSEAnncAddress; - var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); + var ResponsePrimitive v_response; var template RequestPrimitive v_createRequestRemoteCseAnnc := m_createRemoteCSEAnncBase; var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()}); - var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE; - //v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId}; - + var template RequestPrimitive v_createContainer := m_createContainerBase; + var template RequestPrimitive v_createContainerAnnc := mw_createContainerAnnc; + v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId}; + v_createContainer.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId}; + // Test control // Test component configuration f_cf02UpCseSimuMaster(-, true); - + vc_resetRequired := true; + // Test adapter configuration //Register the CSE @@ -11141,26 +11264,57 @@ module OneM2M_PermutationFunctions { v_aeIndex := f_getLatestResourceIndex(vc_ae1); + //Trigger creation of CSEBaseAnnc + vc_cse2.start(f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, -)); + v_createContainer.primitiveContent.container.resourceName := "TriggerCreationCSEBaseAnnc"; + vc_ae1.start(f_cse_createResource(int3,v_createContainer, v_aeIndex)); + f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, -); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); + + //Then, IUT announces the resource on the CSEBaseAnnc + v_containerAnncIndex := f_getLatestLocalResourceIndex(vc_cse2); + v_cSEBaseAnncIndex := v_containerAnncIndex -1; + 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_requestCreatePrimitive, -)); - - //IUT shall announce itself by updating announceTo attribute of its remoteCSE on its registrar (CSE1) - v_updateRemoteCse.primitiveContent.remoteCSE.announceTo := {PX_TS_CSE2.cseId}; - f_cse_updateResourceHandler(vc_localRemoteCseIndex, v_updateRemoteCse, -); - - //Then, IUT announces the resource on the remoteCSEAnnc - v_remoteCSEAnncAddress := f_getLatestLocalResourceAddress(vc_cse2); - p_createRequestAnnc.to_ := v_remoteCSEAnncAddress; + vc_cse2.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_cSEBaseAnncIndex)); + vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); - f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, omit); - + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) == PX_TS_CSE2.cseId) { + mccPortInternal.send(vc_request.primitive.requestPrimitive); + alt { + []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { + setverdict(pass, __SCOPE__ & ":INFO: Announcement retargeted"); + } + } + + f_send(e_mccPortIn, m_response(v_response)); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Wrong announcement target"); + f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } + if(getverdict == inconc) { + setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address"); + } + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); - + // Postamble f_cse_postamble_deleteResourcesCSE(); @@ -11173,19 +11327,19 @@ module OneM2M_PermutationFunctions { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; - var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); - + //Test control // Test component configuration f_cf02UpCseSimuMaster(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble - vc_ae1.start(f_cse_createResource(int2,v_create)); + vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); @@ -11199,26 +11353,7 @@ module OneM2M_PermutationFunctions { // 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 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(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 announcement received"); - } - } + f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); @@ -11243,18 +11378,17 @@ module OneM2M_PermutationFunctions { //Test component configuration f_cf02Up(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1); //Preamble - v_aeIndex := f_cse_createResource(int2,v_create); - + v_aeIndex := f_cse_preamble_registerAe(); // Test Body - vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_localRemoteCseIndex)); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -)); v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); @@ -11303,17 +11437,17 @@ module OneM2M_PermutationFunctions { var integer v_announcedResourceIndex := -1; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; - var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); - + // Test component configuration f_cf02UpCseSimuMaster(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble - vc_ae1.start(f_cse_createResource(int2,v_create)); + vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); @@ -11364,17 +11498,17 @@ module OneM2M_PermutationFunctions { var integer v_announcedResourceIndex := -1; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; - var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); - + // Test component configuration f_cf02UpCseSimuMaster(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble - vc_ae1.start(f_cse_createResource(int2,v_create)); + vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); @@ -11425,17 +11559,17 @@ module OneM2M_PermutationFunctions { var integer v_announcedResourceIndex := -1; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; - var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); - + // Test component configuration f_cf02UpCseSimuMaster(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble - vc_ae1.start(f_cse_createResource(int2,v_create)); + vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); @@ -11488,13 +11622,14 @@ module OneM2M_PermutationFunctions { // Test component configuration f_cf02UpCseSimuMaster(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble - vc_ae1.start(f_cse_createResource(int2,v_create)); + vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); @@ -11515,7 +11650,7 @@ module OneM2M_PermutationFunctions { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); - f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex); + f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex, vc_request.nullFields); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_request { @@ -11557,6 +11692,7 @@ module OneM2M_PermutationFunctions { //Test component configuration f_cf02Up(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE @@ -11565,10 +11701,10 @@ module OneM2M_PermutationFunctions { v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1); //Preamble - v_aeIndex := f_cse_createResource(int2,v_create); + v_aeIndex := f_cse_preamble_registerAe(); // Test Body - vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_localRemoteCseIndex)); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -)); v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); @@ -11625,6 +11761,7 @@ module OneM2M_PermutationFunctions { //Test component configuration f_cf02Up(); + vc_resetRequired := true; // Test adapter configuration // Register the CSE @@ -11633,13 +11770,13 @@ module OneM2M_PermutationFunctions { v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1); //Preamble - v_aeIndex := f_cse_createResource(int2,v_create); + v_aeIndex := f_cse_preamble_registerAe(); // 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)); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, int4000, -)); v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); f_send(e_mcaPort, m_request(v_updateRequest)); @@ -11690,7 +11827,8 @@ module OneM2M_PermutationFunctions { //Test component configuration f_cf02Up(); - + vc_resetRequired := true; + //Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); @@ -11752,7 +11890,8 @@ module OneM2M_PermutationFunctions { // Test component configuration f_cf02UpCseSimuMaster(); - + vc_resetRequired := true; + // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); @@ -12547,6 +12686,10 @@ module OneM2M_PermutationFunctions { }else{ p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); } + p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); + p_requestPrimitive.responseType.responseTypeValue := int2; //nonBlockingRequestAsynch + p_requestPrimitive.responseType.notificationURI := {f_getResourceAddress(v_aeIndex), f_getResourceAddress(v_ae2Index)}; //"...an empty notification target list is provided" + // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn index 8df824bae459bd2cc871e59fd3af4126be04b09b..7ca339d3d2a9367d0d5c296dea29b2f60f4dd5fe 100644 --- a/OneM2M_Testcases_CSE_Release_3.ttcn +++ b/OneM2M_Testcases_CSE_Release_3.ttcn @@ -11195,6 +11195,7 @@ module OneM2M_Testcases_CSE_Release_3 { // Test component configuration f_cf02Up(); + vc_resetRequired := true; // Test adapter configuration @@ -11353,20 +11354,6 @@ module OneM2M_Testcases_CSE_Release_3 { v_cse1.done; } - testcase TC_CSE_ANNC_CRE_005_CIN() runs on Tester system CseSystem { - //Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; - var template RequestPrimitive v_createRequest := m_createContentInstanceBase; - var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc; - - - v_createRequest.primitiveContent.contentInstance.announceTo := {PX_TS_CSE2.cseId}; - - v_cse1.start(f_CSE_ANNC_CRE_005(int4, v_createRequestAnnc, v_createRequest));//ContentInstance - v_cse1.done; - - } - testcase TC_CSE_ANNC_CRE_005_GRP() runs on Tester system CseSystem { //Local variables var CseSimu v_cse1 := CseSimu.create("CSE1") alive; @@ -11392,20 +11379,7 @@ module OneM2M_Testcases_CSE_Release_3 { v_cse1.start(f_CSE_ANNC_CRE_005(int29, v_createRequestAnnc, v_createRequest));//TimeSeries v_cse1.done; } - - testcase TC_CSE_ANNC_CRE_005_TSI() runs on Tester system CseSystem { - //Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; - var template RequestPrimitive v_createRequest := m_createTimeSeriesInstanceBase; - var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesInstanceAnnc; - - - v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {PX_TS_CSE2.cseId}; - - v_cse1.start(f_CSE_ANNC_CRE_005(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance - v_cse1.done; - } - + } //end group g_CSE_ANNC_CRE_005 group g_CSE_ANNC_CRE_006 { @@ -11414,83 +11388,31 @@ module OneM2M_Testcases_CSE_Release_3 { * @desc Check that the IUT announces successfully the RESOURCE_TYPE resource during its creation when announceTo optional attribute is provided and IUT has registered and created a <remoteCSE> resource to the announcement target CSE * */ - testcase TC_CSE_ANNC_CRE_006_ACP() runs on Tester system CseSystem { - //Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; - var template RequestPrimitive v_createRequest := m_createAcpBase; - var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; - - - v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE1.cseId}; - - v_cse1.start(f_CSE_ANNC_CRE_006(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy - v_cse1.done; - } - - testcase TC_CSE_ANNC_CRE_006_CNT() runs on Tester system CseSystem { - //Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; - var template RequestPrimitive v_createRequest := m_createContainerBase; - var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc; - - - v_createRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; - - v_cse1.start(f_CSE_ANNC_CRE_006(int3, v_createRequestAnnc, v_createRequest));//Container - v_cse1.done; - } - testcase TC_CSE_ANNC_CRE_006_CIN() runs on Tester system CseSystem { //Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createContentInstanceBase; var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc; v_createRequest.primitiveContent.contentInstance.announceTo := {PX_TS_CSE1.cseId}; - v_cse1.start(f_CSE_ANNC_CRE_006(int4, v_createRequestAnnc, v_createRequest));//ContentInstance - v_cse1.done; + v_ae1.start(f_CSE_ANNC_CRE_006(int4, v_createRequestAnnc, v_createRequest));//ContentInstance + v_ae1.done; } - testcase TC_CSE_ANNC_CRE_006_GRP() runs on Tester system CseSystem { - //Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; - var template RequestPrimitive v_createRequest := m_createGroupBase; - var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc; - - - v_createRequest.primitiveContent.group_.announceTo := {PX_TS_CSE1.cseId}; - - v_cse1.start(f_CSE_ANNC_CRE_006(int9, v_createRequestAnnc, v_createRequest));//Group - v_cse1.done; - } - - testcase TC_CSE_ANNC_CRE_006_TS() runs on Tester system CseSystem { - //Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; - var template RequestPrimitive v_createRequest := m_createTimeSeriesBase; - var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc; - - - v_createRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; - - v_cse1.start(f_CSE_ANNC_CRE_006(int29, v_createRequestAnnc, v_createRequest));//TimeSeries - v_cse1.done; - } - testcase TC_CSE_ANNC_CRE_006_TSI() 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_createTimeSeriesInstanceBase; var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesInstanceAnnc; v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {PX_TS_CSE1.cseId}; - v_cse1.start(f_CSE_ANNC_CRE_006(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance - v_cse1.done; + v_ae1.start(f_CSE_ANNC_CRE_006(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance + v_ae1.done; } } //end group g_CSE_ANNC_CRE_006 @@ -11527,20 +11449,6 @@ module OneM2M_Testcases_CSE_Release_3 { v_cse1.done; } - testcase TC_CSE_ANNC_CRE_007_CIN() runs on Tester system CseSystem { - //Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; - var template RequestPrimitive v_createRequest := m_createContentInstanceBase; - var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc; - - - v_createRequest.primitiveContent.contentInstance.announceTo := {PX_TS_CSE2.cseId}; - - v_cse1.start(f_CSE_ANNC_CRE_007(int4, v_createRequestAnnc, v_createRequest));//ContentInstance - v_cse1.done; - - } - testcase TC_CSE_ANNC_CRE_007_GRP() runs on Tester system CseSystem { //Local variables var CseSimu v_cse1 := CseSimu.create("CSE1") alive; @@ -11561,25 +11469,12 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc; - v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_TS_CSE2.cseId}; + v_createRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE2.cseId}; v_cse1.start(f_CSE_ANNC_CRE_007(int29, v_createRequestAnnc, v_createRequest));//TimeSeries v_cse1.done; } - testcase TC_CSE_ANNC_CRE_007_TSI() runs on Tester system CseSystem { - //Local variables - var CseSimu v_cse1 := CseSimu.create("CSE1") alive; - var template RequestPrimitive v_createRequest := m_createTimeSeriesInstanceBase; - var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesInstanceAnnc; - - - v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {PX_TS_CSE2.cseId}; - - v_cse1.start(f_CSE_ANNC_CRE_007(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance - v_cse1.done; - } - } //end group g_CSE_ANNC_CRE_007 group g_CSE_ANNC_CRE_008 { @@ -11597,6 +11492,7 @@ module OneM2M_Testcases_CSE_Release_3 { v_createRequest.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; v_createRequest.primitiveContent.container.announcedAttribute := {"mbs"}; + v_createRequest.primitiveContent.container.maxByteSize := 10; v_createRequestAnnc.primitiveContent.containerAnnc.maxByteSize := ?; v_cse1.start(f_CSE_ANNC_CRE_008(int3, v_createRequestAnnc, v_createRequest));//Container @@ -11643,13 +11539,14 @@ module OneM2M_Testcases_CSE_Release_3 { v_createRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; v_createRequest.primitiveContent.timeSeries.announcedAttribute := {"mbs"}; + v_createRequest.primitiveContent.timeSeries.maxByteSize := 10; v_createRequestAnnc.primitiveContent.timeSeriesAnnc.maxByteSize := ?; v_cse1.start(f_CSE_ANNC_CRE_008(int29, v_createRequestAnnc, v_createRequest));//TimeSeries v_cse1.done; } - testcase TC_CSE_ANNC_CRE_008_TSI_CS() runs on Tester system CseSystem { + testcase TC_CSE_ANNC_CRE_008_TSI_DGT() runs on Tester system CseSystem { //Local variables var CseSimu v_cse1 := CseSimu.create("CSE1") alive; var template RequestPrimitive v_createRequest := m_createTimeSeriesInstanceBase; @@ -11657,8 +11554,8 @@ module OneM2M_Testcases_CSE_Release_3 { v_createRequest.primitiveContent.timeSeriesInstance.announceTo := {PX_TS_CSE1.cseId}; - v_createRequest.primitiveContent.timeSeriesInstance.announcedAttribute := {"cs"}; - v_createRequestAnnc.primitiveContent.timeSeriesInstanceAnnc.contentSize := ?; + v_createRequest.primitiveContent.timeSeriesInstance.announcedAttribute := {"dgt"}; + v_createRequestAnnc.primitiveContent.timeSeriesInstanceAnnc.dataGenerationTime := ?; v_cse1.start(f_CSE_ANNC_CRE_008(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance v_cse1.done; @@ -11699,62 +11596,80 @@ module OneM2M_Testcases_CSE_Release_3 { */ testcase TC_CSE_ANNC_RET_001_ACP() runs on Tester system CseSystem { //Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_originalResource := m_primitiveContentAccessControlPolicy(m_contentCreateAcp); var template RequestPrimitive v_createRequestAnnc := m_createAcpAnncBase; - - v_ae1.start(f_CSE_ANNC_RET_001(int1, v_originalResource, v_createRequestAnnc));//AccessControlPolicy - v_ae1.done; + var template PrimitiveContent v_responseContent; + + v_responseContent.accessControlPolicyAnnc := mw_contentAcpAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_001(int1, v_originalResource, v_createRequestAnnc, v_responseContent));//AccessControlPolicy + v_ae1.done; } testcase TC_CSE_ANNC_RET_001_CNT() runs on Tester system CseSystem { - //Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_originalResource := m_primitiveContentContainer(m_contentCreateContainer); var template RequestPrimitive v_createRequestAnnc := m_createContainerAnncBase; - - v_ae1.start(f_CSE_ANNC_RET_001(int3, v_originalResource, v_createRequestAnnc));//Container - v_ae1.done; + var template PrimitiveContent v_responseContent; + + v_responseContent.containerAnnc := mw_contentContainerAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_001(int3, v_originalResource, v_createRequestAnnc, v_responseContent));//Container + v_ae1.done; } testcase TC_CSE_ANNC_RET_001_CIN() runs on Tester system CseSystem { - //Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_originalResource := m_primitiveContentContentInstance(m_contentCreateContentInstance); var template RequestPrimitive v_createRequestAnnc := m_createContentInstanceAnncBase; - - v_ae1.start(f_CSE_ANNC_RET_001(int4, v_originalResource, v_createRequestAnnc));//ContentInstance - v_ae1.done; + var template PrimitiveContent v_responseContent; + + v_responseContent.contentInstanceAnnc := mw_contentContentInstanceAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_001(int4, v_originalResource, v_createRequestAnnc, v_responseContent));//ContentInstance + v_ae1.done; } testcase TC_CSE_ANNC_RET_001_GRP() runs on Tester system CseSystem { - //Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_originalResource := m_primitiveContentGroup(m_contentCreateGroup(1, {"NotInitialized"}, omit, -, -, -, -)); var template RequestPrimitive v_createRequestAnnc := m_createGroupAnncBase; - - v_ae1.start(f_CSE_ANNC_RET_001(int9, v_originalResource, v_createRequestAnnc));//Group - v_ae1.done; + var template PrimitiveContent v_responseContent; + + v_responseContent.groupAnnc := mw_contentGroupAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_001(int9, v_originalResource, v_createRequestAnnc, v_responseContent));//Group + v_ae1.done; } testcase TC_CSE_ANNC_RET_001_TS() runs on Tester system CseSystem { - //Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_originalResource := m_primitiveContentTimeSeries(m_contentCreateTimeSeries); var template RequestPrimitive v_createRequestAnnc := m_createTimeSeriesAnncBase; - - v_ae1.start(f_CSE_ANNC_RET_001(int29, v_originalResource, v_createRequestAnnc));//TimeSeries - v_ae1.done; + var template PrimitiveContent v_responseContent; + + v_responseContent.timeSeriesAnnc := mw_contentTimeSeriesAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_001(int29, v_originalResource, v_createRequestAnnc, v_responseContent));//TimeSeries + v_ae1.done; } testcase TC_CSE_ANNC_RET_001_TSI() runs on Tester system CseSystem { - //Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_originalResource := m_primitiveContentTimeSeriesInstance(m_contentCreateTimeSeriesInstance); var template RequestPrimitive v_createRequestAnnc := m_createTimeSeriesInstanceAnnc; - - v_ae1.start(f_CSE_ANNC_RET_001(int30, v_originalResource, v_createRequestAnnc));//TimeSeriesInstance - v_ae1.done; + var template PrimitiveContent v_responseContent; + + v_responseContent.timeSeriesInstanceAnnc := mw_contentTimeSeriesInstanceAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_001(int30, v_originalResource, v_createRequestAnnc, v_responseContent));//TimeSeriesInstance + v_ae1.done; } } //end group g_CSE_ANNC_RET_001 @@ -11770,8 +11685,11 @@ module OneM2M_Testcases_CSE_Release_3 { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_originalResource := m_primitiveContentAccessControlPolicy(m_contentCreateAcp); var template RequestPrimitive v_createRequestAnnc := m_createAcpAnncBase; - - v_ae1.start(f_CSE_ANNC_RET_002(int1, v_originalResource, v_createRequestAnnc));//AccessControlPolicy + var template PrimitiveContent v_responseContent; + + v_responseContent.accessControlPolicy := mw_contentAcpBase; + + v_ae1.start(f_CSE_ANNC_RET_002(int1, v_originalResource, v_createRequestAnnc, v_responseContent));//AccessControlPolicy v_ae1.done; } @@ -11780,8 +11698,11 @@ module OneM2M_Testcases_CSE_Release_3 { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_originalResource := m_primitiveContentContainer(m_contentCreateContainer); var template RequestPrimitive v_createRequestAnnc := m_createContainerAnncBase; - - v_ae1.start(f_CSE_ANNC_RET_002(int3, v_originalResource, v_createRequestAnnc));//Container + var template PrimitiveContent v_responseContent; + + v_responseContent.container := mw_contentContainerBase; + + v_ae1.start(f_CSE_ANNC_RET_002(int3, v_originalResource, v_createRequestAnnc, v_responseContent));//Container v_ae1.done; } @@ -11790,8 +11711,11 @@ module OneM2M_Testcases_CSE_Release_3 { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_originalResource := m_primitiveContentContentInstance(m_contentCreateContentInstance); var template RequestPrimitive v_createRequestAnnc := m_createContentInstanceAnncBase; - - v_ae1.start(f_CSE_ANNC_RET_002(int4, v_originalResource, v_createRequestAnnc));//ContentInstance + var template PrimitiveContent v_responseContent; + + v_responseContent.contentInstance := mw_contentContentInstanceBase; + + v_ae1.start(f_CSE_ANNC_RET_002(int4, v_originalResource, v_createRequestAnnc, v_responseContent));//ContentInstance v_ae1.done; } @@ -11800,8 +11724,11 @@ module OneM2M_Testcases_CSE_Release_3 { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_originalResource := m_primitiveContentGroup(m_contentCreateGroup(1, {"NotInitialized"}, omit, -, -, -, -)); var template RequestPrimitive v_createRequestAnnc := m_createGroupAnncBase; - - v_ae1.start(f_CSE_ANNC_RET_002(int9, v_originalResource, v_createRequestAnnc));//Group + var template PrimitiveContent v_responseContent; + + v_responseContent.group_ := mw_contentGroupBase; + + v_ae1.start(f_CSE_ANNC_RET_002(int9, v_originalResource, v_createRequestAnnc, v_responseContent));//Group v_ae1.done; } @@ -11810,8 +11737,11 @@ module OneM2M_Testcases_CSE_Release_3 { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_originalResource := m_primitiveContentTimeSeries(m_contentCreateTimeSeries); var template RequestPrimitive v_createRequestAnnc := m_createTimeSeriesAnncBase; - - v_ae1.start(f_CSE_ANNC_RET_002(int29, v_originalResource, v_createRequestAnnc));//TimeSeries + var template PrimitiveContent v_responseContent; + + v_responseContent.timeSeries := mw_contentTimeSeriesBase; + + v_ae1.start(f_CSE_ANNC_RET_002(int29, v_originalResource, v_createRequestAnnc, v_responseContent));//TimeSeries v_ae1.done; } @@ -11820,8 +11750,11 @@ module OneM2M_Testcases_CSE_Release_3 { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_originalResource := m_primitiveContentTimeSeriesInstance(m_contentCreateTimeSeriesInstance); var template RequestPrimitive v_createRequestAnnc := m_createTimeSeriesInstanceAnnc; - - v_ae1.start(f_CSE_ANNC_RET_002(int30, v_originalResource, v_createRequestAnnc));//TimeSeriesInstance + var template PrimitiveContent v_responseContent; + + v_responseContent.timeSeriesInstance := mw_contentTimeSeriesInstanceBase; + + v_ae1.start(f_CSE_ANNC_RET_002(int30, v_originalResource, v_createRequestAnnc, v_responseContent));//TimeSeriesInstance v_ae1.done; } @@ -12234,10 +12167,10 @@ module OneM2M_Testcases_CSE_Release_3 { const charstring v_cse1Id := PX_TS_CSE1.cseId; template XSD.AnyURI v_announcedResourceAddress := pattern "{v_cse1Id}/*"; - v_updateRequest.primitiveContent.timeSeries.announceTo := {v_announcedResourceAddress}; + v_updateRequest.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; v_updateRequest.primitiveContent.timeSeries.announcedAttribute := {"pi"}; - v_updateResponse.timeSeries.announceTo := {PX_TS_CSE1.cseId}; + v_updateResponse.timeSeries.announceTo := {v_announcedResourceAddress}; v_updateResponse.timeSeries.announcedAttribute := omit; v_ae1.start(f_CSE_ANNC_UPD_004(int29, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateResponse));//TimeSeries