diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 7deedc6da31fffb0d1938905e86fcf410c02b0fd..6888d71be582a0b7342d36300f368c3a69e6fd23 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $ - * $Id: OneM2M_Functions.ttcn 263 2017-05-16 10:09:27Z reinaortega $ + * $Id: OneM2M_Functions.ttcn 277 2017-05-18 04:51:46Z reinaortega $ * @desc Module containing functions for oneM2M * */ @@ -1100,18 +1100,20 @@ module OneM2M_Functions { } if (p_resourceType == int23) {//subscription + //notificationURI if(match(valueof(p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI), v_defaultListOfURIs )){ p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {f_getResourceAddress(p_parentIndex)}; } - /*if(PX_FROM_IS_AE_ID) { - if(PX_UNSTRUCTURED){ - p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {vc_aeAux.aE_ID}; - } else { - p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {PX_CSE_ID & "/" & vc_aeAux.aE_ID}; - } - } else { - p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {"/" & PX_CSE_NAME & "/" & PX_AEAUX_NAME};//c_aeAuxName - }*/ + //creator attribute + if(ispresent(p_request.primitiveContent.any_1[0].Subscription_optional.creator)) { + p_request.primitiveContent.any_1[0].Subscription_optional.creator := f_getCreator(p_parentIndex); + } + } + if (p_resourceType == int4) {//contentInstance + //creator attribute + if(ispresent(p_request.primitiveContent.any_1[0].ContentInstance_optional.creator)) { + p_request.primitiveContent.any_1[0].ContentInstance_optional.creator := f_getCreator(p_parentIndex); + } } return valueof(p_request); @@ -1304,6 +1306,26 @@ module OneM2M_Functions { return PX_SUPER_USER; } } + + /** + * @desc Resolution of the creator attribute for a given resource + * @param p_targetResourceIndex Internal resource index of the given resource + * @return AE-ID or CSE-ID of the entity creating the given resource + * @verdict + */ + function f_getCreator(integer p_targetResourceIndex := -1) runs on CseTester return XSD.ID { + + if(p_targetResourceIndex == -1) { + return PX_CSE_ID; + } + + if(ischosen(vc_resourcesList[p_targetResourceIndex].resource.any_1[0].AE_optional)) { + return vc_resourcesList[p_targetResourceIndex].resource.any_1[0].AE_optional.aE_ID; + } else { + return f_getCreator(vc_resourcesList[p_targetResourceIndex].parentIndex); + } + + } /** * @desc Return of a index of a specific attribute from an attributeList by attributeName diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index 8139360396e1355f4ecb65bd70e7b47abd020462..99467e09f317211b5ea0e42381031958522f049d 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 276 2017-05-18 01:31:08Z reinaortega $ + * $Id: OneM2M_Testcases.ttcn 277 2017-05-18 04:51:46Z reinaortega $ * @desc Module containing test cases for oneM2M * */ @@ -2598,374 +2598,341 @@ module OneM2M_Testcases { testcase TC_CSE_DMR_CRE_BV_015_01() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"accessControlPolicyIDs", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := {"NotInitialized"}; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_02() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"expirationTime", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.expirationTime := "20301231T012345"; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_03() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"labels", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.labels := {"MyLabel"}; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_04() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"maxNrOfInstances", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.maxNrOfInstances := 0; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_05() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"maxByteSize", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.maxByteSize := 0; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_06() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"maxInstanceAge", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.maxInstanceAge := 0; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_07() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"ontologyRef", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.ontologyRef := "MyOntologyRef"; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_08() runs on CseTester system CseSystem {//TODO // Local variables var template RequestPrimitive v_createRequest := m_createContentInstanceBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"expirationTime", omit}; v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.expirationTime := "20301231T012345"; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_09() runs on CseTester system CseSystem {//TODO // Local variables var template RequestPrimitive v_createRequest := m_createContentInstanceBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"labels", omit}; v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.labels := {"MyLabel"}; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_10() runs on CseTester system CseSystem {//TODO // Local variables var template RequestPrimitive v_createRequest := m_createContentInstanceBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"creator", omit}; v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.creator := "MyCreator"; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_11() runs on CseTester system CseSystem {//TODO // Local variables var template RequestPrimitive v_createRequest := m_createContentInstanceBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"contentInfo", omit}; v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.contentInfo := "MyContentInfo"; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_12() runs on CseTester system CseSystem {//TODO // Local variables var template RequestPrimitive v_createRequest := m_createContentInstanceBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"ontologyRef", omit}; v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.ontologyRef := "MyOntologyRef"; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int4, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_13() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createAcpBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"expirationTime", omit}; v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.expirationTime := "20301231T012345"; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int1, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int1, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_14() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createAcpBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"labels", omit}; v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := {"MyLabel"}; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int1, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int1, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_15() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"accessControlPolicyIDs", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.accessControlPolicyIDs := {"NotInitialized"}; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_16() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"expirationTime", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.expirationTime := "20301231T012345"; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_17() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"labels", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.labels := {"MyLabel"}; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_18() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"eventNotificationCriteria", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.eventNotificationCriteria := valueof(m_eventNotificationCriteria({int1}, -)); - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_19() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"expirationCounter", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.expirationCounter := 1; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_20() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"groupID", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.groupID := "MyGroupID"; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_21() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"notificationForwardingURI", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.notificationForwardingURI := "MyForwardingURI"; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_22() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"batchNotify", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.batchNotify := {0, "PT1S"}; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_23() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"rateLimit", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.rateLimit := {0, omit}; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_24() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"preSubscriptionNotify", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.preSubscriptionNotify := 1; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_25() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"pendingNotification", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.pendingNotification := int1; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_26() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"notificationStoragePriority", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.notificationStoragePriority := 1; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_27() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"latestNotify", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.latestNotify := true; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_28() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"notificationContentType", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.notificationContentType := int1; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_29() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"notificationEventCat", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.notificationEventCat := {alt_1 := 100}; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_30() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"creator", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.creator := "MyCreator"; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_31() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"subscriberURI", omit}; v_createRequest.primitiveContent.any_1[0].Subscription_optional.subscriberURI := "MySubscriberURI"; - v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); + f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } - - - function f_CSE_DMR_CRE_BV_015(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in AttributeAux p_optionalAttribute) runs on CseTester return ResponsePrimitive { + function f_CSE_DMR_CRE_BV_015(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in AttributeAux p_optionalAttribute) runs on CseTester { // Local variables var MsgIn v_response; @@ -3015,7 +2982,7 @@ module OneM2M_Testcases { setverdict(fail, testcasename() & ": Rejected creation of resource type " & int2str(enum2int(p_resourceType)) & " containing attribute" & p_optionalAttribute.name); } [] tc_ac.timeout { - setverdict(inconc, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); + setverdict(fail, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } @@ -3024,10 +2991,7 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); - - - return v_response.primitive.responsePrimitive; - + }//end f_CSE_DMR_CRE_BV_015 }// end group g_CSE_DMR_CRE_BV_015