diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 938b5f04ca5d4b87db8745178128e66cfbccbc72..7fdd51e3cccbb2bc7778eb5c615d649be2d70e8a 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -1720,7 +1720,7 @@ module OneM2M_Functions { * @verdict */ //TODO To finalize this function - function f_cse_announcementProcedure_createHandler(template RequestPrimitive p_requestprimitive := ?, in ResponseStatusCode p_responseStatusCode := int2001) runs on CseSimu { + function f_cse_announcementProcedure_createHandler(template RequestPrimitive p_requestprimitive := ?, in ResponseStatusCode p_responseStatusCode := int2001, template(omit) integer p_expectedResourceIndex := omit) runs on CseSimu { // Local variables var MsgIn v_request; var integer v_parentIndex := vc_localRemoteCseIndex; @@ -1739,15 +1739,27 @@ module OneM2M_Functions { //TODO Save resource and generate required attributes v_announcedResource:= f_cse_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, v_parentIndex,v_request.primitive.requestPrimitive.resourceType); v_announcedResourceIndex := f_setLocalResource(v_announcedResource, v_request.primitive.requestPrimitive.resourceType, v_parentIndex); - - v_responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode,v_request.primitive.requestPrimitive.requestIdentifier)); - v_responsePrimitive.from_ := PX_CSE1_ID; - v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; - if(p_responseStatusCode == int2001) { - v_responsePrimitive.primitiveContent := vc_localResourcesList[v_announcedResourceIndex].resource; + + if(isvalue(p_expectedResourceIndex)){ + if(p_expectedResourceIndex == f_getResourceIndex(v_request.primitive.requestPrimitive.to_)){ + setverdict(pass, __SCOPE__ & ":INFO: Announcement Parent Resource Address matched"); + v_responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.primitiveContent := vc_localResourcesList[p_expectedResourceIndex].resource; + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Announcement Parent Resource Address not matched"); + v_responsePrimitive := valueof(m_responsePrimitive(int4000,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.primitiveContent := omit; + } } else { - v_responsePrimitive.primitiveContent := omit; + v_responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode,v_request.primitive.requestPrimitive.requestIdentifier)); + if(p_responseStatusCode == int2001) { + v_responsePrimitive.primitiveContent := vc_localResourcesList[v_announcedResourceIndex].resource; + } else { + v_responsePrimitive.primitiveContent := omit; + } } + v_responsePrimitive.from_ := PX_CSE1_ID; + v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; mccPortIn.send(m_response(v_responsePrimitive)); } [] tc_ac.timeout { diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index 5c3eacf306d46bbbeebedd33730928d7e8a0fa5c..0c6e958db411c469b4a950dbd1558263b8a2b9f3 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -6390,8 +6390,9 @@ module OneM2M_PermutationFunctions { var integer v_aeIndex := -1; var integer v_resourceIndex; var ResponsePrimitive v_responsePrimitive; + var integer v_AEAnncResourceIndex; var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); - v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + v_create.primitiveContent.aE.announceTo := {PX_CSE1_ID}; // Test control @@ -6418,7 +6419,10 @@ module OneM2M_PermutationFunctions { v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_parentIndex); v_responsePrimitive.responseStatusCode := int2001; } - vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc)); + + //Retrieve the parent resource index + v_AEAnncResourceIndex := f_getLatestResourceIndex(vc_cse1); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_AEAnncResourceIndex)); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -6549,7 +6553,7 @@ module OneM2M_PermutationFunctions { // Test Body v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_parentIndex); - vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, int4000)); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc,int4000)); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -7873,7 +7877,7 @@ module OneM2M_PermutationFunctions { v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); - vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, int4000)); + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, int4000)); v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); mcaPort.send(m_request(v_updateRequest)); diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index 3c02d4cbc71986f963dd27ba42cc79a6095b2f5e..02f298feb6135e36e42a3368c416b9d61f45d762 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -7104,7 +7104,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_updateRequest := m_updateAcpBase; var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; - v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {f_getAnnouncementTargetPoA()}; + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int1, v_createRequestAnnc, omit, v_updateRequest));//AccessControlPolicy v_ae1.done; @@ -7116,7 +7116,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequest := m_createAcpBase; var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; - v_createRequest.primitiveContent.accessControlPolicy.announceTo := {f_getAnnouncementTargetPoA()}; + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int1, v_createRequestAnnc, v_createRequest, omit));//AccessControlPolicy v_ae1.done; @@ -7128,7 +7128,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_updateRequest := m_updateContainerBase; var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; - v_updateRequest.primitiveContent.container.announceTo := {f_getAnnouncementTargetPoA()}; + v_updateRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int3, v_createRequestAnnc, omit, v_updateRequest));//Container v_ae1.done; @@ -7140,7 +7140,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; - v_createRequest.primitiveContent.container.announceTo := {f_getAnnouncementTargetPoA()}; + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int3, v_createRequestAnnc, v_createRequest, omit));//Container v_ae1.done; @@ -7152,7 +7152,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_updateRequest := m_updateGroupBase; var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; - v_updateRequest.primitiveContent.group_.announceTo := {f_getAnnouncementTargetPoA()}; + v_updateRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int9, v_createRequestAnnc, omit, v_updateRequest));//Group v_ae1.done; @@ -7164,7 +7164,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequest := m_createGroupBase; var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; - v_createRequest.primitiveContent.group_.announceTo := {f_getAnnouncementTargetPoA()}; + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int9, v_createRequestAnnc, v_createRequest, omit));//Group v_ae1.done; @@ -7176,7 +7176,7 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequest := m_createContentInstanceBase; var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnncBase; - v_createRequest.primitiveContent.contentInstance.announceTo := {f_getAnnouncementTargetPoA()}; + v_createRequest.primitiveContent.contentInstance.announceTo := {PX_CSE1_ID}; v_ae1.start(f_CSE_ANNC_001(int4, v_createRequestAnnc, v_createRequest, omit));//ContentInstance v_ae1.done;