diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 37ab4373cde7206043fabe103bfa73de40ad8fc1..f2d9381698b9aff8668102e79c77a20dcbc256bf 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $ - * $Id: OneM2M_Functions.ttcn 214 2017-01-19 10:04:34Z reinaortega $ + * $Id: OneM2M_Functions.ttcn 218 2017-02-07 09:36:53Z carres $ * @desc Module containing functions for oneM2M * */ @@ -1338,6 +1338,254 @@ module OneM2M_Functions { p_list := result; } + function f_getTemplateFromPrimitiveContent (in template PrimitiveContent p_primitiveContent) return template PrimitiveContent{ + var template PrimitiveContent v_primitiveContent := omit; + + if(ischosen(p_primitiveContent.any_1[0].Container_optional)){ // Container + v_primitiveContent.any_1 := {{Container_optional := mw_contentContainerBase}}; + + if(ispresent(p_primitiveContent.any_1[0].Container_optional.labels)){ + v_primitiveContent.any_1[0].Container_optional.labels := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs)){ + v_primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Container_optional.dynamicAuthorizationConsultationIDs)){ + v_primitiveContent.any_1[0].Container_optional.dynamicAuthorizationConsultationIDs := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Container_optional.announceTo)){ + v_primitiveContent.any_1[0].Container_optional.announceTo := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Container_optional.announcedAttribute)){ + v_primitiveContent.any_1[0].Container_optional.announcedAttribute := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Container_optional.creator)){ + v_primitiveContent.any_1[0].Container_optional.creator := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Container_optional.maxNrOfInstances)){ + v_primitiveContent.any_1[0].Container_optional.maxNrOfInstances := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Container_optional.maxByteSize)){ + v_primitiveContent.any_1[0].Container_optional.maxByteSize := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Container_optional.maxInstanceAge)){ + v_primitiveContent.any_1[0].Container_optional.maxInstanceAge := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Container_optional.locationID)){ + v_primitiveContent.any_1[0].Container_optional.locationID := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Container_optional.ontologyRef)){ + v_primitiveContent.any_1[0].Container_optional.ontologyRef := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Container_optional.disableRetrieval)){ + v_primitiveContent.any_1[0].Container_optional.disableRetrieval := ?; + } + } + + else if(ischosen(p_primitiveContent.any_1[0].AE_optional)){ // AE + v_primitiveContent.any_1 := {{AE_optional := mw_contentAeBase}}; + + if(ispresent(p_primitiveContent.any_1[0].AE_optional.labels)){ + v_primitiveContent.any_1[0].AE_optional.labels := ?; + } + if(ispresent(p_primitiveContent.any_1[0].AE_optional.accessControlPolicyIDs)){ + v_primitiveContent.any_1[0].AE_optional.accessControlPolicyIDs := ?; + } + if(ispresent(p_primitiveContent.any_1[0].AE_optional.dynamicAuthorizationConsultationIDs)){ + v_primitiveContent.any_1[0].AE_optional.dynamicAuthorizationConsultationIDs := ?; + } + if(ispresent(p_primitiveContent.any_1[0].AE_optional.announceTo)){ + v_primitiveContent.any_1[0].AE_optional.announceTo := ?; + } + if(ispresent(p_primitiveContent.any_1[0].AE_optional.announcedAttribute)){ + v_primitiveContent.any_1[0].AE_optional.announcedAttribute := ?; + } + if(ispresent(p_primitiveContent.any_1[0].AE_optional.appName)){ + v_primitiveContent.any_1[0].AE_optional.appName := ?; + } + if(ispresent(p_primitiveContent.any_1[0].AE_optional.pointOfAccess)){ + v_primitiveContent.any_1[0].AE_optional.pointOfAccess := ?; + } + if(ispresent(p_primitiveContent.any_1[0].AE_optional.ontologyRef)){ + v_primitiveContent.any_1[0].AE_optional.ontologyRef := ?; + } + if(ispresent(p_primitiveContent.any_1[0].AE_optional.nodeLink)){ + v_primitiveContent.any_1[0].AE_optional.nodeLink := ?; + } + if(ispresent(p_primitiveContent.any_1[0].AE_optional.contentSerialization)){ + v_primitiveContent.any_1[0].AE_optional.contentSerialization := ?; + } + if(ispresent(p_primitiveContent.any_1[0].AE_optional.e2eSecInfo)){ + v_primitiveContent.any_1[0].AE_optional.e2eSecInfo := ?; + } + } + + else if(ischosen(p_primitiveContent.any_1[0].AccessControlPolicy_optional)){ // ACP + v_primitiveContent.any_1 := {{AccessControlPolicy_optional := mw_contentAcpBase}}; + + if(ispresent(p_primitiveContent.any_1[0].AccessControlPolicy_optional.labels)){ + v_primitiveContent.any_1[0].AccessControlPolicy_optional.labels := ?; + } + if(ispresent(p_primitiveContent.any_1[0].AccessControlPolicy_optional.announceTo)){ + v_primitiveContent.any_1[0].AccessControlPolicy_optional.announceTo := ?; + } + } + + else if(ischosen(p_primitiveContent.any_1[0].ContentInstance_optional)){ // ContentInstance + v_primitiveContent.any_1 := {{ContentInstance_optional := mw_contentContentInstanceBase}}; + + if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.labels)){ + v_primitiveContent.any_1[0].ContentInstance_optional.labels := ?; + } + if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.announceTo)){ + v_primitiveContent.any_1[0].ContentInstance_optional.announceTo := ?; + } + if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.announcedAttribute)){ + v_primitiveContent.any_1[0].ContentInstance_optional.announcedAttribute := ?; + } + if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.creator)){ + v_primitiveContent.any_1[0].ContentInstance_optional.creator := ?; + } + if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.contentInfo)){ + v_primitiveContent.any_1[0].ContentInstance_optional.contentInfo := ?; + } + if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.contentRef)){ + v_primitiveContent.any_1[0].ContentInstance_optional.contentRef := ?; + } + if(ispresent(p_primitiveContent.any_1[0].ContentInstance_optional.ontologyRef)){ + v_primitiveContent.any_1[0].ContentInstance_optional.ontologyRef := ?; + } + } + + else if(ischosen(p_primitiveContent.any_1[0].Group_optional)){ // Group + v_primitiveContent.any_1 := {{Group_optional := mw_contentGroupBase}}; + + if(ispresent(p_primitiveContent.any_1[0].Group_optional.labels)){ + v_primitiveContent.any_1[0].Group_optional.labels := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Group_optional.accessControlPolicyIDs)){ + v_primitiveContent.any_1[0].Group_optional.accessControlPolicyIDs := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Group_optional.dynamicAuthorizationConsultationIDs)){ + v_primitiveContent.any_1[0].Group_optional.dynamicAuthorizationConsultationIDs := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Group_optional.announceTo)){ + v_primitiveContent.any_1[0].Group_optional.announceTo := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Group_optional.announcedAttribute)){ + v_primitiveContent.any_1[0].Group_optional.announcedAttribute := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Group_optional.creator)){ + v_primitiveContent.any_1[0].Group_optional.creator := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Group_optional.membersAccessControlPolicyIDs)){ + v_primitiveContent.any_1[0].Group_optional.membersAccessControlPolicyIDs := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Group_optional.memberTypeValidated)){ + v_primitiveContent.any_1[0].Group_optional.memberTypeValidated := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Group_optional.consistencyStrategy)){ + v_primitiveContent.any_1[0].Group_optional.consistencyStrategy := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Group_optional.groupName)){ + v_primitiveContent.any_1[0].Group_optional.groupName := ?; + } + } + + else if(ischosen(p_primitiveContent.any_1[0].PollingChannel_optional)){ // PollingChannel + v_primitiveContent.any_1 := {{PollingChannel_optional := mw_contentPollingChannelBase}}; + + if(ispresent(p_primitiveContent.any_1[0].PollingChannel_optional.labels)){ + v_primitiveContent.any_1[0].PollingChannel_optional.labels := ?; + } + } + + else if(ischosen(p_primitiveContent.any_1[0].Schedule_optional)){ // Schedule + v_primitiveContent.any_1 := {{Schedule_optional := mw_contentScheduleBase}}; + + if(ispresent(p_primitiveContent.any_1[0].Schedule_optional.labels)){ + v_primitiveContent.any_1[0].Schedule_optional.labels := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Schedule_optional.announceTo)){ + v_primitiveContent.any_1[0].Schedule_optional.announceTo := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Schedule_optional.announcedAttribute)){ + v_primitiveContent.any_1[0].Schedule_optional.announcedAttribute := ?; + } + } + + else if(ischosen(p_primitiveContent.any_1[0].Subscription_optional)){ // Schedule + v_primitiveContent.any_1 := {{Subscription_optional := mw_contentSubscriptionBase}}; + + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.labels)){ + v_primitiveContent.any_1[0].Subscription_optional.labels := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.accessControlPolicyIDs)){ + v_primitiveContent.any_1[0].Subscription_optional.accessControlPolicyIDs := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.dynamicAuthorizationConsultationIDs)){ + v_primitiveContent.any_1[0].Subscription_optional.dynamicAuthorizationConsultationIDs := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.creator)){ + v_primitiveContent.any_1[0].Subscription_optional.creator := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.eventNotificationCriteria)){ + v_primitiveContent.any_1[0].Subscription_optional.eventNotificationCriteria := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.expirationCounter)){ + v_primitiveContent.any_1[0].Subscription_optional.expirationCounter := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.groupID)){ + v_primitiveContent.any_1[0].Subscription_optional.groupID := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.notificationForwardingURI)){ + v_primitiveContent.any_1[0].Subscription_optional.notificationForwardingURI := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.batchNotify)){ + v_primitiveContent.any_1[0].Subscription_optional.batchNotify := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.rateLimit)){ + v_primitiveContent.any_1[0].Subscription_optional.rateLimit := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.preSubscriptionNotify)){ + v_primitiveContent.any_1[0].Subscription_optional.preSubscriptionNotify := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.pendingNotification)){ + v_primitiveContent.any_1[0].Subscription_optional.pendingNotification := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.notificationStoragePriority)){ + v_primitiveContent.any_1[0].Subscription_optional.notificationStoragePriority := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.latestNotify)){ + v_primitiveContent.any_1[0].Subscription_optional.latestNotify := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.notificationContentType)){ + v_primitiveContent.any_1[0].Subscription_optional.notificationContentType := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.notificationEventCat)){ + v_primitiveContent.any_1[0].Subscription_optional.notificationEventCat := ?; + } + if(ispresent(p_primitiveContent.any_1[0].Subscription_optional.subscriberURI)){ + v_primitiveContent.any_1[0].Subscription_optional.subscriberURI := ?; + } + } + log("Etape0"); + return v_primitiveContent; + } + + function f_match2PrimitiveContent (in PrimitiveContent p_responsePrimitiveContent, in template PrimitiveContent p_requestPrimitiveContent) runs on CseTester { + var template PrimitiveContent v_primitiveContent; + var PrimitiveContent v_response; + v_response := p_responsePrimitiveContent; + v_primitiveContent := f_getTemplateFromPrimitiveContent(p_requestPrimitiveContent); + log("Etape1"); + if(not(match(v_response, v_primitiveContent))){ + setverdict(inconc, "Preamble: Error resource incomplete, some attribute missing "); + } + + } + + }//end of commonFunctions group externalFunctions { diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 39a346f00e855a56268500b5dc9628cf7106a4e1..cd87e06ee3b3f214dbbffb8cbe049a84be1ef8a6 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $ - * $Id: OneM2M_Templates.ttcn 202 2016-12-15 15:08:33Z reinaortega $ + * $Id: OneM2M_Templates.ttcn 219 2017-02-07 11:06:26Z reinaortega $ * @desc Module containing templates for oneM2M * */ @@ -1483,7 +1483,7 @@ module OneM2M_Templates { expirationTime := ?,//M dynamicAuthorizationConsultationIDs := *, //O announceTo := *,//O - announcedAttribute := ?,//M + announcedAttribute := *,//O appName := *,//O app_ID := ?,//M aE_ID := ?,//M @@ -1508,7 +1508,7 @@ module OneM2M_Templates { expirationTime := omit,//M dynamicAuthorizationConsultationIDs := omit, //O announceTo := omit,//O - announcedAttribute := omit,//M + announcedAttribute := omit,//O appName := omit,//O app_ID := omit,//M aE_ID := omit,//M @@ -1533,7 +1533,7 @@ module OneM2M_Templates { expirationTime := *,//M dynamicAuthorizationConsultationIDs := *, //O announceTo := *,//O - announcedAttribute := *,//M + announcedAttribute := *,//O appName := *,//O app_ID := *,//M aE_ID := *,//M diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index fd84691495b62c3b45af25c2b481e1043215e3d6..bd83eaa6522700d0be8a73a7eb578652d6beb1e9 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $ - * $Id: OneM2M_Testcases.ttcn 217 2017-01-20 10:18:57Z reinaortega $ + * $Id: OneM2M_Testcases.ttcn 218 2017-02-07 09:36:53Z carres $ * @desc Module containing test cases for oneM2M * */ @@ -3002,7 +3002,9 @@ module OneM2M_Testcases { f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); - + + //f_match2PrimitiveContent(vc_resourcesList[v_resourceIndex].resource, p_createRequestPrimitive.primitiveContent); TODO fix the match problem + // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);