From 72b1723ac511e5abbbfc085bda92d5dbc211a17a Mon Sep 17 00:00:00 2001 From: reinaortega <miguelangel.reinaortega@etsi.org> Date: Wed, 17 May 2017 10:54:17 +0200 Subject: [PATCH] New templates for createContainer and createContentInstance which do not provide the resourceName attribute (useful when more than one resource is to be created under the same parent) Signed-off-by: reinaortega <miguelangel.reinaortega@etsi.org> --- LibOneM2M/OneM2M_Templates.ttcn | 25 ++++++++++-- OneM2M_Testcases.ttcn | 72 ++++++++++++++++----------------- 2 files changed, 58 insertions(+), 39 deletions(-) diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 6791849..e2a5389 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $ - * $Id: OneM2M_Templates.ttcn 269 2017-05-17 03:36:25Z reinaortega $ + * $Id: OneM2M_Templates.ttcn 273 2017-05-17 08:53:18Z reinaortega $ * @desc Module containing templates for oneM2M * */ @@ -545,6 +545,15 @@ module OneM2M_Templates { any_1 := {{Container_optional := m_contentCreateContainer}} } }; + + /** + * @desc CREATE request primitive for Container resource wiht no resourceName provided + */ + template (value) RequestPrimitive m_createContainer_noResourceName modifies m_createContainerBase := { + primitiveContent := { + any_1 := {{Container_optional := m_contentCreateContainer(omit)}} + } + }; template (value) RequestPrimitive m_createContainer(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_resourceName := c_defaultContainerResourceName) modifies m_create := { to_ := p_parentResourceAddress, @@ -607,6 +616,16 @@ module OneM2M_Templates { any_1 := {{ContentInstance_optional := m_contentCreateContentInstance}} } }; + + /** + * @desc CREATE request primitive for Content Instance resource with no resourceName provided + */ + template (value) RequestPrimitive m_createContentInstance_noResourceName modifies m_createContentInstanceBase := { + primitiveContent := { + + any_1 := {{ContentInstance_optional := m_contentCreateContentInstance(omit)}} + } + }; template (value) RequestPrimitive m_createContentInstance(XSD.ID p_parentResourceAddress, XSD.String p_primitiveContent) modifies m_create := { to_ := p_parentResourceAddress, @@ -1508,8 +1527,8 @@ module OneM2M_Templates { * @desc Base primitiveContent for CREATE operation for ContentInstance resource * @param p_primitiveContent Content for the ContentInstance */ - template (value) ContentInstance_optional m_contentCreateContentInstance(XSD.String p_primitiveContent := "AnyValue") := { - resourceName := c_defaultContentInstanceResourceName,//O + template (value) ContentInstance_optional m_contentCreateContentInstance(in template (omit) XSD.String p_name := c_defaultContentInstanceResourceName, XSD.String p_primitiveContent := "AnyValue") := { + resourceName := p_name,//O resourceType := omit,//NP resourceID := omit,//NP parentID := omit,//NP diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index e25c18b..90406c4 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $ - * $Id: OneM2M_Testcases.ttcn 271 2017-05-17 07:14:50Z reinaortega $ + * $Id: OneM2M_Testcases.ttcn 273 2017-05-17 08:53:18Z reinaortega $ * @desc Module containing test cases for oneM2M * */ @@ -562,7 +562,7 @@ module OneM2M_Testcases { } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; - setverdict(fail, testcasename() & ": Error, Result content set to 0 is impossible for a retrieve request "); + setverdict(fail, testcasename() & ": Error, Result content set to " & int2str(enum2int(p_resultContent)) & " is impossible for a retrieve request "); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); @@ -4340,9 +4340,9 @@ module OneM2M_Testcases { v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); - v_contentInstanceIndex1 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex); + v_contentInstanceIndex1 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex); - v_contentInstanceIndex2 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex); + v_contentInstanceIndex2 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex); v_contentResponse.any_1[0].ContentInstance_optional := mw_contentContentInstanceBase; v_contentResponse.any_1[0].ContentInstance_optional.resourceName := vc_resourcesList[v_contentInstanceIndex1].resource.any_1[0].ContentInstance_optional.resourceName; @@ -4457,9 +4457,9 @@ module OneM2M_Testcases { v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); - v_contentInstanceIndex1 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex); + v_contentInstanceIndex1 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex); - v_contentInstanceIndex2 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex); + v_contentInstanceIndex2 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex); v_contentResponse.any_1[0].ContentInstance_optional := mw_contentContentInstanceBase; v_contentResponse.any_1[0].ContentInstance_optional.resourceName := vc_resourcesList[v_contentInstanceIndex2].resource.any_1[0].ContentInstance_optional.resourceName; @@ -7567,8 +7567,8 @@ module OneM2M_Testcases { v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); - v_contentInstanceIndex_1 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex); - v_contentInstanceIndex_2 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex); + v_contentInstanceIndex_1 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex); + v_contentInstanceIndex_2 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex); // Test Body v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/la")); @@ -7692,8 +7692,8 @@ module OneM2M_Testcases { v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); - v_contentInstanceIndex_1 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex); - v_contentInstanceIndex_2 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex); + v_contentInstanceIndex_1 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex); + v_contentInstanceIndex_2 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex); // Test Body v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/ol")); @@ -8572,8 +8572,8 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); - v_containerIndex_1 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource - v_containerIndex_2 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource + v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource + v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; @@ -8697,7 +8697,7 @@ module OneM2M_Testcases { var integer v_acpIndex := -1; var integer v_groupIndex := -1; var RequestPrimitive v_request; - var template RequestPrimitive v_containerCreateRequest := m_createContainer("NotInitialized", "MyContainer2"); + var template RequestPrimitive v_containerCreateRequest := m_createContainer_noResourceName; var template RequestPrimitive v_updateRequest := m_updateGroupBase; var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, int61); //c_CUDNDi @@ -8716,8 +8716,8 @@ module OneM2M_Testcases { v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource v_containerCreateRequest.primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}; - v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource - v_containerIndex_2 := f_cse_createResource(int3, v_containerCreateRequest, v_aeIndex); // AE child resource + v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource + v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource)}, omit, int3), v_aeIndex); v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; @@ -9106,8 +9106,8 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi - v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource - v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource + v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource + v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_memberId_1 := f_getResourceId(vc_resourcesList[v_containerIndex_1].resource); v_memberId_2 := f_getResourceId(vc_resourcesList[v_containerIndex_2].resource); v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {v_memberId_1, v_memberId_2}, omit, int3), v_aeIndex); // AE child resource @@ -9174,8 +9174,8 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi - v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource - v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource + v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource + v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource)}, omit, int3), v_aeIndex); v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; @@ -9464,9 +9464,9 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); - v_containerIndex_1 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource - v_containerIndex_2 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource - v_containerIndex_3 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource + v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource + v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource + v_containerIndex_3 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; @@ -9528,8 +9528,8 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi - v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource - v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource + v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource + v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3), v_aeIndex); @@ -9796,8 +9796,8 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource - v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource - v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource + v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource + v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; v_membersAcpIds := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3, -, v_membersAcpIds), v_aeIndex); // AE child resource @@ -9891,8 +9891,8 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource - v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource - v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource + v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource + v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; v_membersAcpIds := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3, -, v_membersAcpIds), v_aeIndex); // AE child resource @@ -9984,8 +9984,8 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource - v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource - v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource + v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource + v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; v_acpIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, v_acpIDs, int3), v_aeIndex); // AE child resource @@ -10079,8 +10079,8 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource - v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource - v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource + v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource + v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; v_acpIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, v_acpIDs, int3), v_aeIndex); // AE child resource @@ -10263,8 +10263,8 @@ module OneM2M_Testcases { v_aeIndex_1 := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_aeIndex_2 := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", omit), -1); // AE2 is registred v_acpIndex := f_cse_createResource(int1, v_createAcp, -1); // AE child resource - v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "myCon"), v_aeIndex_1); // AE1 child resource - v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "myCon"), v_aeIndex_2); // AE2 child resource + v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex_1); // AE1 child resource + v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex_2); // AE2 child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_aeIndex_1].resource), f_getResourceId(vc_resourcesList[v_aeIndex_2].resource)}; v_membersAcpIds := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int2, -, v_membersAcpIds), -1); @@ -10349,8 +10349,8 @@ module OneM2M_Testcases { v_aeIndex_1 := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_aeIndex_2 := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", omit), -1); // AE2 is registred v_acpIndex := f_cse_createResource(int1, v_createAcp, -1); // AE child resource - v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "myCon"), v_aeIndex_1); // AE1 child resource - v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "myCon"), v_aeIndex_2); // AE2 child resource + v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex_1); // AE1 child resource + v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex_2); // AE2 child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_aeIndex_1].resource), f_getResourceId(vc_resourcesList[v_aeIndex_2].resource)}; v_membersAcpIds := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int2, -, v_membersAcpIds), -1); -- GitLab