diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index d8a19ec4e2d984f94b45c056e4ad72744e0ee52d..5f7bd471514c17a34286db228c4f8652a2b55a6a 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -362,6 +362,28 @@ module OneM2M_Functions { return v_request; } + + /** + * @desc Getting last resourceIndex saved in the vc_resourcesList + * @param p_tester Given component + */ + function f_getLatestResourceIndex(in Tester p_component) runs on Tester return integer { + var integer v_resourceIndex; + + f_connectInfoPort(p_component); + + p_component.start(f_sendLatestResourceIndex()); + alt { + []infoPort.receive(mw_resourceIndex) -> value v_resourceIndex{ + } + } + + p_component.done; + f_disconnectInfoPort(p_component); + + return v_resourceIndex; + + } /** * @desc Getting primitiveContent retrieved in an AeSimu component @@ -452,6 +474,15 @@ module OneM2M_Functions { } + /** + * @desc Sending of last resourceIndex saved in the vc_resourcesList + */ + function f_sendLatestResourceIndex() runs on Tester { + + infoPort.send(lengthof(vc_resourcesList)-1); + + } + /** * @desc Sending of last primitiveContent retrieved (vc_primitiveContentRetrievedResource) through InfoPort */ @@ -486,14 +517,18 @@ module OneM2M_Functions { function f_sendResource(in integer p_resourceIndex) runs on Tester { if(p_resourceIndex == -1) { - infoPort.send(vc_resourcesList[vc_aeAuxIndex]); //TODO To send Ae or RemoteCSE depending on the component type + if(vc_testSystemRole == e_ae) { + infoPort.send(vc_resourcesList[vc_aeAuxIndex]); + }else if(vc_testSystemRole == e_cse) { + infoPort.send(vc_resourcesList[vc_remoteCseIndex]); + } } else { infoPort.send(vc_resourcesList[p_resourceIndex]); } } - }// end of gropu InfoPortCommunication + }// end of group InfoPortCommunication group CseFunctions { @@ -998,12 +1033,21 @@ module OneM2M_Functions { /** * @desc Message exchange for the update of a resource + * @param p_resourceType Resource type of the resource to be created * @param p_requestPrimitive UPDATE request primitive to be used + * @param p_resourceIndex Internal resource index which indicates the resource to be updated * @verdict */ - function f_cse_updateResource(in RequestPrimitive p_requestPrimitive) runs on AeSimu { - - mcaPort.send(m_request(p_requestPrimitive)); + function f_cse_updateResource(in ResourceType p_resourceType, integer p_resourceIndex, template RequestPrimitive p_request) runs on AeSimu { + + var RequestPrimitive v_request; + + //Activate defaults when running on a PTC + f_cse_activateDefaults_ae(); + + v_request := f_getUpdateRequestPrimitive(p_resourceType, p_resourceIndex, p_request); + + mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { @@ -2850,9 +2894,9 @@ module OneM2M_Functions { p_request.requestIdentifier := valueof(p_request.requestIdentifier) & f_rnd(1, 1000000); if(p_resourceType != int10002) { - p_request.from_ := f_getOriginator(p_resourceIndex); - - p_request.to_ := f_getResourceAddress(p_resourceIndex); + p_request.from_ := f_getOriginator(p_resourceIndex); + + p_request.to_ := f_getResourceAddress(p_resourceIndex); } else { p_request.from_ := PX_CSE1_ID & "/" & f_getResourceId(vc_resourcesList[p_resourceIndex].resource); diff --git a/LibOneM2M/OneM2M_Ports.ttcn b/LibOneM2M/OneM2M_Ports.ttcn index 76b80cefe389d569029331bd0661ec2025a6287e..e6b5192faa639894668ff615344f81e26b3676cc 100644 --- a/LibOneM2M/OneM2M_Ports.ttcn +++ b/LibOneM2M/OneM2M_Ports.ttcn @@ -47,9 +47,9 @@ module OneM2M_Ports { */ type port InfoPort message { in - RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource; + RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource, integer; out - RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource; + RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource, integer; } diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 3f7a8c7830235f944c8a64e4e1bf67250b2dbcdb..fbda2032ef332e525abd4775cc371def4e056745 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -571,6 +571,12 @@ module OneM2M_Templates { resourceType := int10002, primitiveContent := {aEAnnc := m_contentUpdateAEAnnc} }; + + template (value) RequestPrimitive mw_updateContainerAnncBase modifies m_update:= { + requestIdentifier := testcasename() & "-m_updateContainerAnnc", + resourceType := int10003, + primitiveContent := {containerAnnc := m_contentUpdateContainerAnnc} + }; }//end group Update group Create { @@ -2659,6 +2665,30 @@ module OneM2M_Templates { e2eSecInfo := omit, choice := omit } + + template (value) ContainerAnnc_optional m_contentUpdateContainerAnnc := { + resourceName := omit, + resourceType := omit, + resourceID := omit, + parentID := omit, + creationTime := omit, + lastModifiedTime := omit, + labels := omit, + accessControlPolicyIDs := omit, + expirationTime := omit, + link := omit, + dynamicAuthorizationConsultationIDs := omit, + stateTag := omit, + maxNrOfInstances := omit, + maxByteSize := omit, + maxInstanceAge := omit, + currentNrOfInstances := omit, + currentByteSize := omit, + locationID := omit, + ontologyRef := omit, + disableRetrieval := omit, + choice := omit + }; }//end group ContentUpdate @@ -4061,7 +4091,8 @@ module OneM2M_Templates { group InfoPortTemplates { - template MyResource mw_resource := ?; + template MyResource mw_resource := ?; + template integer mw_resourceIndex := ?; }//end group InfoPortTemplates diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn index c6018d32a327344c373d5485cb9b443f1b27d8a4..920cbb3da0a89f0d702be1ffd654542925e3ee0f 100644 --- a/LibOneM2M/OneM2M_TestSystem.ttcn +++ b/LibOneM2M/OneM2M_TestSystem.ttcn @@ -35,6 +35,7 @@ module OneM2M_TestSystem { var MyResourcesList vc_resourcesList; var IntegerList vc_resourcesIndexToBeDeleted := {}; var integer vc_aeAuxIndex := -1;//TODO To be removed + var integer vc_remoteCseIndex := -1; var integer vc_acpAuxIndex := -1; var AccessControlPolicy_optional vc_acpAux; var MsgIn vc_request; @@ -62,7 +63,6 @@ module OneM2M_TestSystem { //global variables var MyResourcesList vc_localResourcesList := {}; var AeSimu vc_ae1;//For CF02 when CseSimu is master - var integer vc_remoteCseIndex := -1; var integer vc_localRemoteCseIndex := -1; var integer vc_cSEBaseIndex := -1; //Index of the CSEBase resource of the Tester inside vc_localResourcesList var CseTypeID vc_cseType; //cseType of the simulated CSE. IN = 1; MN = 2 diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index af8ad22c515922f009c7ce7f7861ac1747b9a525..f5bb97074b007eade6a052933cf240becc333ff7 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -4904,8 +4904,7 @@ module OneM2M_PermutationFunctions { v_setOfArcs.accessControlRule_list := {v_accessControlRule_1, v_accessControlRule_2}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); - v_updateRequest := f_getUpdateRequestPrimitive(int1, vc_acpAuxIndex, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int1, vc_acpAuxIndex, v_updateRequest); //Adjustments for ACP resource type if(p_resourceType == int1) { @@ -5630,8 +5629,7 @@ module OneM2M_PermutationFunctions { v_accessControlRule_1 := valueof(m_createAcr({ f_getOriginator(v_aeIndex), PX_SUPER_AE_ID}, int63)); v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, v_setOfArcs)); - v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int1, v_acpIndex, v_updateRequest); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); @@ -5697,14 +5695,12 @@ module OneM2M_PermutationFunctions { v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int3)); // c_CR v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); - v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex1, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int1, v_acpIndex1, v_updateRequest); v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int60)); // c_UDNDi v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); - v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex2, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int1, v_acpIndex2, v_updateRequest); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); @@ -6319,8 +6315,7 @@ module OneM2M_PermutationFunctions { v_accessControlRule_2 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, p_acor)); v_setOfArcs.accessControlRule_list := {v_accessControlRule_1, v_accessControlRule_2}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); - v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex, v_updateRequest); - f_cse_updateResource(v_updateRequest); + f_cse_updateResource(int1, v_acpIndex, v_updateRequest); // Test Body v_request := f_getCreateRequestPrimitive(int3, p_requestPrimitive, v_containerIndex); @@ -6984,6 +6979,272 @@ module OneM2M_PermutationFunctions { } //end group Retrieve + group Update{ + + function f_CSE_ANNC_UPD_001(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE REQUEST received"); + + if(match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1, e_hierarchical, e_spRelative)) or + match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1, e_nonHierarchical, e_spRelative))) { + setverdict(pass, __SCOPE__ & ":matching ANNC_PARENT_RESOURCE_ADDRESS"); + } else { + setverdict(fail, __SCOPE__ & ":mis-matching ANNC_PARENT_RESOURCE_ADDRESS"); + } + + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE REQUEST received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_001 + + function f_CSE_ANNC_UPD_002(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(mw_delete(f_getResourceAddress(v_latestResourceIndex)))){ + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Delete Request received successfully"); + } + [] mccPortIn.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error Delete request was not received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while waiting to receive Delete request"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_002 + + function f_CSE_ANNC_UPD_003(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive) runs on AeSimu { + //Local variables + var MsgIn v_request; + var RequestPrimitive v_updateRequest; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + //Test control + + //Test component configuration + f_cf02Up(); + + //Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + //Preamble + vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); + v_aeIndex := f_cse_createResource(int2,v_create); + vc_cse1.done; + + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc)); + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); + vc_cse1.done; + + vc_cse1.start(f_cse_announcementProcedure_deleteHandler()); + v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); + mcaPort.send(m_request(v_updateRequest)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Resource updated successfully"); + + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while updating container resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource"); + } + } + + vc_cse1.done; + + //Check to see if the resource is present or not + if (f_isResourceNotPresent(v_aeIndex, f_getResourceName(vc_resourcesList[v_resourceIndex].resource))){ + setverdict(pass, __SCOPE__ & ":INFO: Resource deleted"); + }else { + setverdict(fail, __SCOPE__ & ":ERROR: Resource not deleted"); + } + + //Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + } //end f_CSE_ANNC_UPD_003 + + 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) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + v_responsePrimitive := valueof(m_responsePrimitive(int2004,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.from_ := PX_CSE1_ID; + v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(m_response(v_responsePrimitive)); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_005 + + }//end group Update + group Delete{ function f_CSE_ANNC_DEL_001(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on AeSimu { @@ -6993,6 +7254,7 @@ module OneM2M_PermutationFunctions { var integer v_resourceIndex; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; //Test control @@ -7015,7 +7277,6 @@ module OneM2M_PermutationFunctions { vc_cse1.start(f_cse_announcementProcedure_deleteHandler()); v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); mcaPort.send(m_request(v_request)); - vc_cse1.done; tc_ac.start; alt { @@ -7029,13 +7290,15 @@ module OneM2M_PermutationFunctions { } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Error while deleting container resource using non-hierarchical addressing method"); + setverdict(fail, __SCOPE__ & ": Error while deleting container resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource"); } } + vc_cse1.done; + //Check to see if the resource is present or not if (f_isResourceNotPresent(v_aeIndex, f_getResourceName(vc_resourcesList[v_resourceIndex].resource))){ setverdict(pass, __SCOPE__ & ":INFO: Resource deleted"); @@ -7056,10 +7319,11 @@ module OneM2M_PermutationFunctions { var MsgIn v_request; var integer v_parentIndex := -1; var integer v_aeIndex := -1; - var integer v_resourceIndex; + var integer v_latestResourceIndex; var integer v_aEAnncIndex := -1; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; // Test control @@ -7082,11 +7346,13 @@ module OneM2M_PermutationFunctions { v_ae1.done; // Test Body - v_ae1.start(f_cse_deleteResource(lengthof(vc_resourcesList)-1)); + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + + v_ae1.start(f_cse_deleteResource(v_latestResourceIndex)); tc_ac.start; alt { - [] mccPortIn.receive(mw_request(mw_delete(f_getResourceAddress(lengthof(vc_resourcesList)-1)))){ + [] mccPortIn.receive(mw_request(mw_delete(f_getResourceAddress(v_latestResourceIndex)))){ tc_ac.stop; setverdict(pass, __SCOPE__ & ": Delete Request received successfully"); } diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index 744eb71fd3b26eefe738acafbde2ae823f796a05..001737af0beb4f63febd117ce2eb4f897c0a4a46 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -5977,14 +5977,12 @@ module OneM2M_Testcases_CSE_Release_2 { vc_ae2.start(f_cse_notifyProcedure_aggregatedNoficationHandler(v_contentResponse, c_numberOfAggregatedNotification)); v_updateRequest.primitiveContent.aE.labels := v_labels_1; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 1 t_batchNotificationTimer.start; v_updateRequest := m_updateAeBase; v_updateRequest.primitiveContent.aE.appName := "MyAppName2"; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 2 vc_ae2.done; v_elapsedTime := t_batchNotificationTimer.read; @@ -6202,8 +6200,7 @@ module OneM2M_Testcases_CSE_Release_2 { // Test Body vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // AE update request - f_cse_updateResource(v_request); // AE update + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // AE update request f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); @@ -6284,8 +6281,7 @@ module OneM2M_Testcases_CSE_Release_2 { // Test Body vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // AE update request - f_cse_updateResource(v_request); // AE update + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // AE update request f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); @@ -6437,16 +6433,13 @@ module OneM2M_Testcases_CSE_Release_2 { vc_ae2.start(f_cse_notifyProcedure_aggregatedNoficationHandler(v_contentResponse, numberOfAggregatedNotification)); // check that no notification is received v_updateRequest.primitiveContent.aE.labels := v_labels_1; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 1 v_updateRequest.primitiveContent.aE.labels := v_labels_2; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 2 v_updateRequest.primitiveContent.aE.labels := v_labels_3; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 3 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 3 f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); @@ -6506,16 +6499,13 @@ module OneM2M_Testcases_CSE_Release_2 { vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs v_updateRequest.primitiveContent.aE.labels := v_labels_1; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 1 v_updateRequest.primitiveContent.aE.labels := v_labels_2; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 2 v_updateRequest.primitiveContent.aE.labels := v_labels_3; - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 3 - f_cse_updateResource(v_request); + f_cse_updateResource(int2, v_aeIndex, v_updateRequest); // Update request 3 f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); @@ -7278,6 +7268,200 @@ module OneM2M_Testcases_CSE_Release_2 { } //end group Retrieve + group Update{ + + group g_CSE_ANNC_UPD_001{ + + testcase TC_CSE_ANNC_UPD_001_ACP() runs on Tester system CseSystem { + // Local variables + var MnCseSimu v_cse1 := MnCseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_001(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_001_CNT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + + v_updateRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_001(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_001_GRP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + + v_updateRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_001(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group + v_cse1.done; + } + + }// end group g_CSE_ANNC_UPD_001 + + group g_CSE_ANNC_UPD_002{ + + testcase TC_CSE_ANNC_UPD_002_ACP() runs on Tester system CseSystem { + // Local variables + var MnCseSimu v_cse1 := MnCseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_002(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_002_CNT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_002(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_002_GRP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_ANNC_UPD_002(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group + v_cse1.done; + } + + }// end group g_CSE_ANNC_UPD_002 + + group g_CSE_ANNC_UPD_003{ + + testcase TC_CSE_ANNC_UPD_003_ACP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + var ResponsePrimitive v_responsePrimitive; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_ae1.start(f_CSE_ANNC_UPD_003(int1, v_createRequestAnnc, v_createRequest, v_updateRequest));//AccessControlPolicy + v_ae1.done; + + if(getverdict == pass){ + v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(ispresent(v_responsePrimitive.primitiveContent)) { + if(ischosen(v_responsePrimitive.primitiveContent.accessControlPolicy)) { + if(ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy.announceTo)){ + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL") + } + } + } + + } + + } + + testcase TC_CSE_ANNC_UPD_003_CNT() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var ResponsePrimitive v_responsePrimitive; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_ae1.start(f_CSE_ANNC_UPD_003(int3, v_createRequestAnnc, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(ispresent(v_responsePrimitive.primitiveContent)) { + if(ischosen(v_responsePrimitive.primitiveContent.container)) { + if(ispresent(v_responsePrimitive.primitiveContent.container.announceTo)){ + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL") + } + } + } + + } + + } + + testcase TC_CSE_ANNC_UPD_003_GRP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var ResponsePrimitive v_responsePrimitive; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_ae1.start(f_CSE_ANNC_UPD_003(int9, v_createRequestAnnc, v_createRequest, v_updateRequest));//Group + v_ae1.done; + + if(getverdict == pass){ + v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(ispresent(v_responsePrimitive.primitiveContent)) { + if(ischosen(v_responsePrimitive.primitiveContent.group_)) { + if(ispresent(v_responsePrimitive.primitiveContent.group_.announceTo)){ + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL") + } + } + } + + } + } + + }// end group g_CSE_ANNC_UPD_003 + + group g_CSE_ANNC_UPD_005 { + + testcase TC_CSE_ANNC_UPD_005() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnncBase; + var Labels v_labels_1 := {"VALUE_1"}; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.labels := v_labels_1; + + v_cse1.start(f_CSE_ANNC_UPD_005(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container + v_cse1.done; + + } //end TC_CSE_ANNC_CRE_001 + } // end group g_CSE_ANNC_CRE_001 + + }//end group Update + group Delete{ group g_CSE_ANNC_DEL_001{