diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 8474ae2d1222ed061b31bfde02df58518b944496..f7cde738a1d3e32471b639c35be1c4b9ad8228b3 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -2371,6 +2371,7 @@ module OneM2M_Functions { alt { [] mcaPortIn.receive(mw_request(mw_notifyNotification(p_notification))) -> value vc_request { tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Expected deletion notification received"); v_responsePrimitive := valueof(m_responseNotification(int2000, omit)); v_responsePrimitive.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier; f_send(e_mcaPortIn, m_response(v_responsePrimitive)); @@ -2378,10 +2379,6 @@ module OneM2M_Functions { setverdict(fail, __SCOPE__ & ":ERROR: subscriptionDeletion attribute have to be set to TRUE"); } } - [] mcaPortIn.receive{ - tc_ac.stop; - setverdict(fail, __SCOPE__ & ":ERROR: unexpected message received"); - } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No notification received"); } @@ -4031,7 +4028,7 @@ module OneM2M_Functions { f_processRetrieveRequestPrimitive(v_request.primitive.requestPrimitive); if(ischosen(vc_response.primitive.responsePrimitive.primitiveContent.cSEBase)) { - f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive, {{"parentID", omit}})); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } else { f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } diff --git a/LibOneM2M/OneM2M_Pixits.ttcn b/LibOneM2M/OneM2M_Pixits.ttcn index 8862639bf2871a11837ffe54f76af698684b8a8d..7d65be93bdfaafb4072689cafaf577b8e29d8304 100644 --- a/LibOneM2M/OneM2M_Pixits.ttcn +++ b/LibOneM2M/OneM2M_Pixits.ttcn @@ -43,17 +43,17 @@ module OneM2M_Pixits { /** * @desc IUT CSE Name */ - modulepar XSD.ID PX_CSE_NAME := "CSE-NAME"; + modulepar XSD.ID PX_CSE_NAME := "cse-in"; /** * @desc IUT CSE-ID with SP-relative-CSE-ID format (relative) according to TS-0001-7.2-1 */ - modulepar XSD.ID PX_CSE_ID := "/CSE-ID"; + modulepar XSD.ID PX_CSE_ID := "/id-in"; /** * @desc IUT CSE resource ID with Unstructured-CSE-relative-Resource-ID (relative) format according to TS-0001-7.2-1 */ - modulepar XSD.ID PX_CSE_RESOURCE_ID := "CSE-ID"; + modulepar XSD.ID PX_CSE_RESOURCE_ID := "id-in"; /** * @desc IUT M2M-SP-ID with M2M-SP-ID format (absolute) according to TS-0001-7.2-1 Unstructured-CSE-relative -Resource-ID @@ -63,7 +63,7 @@ module OneM2M_Pixits { /** * @desc AE-ID with privileges to CREATE at the IUT CSEBase with AE-ID-Stem format (relative) according to TS-0001-7.2-1 */ - modulepar XSD.ID PX_SUPER_AE_ID := "admin:admin"; + modulepar XSD.ID PX_SUPER_AE_ID := "CAdmin"; /** * @desc CSE-ID with privileges to CREATE at the IUT CSEBase with SP-relative-CSE-ID format (relative) according to TS-0001-7.2-1 @@ -170,7 +170,7 @@ module OneM2M_Pixits { } } }, - serialization := "xml" + serialization := "json" }, mcaPortIn := { binding := { @@ -184,7 +184,7 @@ module OneM2M_Pixits { } } }, - serialization := "xml" + serialization := "json" } }; modulepar AeSimuComponentDesc PX_TS_AE2 := { // AE2 component settings @@ -202,7 +202,7 @@ module OneM2M_Pixits { } } }, - serialization := "xml" + serialization := "json" }, mcaPortIn := { binding := { @@ -216,7 +216,7 @@ module OneM2M_Pixits { } } }, - serialization := "xml" + serialization := "json" } }; modulepar CseSimuComponentDesc PX_TS_CSE1 := { // CSE1 component settings @@ -237,7 +237,7 @@ module OneM2M_Pixits { } } }, - serialization := "xml" + serialization := "json" }, mcaPortIn := { binding := { @@ -251,7 +251,7 @@ module OneM2M_Pixits { } } }, - serialization := "xml" + serialization := "json" }, mccPort := { binding := { @@ -265,7 +265,7 @@ module OneM2M_Pixits { } } }, - serialization := "xml" + serialization := "json" }, mccPortIn := { binding := { @@ -279,7 +279,7 @@ module OneM2M_Pixits { } } }, - serialization := "xml" + serialization := "json" } }; modulepar CseSimuComponentDesc PX_TS_CSE2 := { // CSE2 component settings @@ -300,7 +300,7 @@ module OneM2M_Pixits { } } }, - serialization := "xml" + serialization := "json" }, mcaPortIn := { binding := { @@ -314,7 +314,7 @@ module OneM2M_Pixits { } } }, - serialization := "xml" + serialization := "json" }, mccPort := { binding := { @@ -328,7 +328,7 @@ module OneM2M_Pixits { } } }, - serialization := "xml" + serialization := "json" }, mccPortIn := { binding := { @@ -342,7 +342,7 @@ module OneM2M_Pixits { } } }, - serialization := "xml" + serialization := "json" } }; modulepar UtDesc PX_TS_UT := { url := "http://127.0.0.1:43000/" }; diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 609bf4629f9e91aa7e9a6cd63a27eea2d3c04c0f..e127875014ff7623ec5e51e41096f322ffa4fa56 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -7188,7 +7188,7 @@ module OneM2M_Templates { resourceName := ?,//M resourceType := ?,//M resourceID := ?,//M - parentID := omit,//M + parentID := "",//M creationTime := ?,//M lastModifiedTime := ?,//M labels := *,//O diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index ee67277b5ef43559219a46d8465162153175cd9e..ad4158f34f59718bd64345e53f1a357a7439a319 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -6266,14 +6266,15 @@ module OneM2M_PermutationFunctions { }//end f_CSE_DMR_UPD_011 - function f_CSE_DMR_UPD_014(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { + function f_CSE_DMR_UPD_014(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, in boolean p_acpsRequired := false) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; - var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; + var integer v_acp1Index := -1; + var integer v_acp2Index := -1; // Test control @@ -6283,11 +6284,20 @@ module OneM2M_PermutationFunctions { // Test adapter configuration // Preamble - v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + vc_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); - v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); + if (p_acpsRequired) { + v_acp1Index := f_cse_createResource(int1, m_createAcp("MyAcp1"), vc_aeIndex); + v_acp2Index := f_cse_createResource(int1, m_createAcp("MyAcp2"), vc_aeIndex); + + p_createRequestPrimitive := f_setAcpId(p_createRequestPrimitive,{f_getResourceId(vc_resourcesList[v_acp1Index].resource)}); + p_updateRequestPrimitive := f_setAcpId(p_updateRequestPrimitive,{f_getResourceId(vc_resourcesList[v_acp2Index].resource)}); + + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, vc_aeIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); @@ -6337,24 +6347,30 @@ module OneM2M_PermutationFunctions { // Test adapter configuration // Preamble - if(p_resourceType != int2) { - v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); - } - if(p_resourceType != int1) { - f_cse_createAccessControlPolicyAux(-, -, -); - p_createRequestPrimitive := f_setAcpId(p_createRequestPrimitive, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}); } + if((p_resourceType != int2) and (p_resourceType != int1)) { + v_aeIndex := f_cse_preamble_registerAe({vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID});//c_CRUDNDi); + } + + if(p_secondAcp) {//A second ACP is required v_acpIndex := f_cse_createResource(int1, m_createAcpBase); v_acpi := {vc_resourcesList[v_acpIndex].resource.accessControlPolicy.resourceID}; - p_updateRequestPrimitive := f_setAcpId(p_updateRequestPrimitive, v_acpi); - + if(p_resourceType == int9){ + if(ispresent(p_updateRequestPrimitive.primitiveContent.group_.membersAccessControlPolicyIDs)) { + p_updateRequestPrimitive.primitiveContent.group_.membersAccessControlPolicyIDs := v_acpi; + } else { + p_updateRequestPrimitive := f_setAcpId(p_updateRequestPrimitive, v_acpi); + } + } else { + p_updateRequestPrimitive := f_setAcpId(p_updateRequestPrimitive, v_acpi); + } } if (p_resourceType!=int16){ //ResourceType != RemoteCSE @@ -6460,6 +6476,17 @@ module OneM2M_PermutationFunctions { v_request.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_aeIndex)}; } + if(p_resourceType == int9) { + vc_ae2.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_TS_AE2.appId, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getCompletePoA(PX_TS_AE2.mcaPortIn, "")}), -1)); // AE2 is registred + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + + v_ae2Index := f_getResourceFromAeSimu(vc_ae2); + + if(ispresent(v_request.primitiveContent.group_.memberIDs)) { + v_request.primitiveContent.group_.memberIDs := {f_getResourceId(vc_resourcesList[v_ae2Index].resource)}; + } + } + f_send(e_mcaPort, m_request(v_request)); tc_ac.start; @@ -6948,6 +6975,9 @@ module OneM2M_PermutationFunctions { // Test Body if(p_resourceType == int23) { + if (vc_ae2.running) { + vc_ae2.stop; + } vc_ae2.start(f_cse_notifyProcedure_noNotificationHandler()); } @@ -8840,7 +8870,6 @@ module OneM2M_PermutationFunctions { var integer v_aeIndex := -1; var integer v_acpIndex1 := -1; var integer v_acpIndex2 := -1; - var RequestPrimitive v_createRequest := valueof(m_createAcpBase); var RequestPrimitive v_updateRequest; var AccessControlRule v_accessControlRule_1; var SetOfAcrs v_setOfArcs; @@ -8853,8 +8882,8 @@ module OneM2M_PermutationFunctions { // Test adapter configuration // Preamble - v_acpIndex1 := f_cse_createResource(int1, v_createRequest); // CSE child resource - v_acpIndex2 := f_cse_createResource(int1, v_createRequest); // CSE child resource + v_acpIndex1 := f_cse_createResource(int1, m_createAcp("MyAcp1")); // CSE child resource + v_acpIndex2 := f_cse_createResource(int1, m_createAcp("MyAcp2")); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex1].resource), f_getResourceId(vc_resourcesList[v_acpIndex2].resource)}, -); diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn index 4dacf939de646e7509f05b8b5e41422107103c41..56276436abaa8cf1c702fc06cda4cd687ae720c6 100644 --- a/OneM2M_Testcases_CSE_Release_1.ttcn +++ b/OneM2M_Testcases_CSE_Release_1.ttcn @@ -2350,7 +2350,7 @@ module OneM2M_Testcases_CSE_Release_1 { tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse), {"parentID"})) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Response OK for retrieving"); } @@ -2575,11 +2575,11 @@ module OneM2M_Testcases_CSE_Release_1 { tc_ac.start; alt { - [PX_IN_CSE] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse_IN), {"parentID"})) -> value v_response { + [PX_IN_CSE] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse_IN))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": cseType attribute is set to 1 (IN_CSE)"); } - [PX_MN_CSE] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse_MN), {"parentID"})) -> value v_response { + [PX_MN_CSE] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse_MN))) -> value v_response { tc_ac.stop; if(ispresent(v_response.primitive.responsePrimitive.primitiveContent.cSEBase.cseType)) { if(v_response.primitive.responsePrimitive.primitiveContent.cSEBase.cseType == int2) { @@ -2796,7 +2796,7 @@ module OneM2M_Testcases_CSE_Release_1 { tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse), {"parentID"})) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse))) -> value v_response { tc_ac.stop; if (v_response.primitive.responsePrimitive.primitiveContent.cSEBase.supportedResourceType == PX_SRT) { @@ -6575,7 +6575,7 @@ module OneM2M_Testcases_CSE_Release_1 { v_createRequest.primitiveContent.container.accessControlPolicyIDs := v_accessControlPolicyIDs_1; v_updateRequest.primitiveContent.container.accessControlPolicyIDs := v_accessControlPolicyIDs_2; - v_ae1.start(f_CSE_DMR_UPD_014(int3, v_createRequest, v_updateRequest));//Container + v_ae1.start(f_CSE_DMR_UPD_014(int3, v_createRequest, v_updateRequest, true));//Container v_ae1.done; @@ -6719,7 +6719,7 @@ module OneM2M_Testcases_CSE_Release_1 { v_createRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_1; v_updateRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_2; - v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription + v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest, true));//Subscription v_ae1.done; @@ -7338,7 +7338,7 @@ module OneM2M_Testcases_CSE_Release_1 { var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.group_.membersAccessControlPolicyIDs := v_membersAccessControlPolicyIDs; - v_ae1.start(f_CSE_DMR_UPD_015(int9, m_createGroupBase, v_updateRequest));//Group + v_ae1.start(f_CSE_DMR_UPD_015(int9, m_createGroupBase, v_updateRequest, true));//Group v_ae1.done;