diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 6f6351081e5980c332467b78ed35c78df2d18db2..877a099cf5e3e3666aac915beab05096282c11ab 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $ - * $Id: OneM2M_Functions.ttcn 298 2017-06-14 07:11:13Z reinaortega $ + * $Id: OneM2M_Functions.ttcn 306 2017-06-20 16:19:04Z reinaortega $ * @desc Module containing functions for oneM2M * */ @@ -46,6 +46,9 @@ module OneM2M_Functions { } // end f_cf01Up + /** + * @desc Ports mapping and default behaviour activation for Config 02 + */ function f_cf02Up() runs on CseTester { // Variables @@ -83,6 +86,26 @@ module OneM2M_Functions { //Initialze the IUT } // end f_cf03Up + + /** + * @desc Ports mapping and default behaviour activation for Config 04 + */ + function f_cf04Up() runs on CseTester { + + // Variables + vc_config := e_cf04; + + // Map + map(self:mccPort, system:mccPort); + map(self:acPort, system:acPort); + activate(a_default()); + activate(a_cse_cf04()); + + // Connect + + //Initialze the IUT + + } // end f_cf03Up /** * @desc Ports unmapping @@ -134,6 +157,15 @@ module OneM2M_Functions { unmap(self:acPort, system:acPort); } + /** + * @desc Ports unmapping for Config 04 + */ + function f_cf04Down() runs on CseTester { + + unmap(self:mccPort, system:mccPort); + unmap(self:acPort, system:acPort); + } + }//end group configFunctions group CseFunctions { @@ -757,6 +789,13 @@ module OneM2M_Functions { log(__SCOPE__ & ": Info: resourceName not returned. Using the one provided in the request: " & p_request.primitiveContent.pollingChannel_optional.resourceName) } } + case (int16) { + if (isvalue(p_response.primitiveContent.remoteCSE_optional) and + not(ispresent(p_response.primitiveContent.remoteCSE_optional.resourceName))) { + p_response.primitiveContent.remoteCSE_optional.resourceName := p_request.primitiveContent.remoteCSE_optional.resourceName; + log(__SCOPE__ & ": Info: resourceName not returned. Using the one provided in the request: " & p_request.primitiveContent.remoteCSE_optional.resourceName) + } + } case (int18) { if (isvalue(p_response.primitiveContent.schedule_optional) and not(ispresent(p_response.primitiveContent.schedule_optional.resourceName))) { @@ -867,6 +906,139 @@ module OneM2M_Functions { unmap(self:acPort, system:acPort); } //end f_cse_notifyProcedure + + /** + * @desc It determines whether the addressing method of the given address is non-hierarchical. Not valid for CSE-Base as target + * @param p_resourceAddress + * @return boolean + */ + function f_isNonHierarchical(XSD.ID p_resourceAddress) runs on Tester return boolean { + var integer i; + var integer v_nbOfSlashes:= 0; + + for (i := 0; i < lengthof(p_resourceAddress); i:= i+1){ + if(match (p_resourceAddress[i], "/")){ + v_nbOfSlashes:= v_nbOfSlashes+1; + } + } + + if(f_isScopeCseRelative(p_resourceAddress)) { + if(v_nbOfSlashes == 0 ) { + return true; + } else { + return false; + } + + } else if (f_isScopeSpRelative(p_resourceAddress)){ + if(v_nbOfSlashes == 2 ) { + return true; + } else { + return false; + } + } else if (f_isScopeAbsolute(p_resourceAddress)){ + if(v_nbOfSlashes == 4 ) { + return true; + } else { + return false; + } + } else { + return false; + } + } + + /** + * @desc It determines whether the addressing method of the given address is hierarchical. Not valid for CSE-Base as target + * @param p_resourceAddress + * @return boolean + */ + function f_isHierarchical(XSD.ID p_resourceAddress) runs on Tester return boolean { + if(f_isNonHierarchical(p_resourceAddress)) { + return false; + } else { + return true; + } + } + + /** + * @desc It determines whether the primitive scope of the given address is CSE-Relative + * @param p_resourceAddress + * @return boolean + */ + function f_isScopeCseRelative(XSD.ID p_resourceAddress) runs on Tester return boolean { + if (p_resourceAddress[0] != "/") { + return true; + } else { + return false; + } + } + + /** + * @desc It determines whether the primitive scope of the given address is SP-Relative + * @param p_resourceAddress + * @return boolean + */ + function f_isScopeSpRelative(XSD.ID p_resourceAddress) runs on Tester return boolean { + if ((p_resourceAddress[0] == "/") and (p_resourceAddress[1] != "/")){ + return true; + } else { + return false; + } + } + + /** + * @desc It determines whether the primitive scope of the given address is Absolute + * @param p_resourceAddress + * @return boolean + */ + function f_isScopeAbsolute(XSD.ID p_resourceAddress) runs on Tester return boolean { + if ((p_resourceAddress[0] == "/") and (p_resourceAddress[1] == "/")) { + return true; + } else { + return false; + } + } + + /** + * @desc Registration of Test System (simulating a CSE) to the CSE IUT (creation of remoteCSE) + * @param p_requestPrimitive Template request primitive + * @return Internal resource index of the created resource + */ + function f_cse_registerRemoteCse(in template RequestPrimitive p_requestPrimitive) runs on CseTester return integer { + + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_resourceIndex := -1; + + v_request := f_getCreateRequestPrimitive(int16, p_requestPrimitive, -1); + + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__&":INFO: Resource type RemoteCSE created successfuly"); + f_checkAttributesToBeSaved(int16, v_request, v_response.primitive.responsePrimitive); + v_resourceIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, -1); + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_resourceIndex}; + } + [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(inconc, __SCOPE__&":INFO: Error while creating resource type RemoteCSE"); + } + [] mccPort.receive { + tc_ac.stop; + setverdict(inconc, __SCOPE__&":INFO: Unexpected message received"); + } + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__&":INFO: No answer while creating resource type RemoteCSE"); + } + } + + f_checkCseTesterStatus(); + + return v_resourceIndex; + + } }//end group helpingFunctions @@ -897,7 +1069,18 @@ module OneM2M_Functions { log(__SCOPE__&": WARNING: Unexpected message received"); repeat; } - } + } + + /** + * @desc Cse altstep for config 04 + */ + altstep a_cse_cf04() runs on CseTester { + + [] mccPort.receive { + log(__SCOPE__&": WARNING: Unexpected message received"); + repeat; + } + } }//end group altstepFunctions diff --git a/LibOneM2M/OneM2M_Pixits.ttcn b/LibOneM2M/OneM2M_Pixits.ttcn index 4f3a976989c301a01ed54fa71a0367f7f900ed57..884f5d0e8664e3e21f7007113f4620b4a05ebc27 100644 --- a/LibOneM2M/OneM2M_Pixits.ttcn +++ b/LibOneM2M/OneM2M_Pixits.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Pixits.ttcn $ - * $Id: OneM2M_Pixits.ttcn 298 2017-06-14 07:11:13Z reinaortega $ + * $Id: OneM2M_Pixits.ttcn 306 2017-06-20 16:19:04Z reinaortega $ * @desc Module containing Pixits for oneM2M * */ @@ -38,6 +38,8 @@ module OneM2M_Pixits { modulepar XSD.ID PX_CSE_ID := "cseId"; + modulepar XSD.ID PX_CSE1_ID := "MyCSEId"; + modulepar XSD.ID PX_CSE_RESOURCE_ID := "cseResourceId"; modulepar XSD.ID PX_AE1_ID_STEM := ""; diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 68e7321920ceaaceb3921e84b76471f84effd32b..2fb5624ec86f25371e972df769f5a42dbe1fc21e 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $ - * $Id: OneM2M_Templates.ttcn 298 2017-06-14 07:11:13Z reinaortega $ + * $Id: OneM2M_Templates.ttcn 306 2017-06-20 16:19:04Z reinaortega $ * @desc Module containing templates for oneM2M * */ @@ -188,6 +188,110 @@ module OneM2M_Templates { localTokenIDs := omit, tokenRequestIndicator := omit }; + + /** + * @desc RETRIEVE request primtive containing the Filter Criteria in the filterCriteria field + * @param p_targetResourceAddress Target resource address + * @param p_filterCriteria FilterCriteria + * @param p_originator Originator (from) + */ + template (value) RequestPrimitive m_retrieveResourceFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage) modifies m_retrieveResource := { + requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000), + filterCriteria := { + createdBefore := omit, + createdAfter := omit, + modifiedSince := omit, + unmodifiedSince := omit, + stateTagSmaller := omit, + stateTagBigger := omit, + expireBefore := omit, + expireAfter := omit, + labels := omit, + resourceType := omit, + sizeAbove := omit, + sizeBelow := omit, + contentType_list := {}, + attribute_list := {}, + filterUsage := p_filterUsage, + limit := omit, + semanticsFilter_list := {}, + filterOperation := omit, + contentFilterSyntax := omit, + contentFilterQuery := omit, + level := omit, + offset := omit + } + }; + + /** + * @desc RETRIEVE request primtive containing the Discovery Type in the discoveryResultType field and Filter Criteria in the filterCriteria field + * @param p_targetResourceAddress Target resource address + * @param p_filterCriteria FilterCriteria + * @param p_originator Originator (from) + */ + template (value) RequestPrimitive m_retrieveResourceDiscResTypeFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) DiscResType p_discResType, in template (value) FilterUsage p_filterUsage) modifies m_retrieveResource := { + requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000), + filterCriteria := { + createdBefore := omit, + createdAfter := omit, + modifiedSince := omit, + unmodifiedSince := omit, + stateTagSmaller := omit, + stateTagBigger := omit, + expireBefore := omit, + expireAfter := omit, + labels := omit, + resourceType := omit, + sizeAbove := omit, + sizeBelow := omit, + contentType_list := {}, + attribute_list := {}, + filterUsage := p_filterUsage, + limit := omit, + semanticsFilter_list := {}, + filterOperation := omit, + contentFilterSyntax := omit, + contentFilterQuery := omit, + level := omit, + offset := omit + }, + discoveryResultType := p_discResType + }; + + /** + * @desc RETRIEVE request primtive containing the Discovery Type in the discoveryResultType field and Filter Criteria in the filterCriteria field + * @param p_targetResourceAddress Target resource address + * @param p_filterCriteria FilterCriteria + * @param p_originator Originator (from) + */ + template (value) RequestPrimitive m_retrieveResourceInvalidFormatOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) modifies m_retrieveResource := { + requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000), + filterCriteria := { + createdBefore := omit, + createdAfter := omit, + modifiedSince := omit, + unmodifiedSince := omit, + stateTagSmaller := omit, + stateTagBigger := omit, + expireBefore := omit, + expireAfter := omit, + labels := omit, + resourceType := omit, + sizeAbove := omit, + sizeBelow := omit, + contentType_list := {}, + attribute_list := {}, + filterUsage := omit, + limit := omit, + semanticsFilter_list := {}, + filterOperation := omit, + contentFilterSyntax := omit, + contentFilterQuery := omit, + level := omit, + offset := omit + } + }; + }//end group Retrieve group Update { @@ -472,6 +576,15 @@ module OneM2M_Templates { primitiveContent := {container_optional := m_contentCreateContainer} }; + /** + * @desc Base CREATE request primitive for remoteCSE resource + */ + template (value) RequestPrimitive m_createRemoteCSEBase(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) ResourceName p_resourceName := c_defaultRemoteCSEResourceName, in template (omit) XSD.AnyURI p_cSEBase := PX_CSE1_ID, in template (omit) XSD.ID p_cSE_ID := PX_CSE_ID) modifies m_create := { + requestIdentifier := testcasename() & "-m_createRemoteCSE" & f_rnd(1, 1000000), + resourceType := int16, + primitiveContent := {remoteCSE_optional := m_contentCreateRemoteCSE(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_cSE_ID)} + }; + /** * @desc CREATE request primitive for Container resource wiht no resourceName provided */ @@ -596,6 +709,15 @@ module OneM2M_Templates { primitiveContent := {groupAnnc_optional := mw_contentCreateGroupAnncBase} }; + /** + * @desc Base CREATE request primitive for MgmtCmd resource + */ + template (value) RequestPrimitive m_createMgmtCmdBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createMgmtCmd" & f_rnd(1, 1000000), + resourceType := int12, + primitiveContent := {mgmtResource_optional := m_contentCreateMgmtCmd (-,-)} + }; + /** * @desc Base CREATE request primitive for MgmtObj resource */ @@ -711,6 +833,14 @@ module OneM2M_Templates { primitiveContent := {serviceSubscribedAppRule_optional := m_contentCreateServiceSubscribedAppRule (p_applicableCredIDs, p_allowedAppIDs, p_allowedAEs)} }; + /** + * @desc Base CREATE request primitive for ServiceSubscribedAppRule Resource + */ + template (value) RequestPrimitive m_createServiceSubscribedAppRuleBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createServiceSubscribedAppRuleBase" & f_rnd(1, 1000000), + resourceType := int19, + primitiveContent := {serviceSubscribedAppRule_optional := m_contentCreateServiceSubscribedAppRuleBase} + }; /** * @desc Base CREATE request primitive for Subscription resource @@ -740,6 +870,15 @@ module OneM2M_Templates { primitiveContent := {subscription_optional := m_contentCreateSubscriptionAdvanced (p_notificationURI, p_name, p_eventNotificationCriteria, p_expirationCounter, p_batchNotify, p_latestNotify, p_subscriberURI, p_notificationContentType)} }; + /** + * @desc Base CREATE request primitive for Location Policy resource + */ + template (value) RequestPrimitive m_createLocationPolicyBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createLocationPolicy" & f_rnd(1, 1000000), + resourceType := int10, + primitiveContent := {locationPolicy_optional := m_contentCreateLocationPolicyBase} + }; + template (value) RequestPrimitive m_createLocationPolicy(in template (value) LocationSource p_locationSource, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.Duration p_locationUpdatePeriod, in template (omit) NodeID p_locationTargetID, in template (omit) XSD.AnyURI p_locationServerAddress) modifies m_create := { requestIdentifier := testcasename() & "-m_createLocationPolicy" & f_rnd(1, 1000000), //the requestIdentifier is supposed to be set similar as "C190XX7T/001" by prepending the AE-ID-Stem and slash(‘/’) in front of it @@ -779,6 +918,33 @@ module OneM2M_Templates { primitiveContent := {semanticDescriptor_optional := p_semanticDescriptor} }; + /** + * @desc Base CREATE request primitive for Stats Config resource + */ + template (value) RequestPrimitive m_createStatsConfigBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createStatsConfig" & f_rnd(1, 1000000), + resourceType := int22, + primitiveContent := {statsConfig_optional := m_contentCreateStatConfigBase} + }; + + /** + * @desc Base CREATE request primitive for Stats Config resource + */ + template (value) RequestPrimitive m_createStatsCollectBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createStatsCollect" & f_rnd(1, 1000000), + resourceType := int21, + primitiveContent := {statsCollect_optional := m_contentCreateStatCollectBase} + }; + + /** + * @desc Base CREATE request primitive for M2mServiceSubscriptionProfile resource + */ + template (value) RequestPrimitive m_createM2mServiceSubscriptionProfileBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createM2mServiceSubscriptionProfile" & f_rnd(1, 1000000), + resourceType := int11, + primitiveContent := {m2mServiceSubscriptionProfile_optional := m_contentCreatem2mServiceSubscriptionProfileBase} + }; + }//end group Create group Delete { @@ -1168,6 +1334,31 @@ module OneM2M_Templates { description := omit//O }; + /** + * @desc Base primitiveContent for CREATE operation for MgmtCmd resource + * @param p_name Resource name + * @param p_accessControlPolicyIds ACP IDs for the AE + */ + template (value) MgmtResource_optional m_contentCreateMgmtCmd (in template (omit) AcpType p_accessControlPolicyIds := omit, in template (omit) XSD.String p_name := c_defaultMgmtCmdResourceName) := { + + resourceName := p_name,//O + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + accessControlPolicyIDs := p_accessControlPolicyIds,//O + expirationTime := omit,//O + dynamicAuthorizationConsultationIDs := omit, //O + announceTo := omit,//O + announcedAttribute := omit,//O + mgmtDefinition := omit,//O + objectIDs := omit,//O + objectPaths := omit,//O + description := omit//O + }; + /** * @desc Base reception template of primitiveContent for CREATE operation for MgmtObjAnnc resource */ @@ -1441,6 +1632,36 @@ module OneM2M_Templates { choice := omit//NP }; + /** + * @desc Base primitiveContent for CREATE operation for Container resource + * @param p_name Resource name + */ + template (value) RemoteCSE_optional m_contentCreateRemoteCSE (in template (omit) XSD.String p_name := c_defaultRemoteCSEResourceName, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.AnyURI p_cSEBase := PX_CSE1_ID, in template (omit) XSD.ID p_cSE_ID := PX_CSE_ID):= { + resourceName := p_name,//O + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + accessControlPolicyIDs := p_accessControlPolicyIds,//O + expirationTime := omit,//O + dynamicAuthorizationConsultationIDs := omit, + announceTo := omit,//O + announcedAttribute := omit,//O + cseType := omit,//O + pointOfAccess := omit,//O + cSEBase := "/" & p_cSEBase,//M + cSE_ID := "/" & p_cSE_ID,//M + m2M_Ext_ID := omit,//O + trigger_Recipient_ID := omit,//O + requestReachability := true,//M + nodeLink := omit,//O + e2eSecInfo := omit,//O + triggerReferenceNumber := omit,//O + choice := omit//O + }; + /** * @desc Base reception template of primitiveContent for CREATE operation for ContainerAnnc resource */ @@ -1492,6 +1713,29 @@ module OneM2M_Templates { }; + template (value) LocationPolicy_optional m_contentCreateLocationPolicyBase := { + resourceName := c_defaultLocationPolicyResourceName, //O + resourceType := omit, //NP + resourceID := omit, //NP + parentID := omit, //NP + creationTime := omit, //NP + lastModifiedTime := omit, //NP + labels := PX_LABELS,//O + accessControlPolicyIDs := omit, //O + expirationTime := omit, //O + dynamicAuthorizationConsultationIDs := omit, //O + announceTo := omit, //O + announcedAttribute := omit, //O + locationSource := omit, //M + locationUpdatePeriod := omit, //O + locationTargetID := omit, //O + locationServer := omit,//O + locationContainerID := omit, //NP + locationContainerName := PX_LOCATION_CONTAINER_NAME,//O + locationStatus := omit, //NP + choice := omit //NP + }; + /** * @desc Base reception template of primitiveContent for CREATE operation for LocationPolicyAnnc resource */ @@ -1569,6 +1813,90 @@ module OneM2M_Templates { ontologyRef := p_ontologyRef } + /** + * @desc Base primitiveContent for CREATE operation for StatConfig resource + * @param p_primitiveContent Content for the StatConfig + */ + template StatsConfig_optional m_contentCreateStatConfigBase := { + resourceName := c_defaultStatsConfigResourceName, //O + resourceType := omit, //NP + resourceID := omit, //NP + parentID := omit, //NP + creationTime := omit, //NP + lastModifiedTime := omit, //NP + labels := PX_LABELS,//O + accessControlPolicyIDs := omit, //O + expirationTime := omit, //O + dynamicAuthorizationConsultationIDs := omit, //O + creator := omit, + choice := omit //NP + }; + + /** + * @desc Base primitiveContent for CREATE operation for StatCollect resource + * @param p_primitiveContent Content for the StatCollect + */ + template StatsCollect_optional m_contentCreateStatCollectBase := { + resourceName := c_defaultStatsCollectResourceName, //O + resourceType := omit, //NP + resourceID := omit, //NP + parentID := omit, //NP + creationTime := omit, //NP + lastModifiedTime := omit, //NP + labels := PX_LABELS,//O + accessControlPolicyIDs := omit, //O + expirationTime := omit, //O + dynamicAuthorizationConsultationIDs := omit, //O + creator := omit, + statsCollectID := omit, + collectingEntityID := omit, + collectedEntityID := omit, + statsRuleStatus := omit, + statModel := omit, + collectPeriod := omit, + eventID := omit, + choice := omit //NP + }; + + /** + * @desc Base primitiveContent for CREATE operation for M2mServiceSubscriptionProfile resource + * @param p_primitiveContent Content for the M2mServiceSubscriptionProfile + */ + template M2mServiceSubscriptionProfile_optional m_contentCreatem2mServiceSubscriptionProfileBase := { + resourceName := c_defaultm2mServiceSubscriptionProfileResourceName, //O + resourceType := omit, //NP + resourceID := omit, //NP + parentID := omit, //NP + creationTime := omit, //NP + lastModifiedTime := omit, //NP + labels := PX_LABELS,//O + accessControlPolicyIDs := omit, //O + expirationTime := omit, //O + dynamicAuthorizationConsultationIDs := omit, //O + choice := omit //NP + }; + + /** + * @desc Base primitiveContent for CREATE operation for ServiceSubscribedAppRule_optional resource + * @param p_primitiveContent Content for the ServiceSubscribedAppRule_optional + */ + template ServiceSubscribedAppRule_optional m_contentCreateServiceSubscribedAppRuleBase := { + resourceName := c_defaultServiceSubscribedAppRuleResourceName, //O + resourceType := omit, //NP + resourceID := omit, //NP + parentID := omit, //NP + creationTime := omit, //NP + lastModifiedTime := omit, //NP + labels := PX_LABELS,//O + accessControlPolicyIDs := omit, //O + expirationTime := omit, //O + dynamicAuthorizationConsultationIDs := omit, //O + applicableCredIDs := omit, + allowedApp_IDs := omit, + allowedAEs := omit, + allowedRole_IDs := omit, + choice := omit //NP + }; }//end group ContentCreate group ContentUpdate { @@ -2179,6 +2507,58 @@ module OneM2M_Templates { expirationTime := *//M } + template RemoteCSE_optional m_contentRemoteCSE_allOmit := { + resourceName := omit,//M + resourceType := omit,//M + resourceID := omit,//M + parentID := omit,//M + creationTime := omit,//M + lastModifiedTime := omit,//M + labels := omit,//O + accessControlPolicyIDs := omit,//O + expirationTime := omit,//M + dynamicAuthorizationConsultationIDs := omit,//O + announceTo := omit,//O + announcedAttribute := omit,//O + cseType := omit,//O + pointOfAccess := omit,//O + cSEBase := omit,//M + cSE_ID := omit,//M + m2M_Ext_ID := omit,//O + trigger_Recipient_ID := omit,//O + requestReachability := omit,//M + nodeLink := omit,//O + e2eSecInfo := omit,//O + triggerReferenceNumber := omit,//O + choice := omit//O + }; + + template RemoteCSE_optional mw_contentRemoteCSEBase := { + resourceName := ?,//M + resourceType := ?,//M + resourceID := ?,//M + parentID := ?,//M + creationTime := ?,//M + lastModifiedTime := ?,//M + labels := *,//O + accessControlPolicyIDs := *,//O + expirationTime := ?,//M + dynamicAuthorizationConsultationIDs := *,//O + announceTo := *,//O + announcedAttribute := *,//O + cseType := *,//O + pointOfAccess := *,//O + cSEBase := ?,//M + cSE_ID := ?,//M + m2M_Ext_ID := *,//O + trigger_Recipient_ID := *,//O + requestReachability := ?,//M + nodeLink := *,//O + e2eSecInfo := *,//O + triggerReferenceNumber := *,//O + choice := *//O + }; + template Schedule_optional mw_contentScheduleBase := { resourceName := ?,//M resourceType := ?,//M @@ -2818,6 +3198,21 @@ module OneM2M_Templates { tokenRequestInformation := * }; + template ResponsePrimitive mw_responseDiscovery := { + responseStatusCode := int2000, + requestIdentifier := ?, + primitiveContent := {uRIList := ?}, + to_ := *, + from_ := *, + originatingTimestamp := *, + resultExpirationTimestamp := *, + eventCategory := *, + contentStatus := *, + contentOffset := *, + assignedTokenIdentifiers := *, + tokenRequestInformation := * + }; + template ResponsePrimitive m_responseNotification(ResponseStatusCode p_statusCode, in template(omit) PrimitiveContent p_notification := omit) := { responseStatusCode := p_statusCode, requestIdentifier := testcasename() & "-m_responseNotification" & f_rnd(1, 1000000), diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn index c0abf03c7dcca33dad452d4771dc8ee2fb49ff66..6ad683dc20188ee6d4f23874cd557937748daf70 100644 --- a/LibOneM2M/OneM2M_TestSystem.ttcn +++ b/LibOneM2M/OneM2M_TestSystem.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_TestSystem.ttcn $ - * $Id: OneM2M_TestSystem.ttcn 298 2017-06-14 07:11:13Z reinaortega $ + * $Id: OneM2M_TestSystem.ttcn 306 2017-06-20 16:19:04Z reinaortega $ * @desc Test System module for oneM2M * */ @@ -42,6 +42,7 @@ module OneM2M_TestSystem { //global variables var AE_optional vc_aeAux;//TODO To be removed + var RemoteCSE_optional vc_remoteCSEAux;//TODO To be removed var AccessControlPolicy_optional vc_acpAux; var integer vc_acpAuxIndex := -1; diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn index 33c1d9e3c27a79e19f9e5ce18bcc8d06242124f9..8b88d045c250d15ab8c9ee6af45dde950bc4c703 100644 --- a/LibOneM2M/OneM2M_Types.ttcn +++ b/LibOneM2M/OneM2M_Types.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Types.ttcn $ - * $Id: OneM2M_Types.ttcn 298 2017-06-14 07:11:13Z reinaortega $ + * $Id: OneM2M_Types.ttcn 306 2017-06-20 16:19:04Z reinaortega $ * @desc OneM2M data types module * */ @@ -1642,8 +1642,12 @@ type union PrimitiveContent { Node_optional node_optional, NodeAnnc_optional nodeAnnc_optional, PollingChannel_optional pollingChannel_optional, + RemoteCSE_optional remoteCSE_optional, Schedule_optional schedule_optional, ScheduleAnnc_optional scheduleAnnc_optional, + StatsConfig_optional statsConfig_optional, + StatsCollect_optional statsCollect_optional, + M2mServiceSubscriptionProfile_optional m2mServiceSubscriptionProfile_optional, ServiceSubscribedAppRule_optional serviceSubscribedAppRule_optional, Subscription_optional subscription_optional, SemanticDescriptor_optional semanticDescriptor_optional, @@ -7324,6 +7328,72 @@ with { variant (resourceName) "attribute"; }; +type record RemoteCSE_optional +{ + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + Labels labels optional, + AcpType accessControlPolicyIDs optional, + Timestamp expirationTime optional, + ListOfURIs dynamicAuthorizationConsultationIDs optional, + ListOfURIs announceTo optional, + record length(1 .. infinity) of XSD.NCName announcedAttribute optional, + CseTypeID cseType optional, + PoaList pointOfAccess optional, + XSD.AnyURI cSEBase optional, + XSD.ID cSE_ID optional, + ExternalID m2M_Ext_ID optional, + TriggerRecipientID trigger_Recipient_ID optional, + XSD.Boolean requestReachability optional, + XSD.AnyURI nodeLink optional, + E2eSecInfo e2eSecInfo optional, + XSD.UnsignedInt triggerReferenceNumber optional, + union { + record length(1 .. infinity) of ChildResourceRef childResource_list, + record length(1 .. infinity) of union { + NodeAnnc nodeAnnc, + Container container, + ContainerAnnc containerAnnc, + Group group_, + GroupAnnc groupAnnc, + AccessControlPolicy accessControlPolicy, + AccessControlPolicyAnnc accessControlPolicyAnnc, + Subscription subscription, + PollingChannel pollingChannel, + Schedule schedule, + TimeSeries timeSeries, + TimeSeriesAnnc timeSeriesAnnc, + LocationPolicyAnnc locationPolicyAnnc, + AEAnnc aEAnnc, + Sg_flexContainerResource_group sg_flexContainerResource, + Sg_announcedFlexContainerResource_group sg_announcedFlexContainerResource + } choice_list + } choice optional +} +with { + variant "name as uncapitalized"; + variant "element"; + variant (resourceName) "attribute"; + variant (announcedAttribute) "list"; + variant (cSEBase) "name as capitalized"; + variant (cSE_ID) "name as 'CSE-ID'"; + variant (m2M_Ext_ID) "name as 'M2M-Ext-ID'"; + variant (trigger_Recipient_ID) "name as 'Trigger-Recipient-ID'"; + //variant (requestReachability) "text 'true' as '1'"; + //variant (requestReachability) "text 'false' as '0'"; + variant (choice) "untagged"; + variant (choice.childResource_list) "untagged"; + variant (choice.childResource_list[-]) "name as 'childResource'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; + variant (choice.choice_list[-].group_) "name as 'group'"; + variant (choice.choice_list[-].aEAnnc) "name as capitalized"; +}; + type record Schedule_optional { ResourceName resourceName optional, @@ -7495,6 +7565,105 @@ with { variant (choice.choice_list[-]) "untagged"; }; +type record StatsConfig_optional +{ + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + Labels labels optional, + AcpType accessControlPolicyIDs optional, + Timestamp expirationTime optional, + ListOfURIs dynamicAuthorizationConsultationIDs optional, + XSD.ID creator optional, + union { + record length(1 .. infinity) of ChildResourceRef childResource_list, + record length(1 .. infinity) of union { + EventConfig eventConfig, + Subscription subscription + } choice_list + } choice optional +} +with { + variant "name as uncapitalized"; + variant "element"; + variant (resourceName) "attribute"; + variant (choice) "untagged"; + variant (choice.childResource_list) "untagged"; + variant (choice.childResource_list[-]) "name as 'childResource'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; +}; + +type record StatsCollect_optional +{ + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + Labels labels optional, + AcpType accessControlPolicyIDs optional, + Timestamp expirationTime optional, + ListOfURIs dynamicAuthorizationConsultationIDs optional, + XSD.ID creator optional, + XSD.String statsCollectID optional, + XSD.ID collectingEntityID optional, + XSD.ID collectedEntityID optional, + StatsRuleStatusType statsRuleStatus optional, + StatModelType statModel optional, + ScheduleEntries collectPeriod optional, + XSD.String eventID optional, + union { + record length(1 .. infinity) of ChildResourceRef childResource_list, + record length(1 .. infinity) of Subscription subscription_list + } choice optional +} +with { + variant "name as uncapitalized"; + variant "element"; + variant (resourceName) "attribute"; + variant (choice) "untagged"; + variant (choice.childResource_list) "untagged"; + variant (choice.childResource_list[-]) "name as 'childResource'"; + variant (choice.subscription_list) "untagged"; + variant (choice.subscription_list[-]) "name as 'subscription'"; +}; + +type record M2mServiceSubscriptionProfile_optional +{ + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + Labels labels optional, + AcpType accessControlPolicyIDs optional, + Timestamp expirationTime optional, + ListOfURIs dynamicAuthorizationConsultationIDs optional, + union { + record length(1 .. infinity) of ChildResourceRef childResource_list, + record length(1 .. infinity) of union { + ServiceSubscribedNode serviceSubscribedNode, + Subscription subscription + } choice_list + } choice optional +} +with { + variant "name as uncapitalized"; + variant "element"; + variant (resourceName) "attribute"; + variant (choice) "untagged"; + variant (choice.childResource_list) "untagged"; + variant (choice.childResource_list[-]) "name as 'childResource'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; +}; + }//end group OptionalResourceTypes diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn index c64e3cf1cbe3ccbfecc2e78208599fa253409310..a0e809341d6f345d4fa297bdbc2da80903018e9e 100644 --- a/LibOneM2M/OneM2M_TypesAndValues.ttcn +++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn @@ -6,8 +6,8 @@ * All rights reserved. * * @author oneM2M - * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_TypesAndValues.ttcn $ - * $Id: OneM2M_TypesAndValues.ttcn 287 2017-05-19 06:59:12Z reinaortega $ + * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_TypesAndValues.ttcn $ + * $Id: OneM2M_TypesAndValues.ttcn 306 2017-06-20 16:19:04Z reinaortega $ * @desc Module containing types and values for oneM2M * */ @@ -25,10 +25,17 @@ module OneM2M_TypesAndValues { const XSD.String c_defaultSubscriptionResourceName := "MySubscriptionResource"; const XSD.String c_defaultContentInstanceResourceName := "MyContentInstanceResource"; const XSD.String c_defaultContainerResourceName := "MyContainerResource"; + const XSD.String c_defaultRemoteCSEResourceName := "MyRemoteCSEResource"; const XSD.String c_defaultMgmtObjResourceName := "MyMgmtObjResource"; + const XSD.String c_defaultMgmtCmdResourceName := "MyMgmtCmdResource"; const XSD.String c_defaultAeResourceName := "MyAeResource"; const XSD.String c_defaultLocationPolicyResourceName := "MyLocationPolicyResource"; const XSD.String c_defaultNodeResourceName := "MyNodeResource"; + const XSD.String c_defaultNodeID := "MyNodeId"; + const XSD.String c_defaultStatsConfigResourceName := "MyStatsConfigResource"; + const XSD.String c_defaultStatsCollectResourceName := "MyStatsCollectResource"; + const XSD.String c_defaultm2mServiceSubscriptionProfileResourceName := "Mym2mServiceSubscriptionProfileResource"; + const XSD.String c_defaultServiceSubscribedAppRuleResourceName := "MyServiceSubscribedAppRuleResource"; const XSD.ID c_aeAuxName := "MyAe"; const XSD.String c_acpAuxName := "MyAcp"; const charstring c_invalid_location_update_period := "-PT30M10S" ;//duration set to invalid value (minus value) @@ -107,7 +114,8 @@ module OneM2M_TypesAndValues { type enumerated Configurations { e_cf01, e_cf02, - e_cf03 + e_cf03, + e_cf04 }; diff --git a/OneM2M_TestControl.ttcn b/OneM2M_TestControl.ttcn index c8cd60067cb33f1eabbc6328aca1521d026553de..0b2cad97effd0804d9ac0df12eb66eeea7a45e12 100644 --- a/OneM2M_TestControl.ttcn +++ b/OneM2M_TestControl.ttcn @@ -6,8 +6,8 @@ * All rights reserved. * * @author oneM2M - * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_TestControl.ttcn $ - * $Id: OneM2M_TestControl.ttcn 254 2017-05-02 15:55:08Z reinaortega $ + * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_TestControl.ttcn $ + * $Id: OneM2M_TestControl.ttcn 299 2017-06-20 12:36:36Z reinaortega $ * @desc Test control module for oneM2M * */ @@ -243,6 +243,12 @@ module OneM2M_TestControl { execute(TC_CSE_GMG_BV_022_02()); execute(TC_CSE_GMG_BV_022_03()); execute(TC_CSE_GMG_BV_022_04()); + execute(TC_CSE_DIS_BV_001()); + execute(TC_CSE_DIS_BV_003()); + execute(TC_CSE_DIS_BV_004()); + execute(TC_CSE_DIS_BO_005()); + execute(TC_CSE_DIS_BO_006()); + execute(TC_CSE_DIS_BI_007()); execute(TC_CSE_SUB_BV_001_01()); execute(TC_CSE_SUB_BV_001_02()); execute(TC_CSE_SUB_BV_002()); diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index e73ab150e9699b197d8e165f4bb81283aea1100c..bf469c2fd971778d3b44b7c1cbccc9b2eefc0b8a 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $ - * $Id: OneM2M_Testcases.ttcn 298 2017-06-14 07:11:13Z reinaortega $ + * $Id: OneM2M_Testcases.ttcn 306 2017-06-20 16:19:04Z reinaortega $ * @desc Module containing test cases for oneM2M * */ @@ -517,7 +517,190 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); - }//end f_CSE_DMR_CRE_BV_012 + + testcase TC_CSE_REG_CRE_BV_011() runs on CseTester system CseSystem { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var RequestPrimitive v_createRequestPrimitive := m_createRemoteCSEBase; + var ResourceType v_resourceType := int16; //remoteCSE + + // Test control + + // Test component configuration + f_cf04Up(); + + // Test adapter configuration + + // Preamble + + // Test Body + v_request := f_getCreateRequestPrimitive(v_resourceType, v_createRequestPrimitive, -1); + + mccPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Resource type remoteCSE created successfully"); + } + [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while creating resource type remoteCSE"); + } + [] tc_ac.timeout { + setverdict(fail, testcasename() & ": No answer while creating resource type remoteCSE"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf04Down(); + + }//end TC_CSE_REG_CRE_BV_011 + + testcase TC_CSE_REG_CRE_BV_012() runs on CseTester system CseSystem { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var RequestPrimitive v_createRequestPrimitive := m_createRemoteCSEBase; + var ResourceType v_resourceType := int16; //remoteCSE + + // Test control + + // Test component configuration + f_cf04Up(); + + // Test adapter configuration + + // Preamble + + // Test Body + v_request := f_getCreateRequestPrimitive(v_resourceType, v_createRequestPrimitive, -1); + + mccPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Resource type remoteCSE created successfully"); + } + [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while creating resource type remoteCSE"); + } + [] tc_ac.timeout { + setverdict(fail, testcasename() & ": No answer while creating resource type remoteCSE"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf04Down(); + + }//end TC_CSE_REG_CRE_BV_012 + + group g_CSE_REG_CRE_BV_015{ + + testcase TC_CSE_REG_CRE_BV_015_01() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createRemoteCSEBase; + const AttributeAux c_optionalAttribute := {"labels", omit}; + + v_createRequest.primitiveContent.remoteCSE_optional.labels := {"MyLabel"}; + + f_CSE_REG_CRE_BV_015(v_createRequest, c_optionalAttribute); + + } + + testcase TC_CSE_REG_CRE_BV_015_02() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createRemoteCSEBase; + const AttributeAux c_optionalAttribute := {"cseType", omit}; + + v_createRequest.primitiveContent.remoteCSE_optional.cseType := int1; + + f_CSE_REG_CRE_BV_015(v_createRequest, c_optionalAttribute); + + } + + testcase TC_CSE_REG_CRE_BV_015_03() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createRemoteCSEBase; + const AttributeAux c_optionalAttribute := {"pointOfAccess", omit}; + + v_createRequest.primitiveContent.remoteCSE_optional.pointOfAccess := {"http://" & PX_CSE1_ADDRESS & "/"}; + + f_CSE_REG_CRE_BV_015(v_createRequest, c_optionalAttribute); + + } + + testcase TC_CSE_REG_CRE_BV_015_04() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createRemoteCSEBase; + const AttributeAux c_optionalAttribute := {"nodeLink", omit}; + + v_createRequest.primitiveContent.remoteCSE_optional.nodeLink := c_defaultNodeID; + + f_CSE_REG_CRE_BV_015(v_createRequest, c_optionalAttribute); + + } + + function f_CSE_REG_CRE_BV_015(template RequestPrimitive p_requestPrimitive, in AttributeAux p_optionalAttribute) runs on CseTester { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var ResourceType v_resourceType := int16; //remoteCSE + + // Test control + + // Test component configuration + f_cf04Up(); + + // Test adapter configuration + + // Preamble + + // Test Body + v_request := f_getCreateRequestPrimitive(v_resourceType, p_requestPrimitive, -1); + + mccPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mccPort.receive(mw_response(mw_responsePrimitiveOK(f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Accepted creation for resource type remoteCSE containing attribute " & p_optionalAttribute.name); + } + [] mccPort.receive(mw_response(mw_responsePrimitiveOK())) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Accepted creation for resource type remoteCSE without containing attribute " & p_optionalAttribute.name); + } + [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Rejected creation of resource type remoteCSE containing attribute" & p_optionalAttribute.name); + } + [] tc_ac.timeout { + setverdict(fail, testcasename() & ": No answer while creating resource type remoteCSE"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf04Down(); + + }//end f_CSE_REG_CRE_BV_015 + }// end group g_CSE_REG_CRE_BV_015 + + } } //end group Create @@ -1500,188 +1683,402 @@ module OneM2M_Testcases { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; - var integer v_sizeResourceTypeList; - var integer i; - var RequestPrimitiveMatrix v_requestPrimitivematrix; var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;//TODO useless but need to be initialized see if we can remove it - v_requestPrimitivematrix := { - {}, - {valueof(m_createAeAux(omit,omit))}, - {valueof(m_createContainerBase)} + v_createRequest.primitiveContent.container_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int3, v_createRequest, -, v_notifyHandler); //Container + log(v_responsePrimitive); + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.container_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } } - v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix); - v_createRequest.primitiveContent.container_optional.resourceName := omit; + } + + testcase TC_CSE_DMR_CRE_BV_001_02() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createContainerBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; - for (i := 0; i<v_sizeResourceTypeList; i := i+1){ - v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int3, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler); + v_createRequest.primitiveContent.group_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int3, v_createRequest, m_createAeAux(omit,omit),v_notifyHandler);//Container log(v_responsePrimitive); if(getverdict == pass){ - if(not ispresent(v_responsePrimitive.primitiveContent.container_optional.resourceName)){ + if(not ispresent(v_responsePrimitive.primitiveContent.group_optional.resourceName)){ setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } } + } + + testcase TC_CSE_DMR_CRE_BV_001_03() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createContainerBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.accessControlPolicy_optional.resourceName := omit; + + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int3, v_createRequest, m_createContainerBase, v_notifyHandler);//Container + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } + } - testcase TC_CSE_DMR_CRE_BV_001_02() runs on CseTester system CseSystem { + } + + testcase TC_CSE_DMR_CRE_BV_001_04() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createGroupBase; var ResponsePrimitive v_responsePrimitive; - var RequestPrimitiveMatrix v_requestPrimitivematrix; - var integer v_sizeResourceTypeList; - var integer i; var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; - //CSEBase int5, remoteCSE int16, AE int2 - v_requestPrimitivematrix := { - {}, - {valueof(m_createAeAux(omit,omit))} + v_createRequest.primitiveContent.accessControlPolicy_optional.resourceName := omit; + + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int9, v_createRequest, -, v_notifyHandler);//Group + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } } - v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix); - v_createRequest.primitiveContent.group_optional.resourceName := omit; + } - for (i := 0; i<v_sizeResourceTypeList; i := i+1){ - v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int9, v_createRequest, v_requestPrimitivematrix[i],v_notifyHandler); - log(v_responsePrimitive); + testcase TC_CSE_DMR_CRE_BV_001_05() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createGroupBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.accessControlPolicy_optional.resourceName := omit; + + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int9, v_createRequest, m_createAeAux(omit,omit), v_notifyHandler);//Group if(getverdict == pass){ - if(not ispresent(v_responsePrimitive.primitiveContent.group_optional.resourceName)){ + if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy_optional.resourceName)){ setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } } + } - } - testcase TC_CSE_DMR_CRE_BV_001_03() runs on CseTester system CseSystem { + testcase TC_CSE_DMR_CRE_BV_001_06() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createAcpBase; var ResponsePrimitive v_responsePrimitive; - var integer v_sizeResourceTypeList; - var integer i; - var RequestPrimitiveMatrix v_requestPrimitivematrix; var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; - //CSEBase int5, remoteCSE int16, AE int2 - v_requestPrimitivematrix := { - {}, - {valueof(m_createAeAux(omit,omit))} + v_createRequest.primitiveContent.accessControlPolicy_optional.resourceName := omit; + + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int1, v_createRequest, -, v_notifyHandler);//AccessControlPolicy + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } } - v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix); + + } + + testcase TC_CSE_DMR_CRE_BV_001_07() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createAcpBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; v_createRequest.primitiveContent.accessControlPolicy_optional.resourceName := omit; - for (i := 0; i<v_sizeResourceTypeList; i := i+1){ - v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int1, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//AccessControlPolicy + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int1, v_createRequest, m_createAeAux(omit,omit), v_notifyHandler);//AccessControlPolicy if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy_optional.resourceName)){ setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } } + } - } - testcase TC_CSE_DMR_CRE_BV_001_04() runs on CseTester system CseSystem { + testcase TC_CSE_DMR_CRE_BV_001_08() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createScheduleBase; var ResponsePrimitive v_responsePrimitive; - var integer v_sizeResourceTypeList; - var integer i; - var RequestPrimitiveMatrix v_requestPrimitivematrix; var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; -// CSEBase int5, remoteCSE int16, AE int2, subscription int23 - v_requestPrimitivematrix := { - {}, - {valueof(m_createAeAux(omit,omit))}, - {valueof(m_createSubscriptionBase)} + v_createRequest.primitiveContent.schedule_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int18, v_createRequest, -, v_notifyHandler);//Schedule + + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.schedule_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } - v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix); + } + + } + + testcase TC_CSE_DMR_CRE_BV_001_09() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createScheduleBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; v_createRequest.primitiveContent.schedule_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int18, v_createRequest, m_createAeAux(omit,omit), v_notifyHandler);//Schedule - for (i := 0; i<v_sizeResourceTypeList; i := i+1){ - v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int18, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//Schedule - if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.schedule_optional.resourceName)){ setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } } + } + + testcase TC_CSE_DMR_CRE_BV_001_10() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createScheduleBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.schedule_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int18, v_createRequest, m_createSubscriptionBase, v_notifyHandler);//Schedule + + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.schedule_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } + } - testcase TC_CSE_DMR_CRE_BV_001_05() runs on CseTester system CseSystem { + } + + testcase TC_CSE_DMR_CRE_BV_001_11() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createPollingChannelBase; var ResponsePrimitive v_responsePrimitive; - var integer v_sizeResourceTypeList; - var integer i; - var RequestPrimitiveMatrix v_requestPrimitivematrix; var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; - //remoteCSE int16, AE int2 - v_requestPrimitivematrix := { - {valueof(m_createAeAux(omit,omit))} - } - v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix); v_createRequest.primitiveContent.pollingChannel_optional.resourceName := omit; - for (i := 0; i<v_sizeResourceTypeList; i := i+1){ - v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int15, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//PollingChannel + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int15, v_createRequest, m_createAeAux(omit,omit), v_notifyHandler);//PollingChannel if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.pollingChannel_optional.resourceName)){ setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } } + + } + + testcase TC_CSE_DMR_CRE_BV_001_12() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createSubscriptionBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.subscription_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, -, v_notifyHandler);//Subscription + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } } + } - testcase TC_CSE_DMR_CRE_BV_001_06() runs on CseTester system CseSystem { + testcase TC_CSE_DMR_CRE_BV_001_13() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var ResponsePrimitive v_responsePrimitive; - var integer v_sizeResourceTypeList; - var integer i; - var RequestPrimitiveMatrix v_requestPrimitivematrix; var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; - //accessControlPolicy int1, CSEBase int5, remoteCSE int16, AE int2, container int, schedule int, locationPolicy int, delivery int, request int, group int, mgmtCmd int, - // node int, m2mServiceSubscriptionProfile int, statsConfig int, statsCollect int, serviceSubscribedAppRule int + v_createRequest.primitiveContent.subscription_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, m_createAeAux(omit,omit), v_notifyHandler);//Subscription + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } + } - // mgmtObj int, execInstance int, serviceSubscribedNode int, pollingChannelURI int (doesn't exist in Release2), eventConfig int, - v_requestPrimitivematrix := { - {}, - {valueof(m_createAeAux(omit,omit))}, - {valueof(m_createContainerBase)}, - {valueof(m_createAcpBase)}, - {valueof(m_createScheduleBase)}, - {valueof(m_createGroupBase)} - //{m_createLocationPolicy(int1,omit,omit,omit,omit)} - //{m_createServiceSubscribedAppRule()} //TODO set correct parameters } - v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix); + + testcase TC_CSE_DMR_CRE_BV_001_14() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createSubscriptionBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; v_createRequest.primitiveContent.subscription_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, m_createContainerBase, v_notifyHandler);//Subscription + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } + } - for (i := 0; i<v_sizeResourceTypeList; i := i+1){ - v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//Subscription + } + + testcase TC_CSE_DMR_CRE_BV_001_15() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createSubscriptionBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.subscription_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, m_createAcpBase, v_notifyHandler);//Subscription if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){ setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } } } + + testcase TC_CSE_DMR_CRE_BV_001_16() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createSubscriptionBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.subscription_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, m_createScheduleBase, v_notifyHandler);//Subscription + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } + } } - function f_CSE_DMR_CRE_BV_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in RequestPrimitiveList p_requestPrimitiveList, in CseTester p_notifyHandler) runs on CseTester return ResponsePrimitive { + testcase TC_CSE_DMR_CRE_BV_001_17() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createSubscriptionBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.subscription_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, m_createGroupBase, v_notifyHandler);//Subscription + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } + } + } + + testcase TC_CSE_DMR_CRE_BV_001_18() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createNodeBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.node_optional.resourceName := omit; + + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int14, v_createRequest, -, v_notifyHandler);//Node + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.node_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } + } + + } + + testcase TC_CSE_DMR_CRE_BV_001_19() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createMgmtCmdBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.mgmtResource_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int12, v_createRequest, -, v_notifyHandler);//Management Command + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.mgmtResource_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } + } + + } + + testcase TC_CSE_DMR_CRE_BV_001_20() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createLocationPolicyBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.locationPolicy_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int10, v_createRequest, -, v_notifyHandler);//Location Policy + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.locationPolicy_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } + } + + } + + testcase TC_CSE_DMR_CRE_BV_001_21() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createStatsConfigBase; + var ResponsePrimitive v_responsePrimitive; + var RequestPrimitiveMatrix v_requestPrimitivematrix; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.statsConfig_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int22, v_createRequest, -, v_notifyHandler);//Stats Config + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.statsConfig_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } + } + } + + testcase TC_CSE_DMR_CRE_BV_001_22() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createStatsCollectBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.statsCollect_optional.resourceName := omit; + + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int21, v_createRequest, -, v_notifyHandler);//Stats Collect + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.statsCollect_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } + } + + } + + testcase TC_CSE_DMR_CRE_BV_001_23() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createM2mServiceSubscriptionProfileBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.m2mServiceSubscriptionProfile_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int11, v_createRequest, -, v_notifyHandler);//Subscription Profile + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.m2mServiceSubscriptionProfile_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } + } + + } + + testcase TC_CSE_DMR_CRE_BV_001_24() runs on CseTester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createServiceSubscribedAppRuleBase; + var ResponsePrimitive v_responsePrimitive; + var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive; + + v_createRequest.primitiveContent.serviceSubscribedAppRule_optional.resourceName := omit; + v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int19, v_createRequest, -, v_notifyHandler);//Service Subscribed App + if(getverdict == pass){ + if(not ispresent(v_responsePrimitive.primitiveContent.serviceSubscribedAppRule_optional.resourceName)){ + setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); + } + } + + } + + function f_CSE_DMR_CRE_BV_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit, in CseTester p_notifyHandler) runs on CseTester return ResponsePrimitive { // Local variables var MsgIn v_response; var RequestPrimitive v_request; - var integer v_sizeResourceTypeList := lengthof(p_requestPrimitiveList); var integer i; var integer v_parentIndex := -1; var integer v_resourceIndex := -1; @@ -1697,13 +2094,13 @@ module OneM2M_Testcases { // Preamble - for (i := 0; i<v_sizeResourceTypeList; i := i+1){ - if(match(int23, p_requestPrimitiveList[i].resourceType)){ + if(ispresent(p_parentRequestPrimitive)) { + if(match(int23, p_parentRequestPrimitive.resourceType)){ v_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE2_ID_STEM, "MyAe2", v_poaList), -1); // AE2 is registred - p_requestPrimitiveList[i].primitiveContent.subscription_optional.notificationURI := {f_getResourceAddress(v_ae2Index)}; + p_parentRequestPrimitive.primitiveContent.subscription_optional.notificationURI := {f_getResourceAddress(v_ae2Index)}; p_notifyHandler.start(f_subscriptionVerificationHandler(f_getResourceAddress(v_parentIndex))); } - v_parentIndex := f_cse_createResource(p_requestPrimitiveList[i].resourceType, p_requestPrimitiveList[i], v_parentIndex); + v_parentIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_parentIndex); } // Test Body @@ -1723,10 +2120,8 @@ module OneM2M_Testcases { tc_ac.stop; setverdict(pass, testcasename() & ": Resource type " & int2str(enum2int(p_resourceType)) & " created successfully"); v_resourceIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, v_parentIndex); - if (v_sizeResourceTypeList == 0){ vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_resourceIndex}; } - } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource type " & int2str(enum2int(p_resourceType))); @@ -4793,6 +5188,16 @@ module OneM2M_Testcases { } + testcase TC_CSE_DMR_RET_BV_013_09() runs on CseTester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + + v_contentResponse.remoteCSE_optional := mw_contentRemoteCSEBase; + + f_CSE_DMR_RET_BV_013(int16, m_createRemoteCSEBase, v_contentResponse);//RemoteCSE + + } + testcase TC_CSE_DMR_RET_BV_013_11() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; @@ -4826,17 +5231,25 @@ module OneM2M_Testcases { // Test control // Test component configuration - f_cf01Up(); + f_cf02Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + if (p_resourceType!=int16){ //ResourceType != RemoteCSE + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource + } else { //ResourceType = RemoteCSE + + v_resourceIndex := f_cse_registerRemoteCse(p_requestPrimitive); + + } + // Test Body mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_aeIndex))));//from AE ID @@ -4863,7 +5276,7 @@ module OneM2M_Testcases { f_cse_postamble_deleteResources(); // Tear down - f_cf01Down(); + f_cf02Down(); }//end f_CSE_DMR_RET_BV_013 @@ -5018,6 +5431,16 @@ module OneM2M_Testcases { f_CSE_DMR_RET_BV_015(int9, m_createGroupBase, v_contentResponse);//Group } + testcase TC_CSE_DMR_RET_BV_015_09() runs on CseTester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + + v_contentResponse.remoteCSE_optional := m_contentRemoteCSE_allOmit; + v_contentResponse.remoteCSE_optional.parentID := ?; + + f_CSE_DMR_RET_BV_015(int16, m_createRemoteCSEBase, v_contentResponse);//RemoteCSE + } + testcase TC_CSE_DMR_RET_BV_015_11() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; @@ -5052,17 +5475,23 @@ module OneM2M_Testcases { // Test control // Test component configuration - f_cf01Up(); + f_cf02Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + if (p_resourceType!=int16){ //ResourceType != RemoteCSE + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource + } else { + v_resourceIndex := f_cse_registerRemoteCse(p_requestPrimitive); + } + // Test Body mcaPort.send(m_request(m_retrieveResourceAttributeToOption(f_getResourceAddress(v_resourceIndex) & v_attribute, f_getOriginator(v_aeIndex))));//from AE ID @@ -5089,7 +5518,7 @@ module OneM2M_Testcases { f_cse_postamble_deleteResources(); // Tear down - f_cf01Down(); + f_cf02Down(); }//end f_CSE_DMR_RET_BV_015 @@ -5138,6 +5567,16 @@ module OneM2M_Testcases { f_CSE_DMR_RET_BV_016(int9, m_createGroupBase, v_contentResponse);//Group } + testcase TC_CSE_DMR_RET_BV_016_09() runs on CseTester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + + v_contentResponse.remoteCSE_optional := m_contentRemoteCSE_allOmit; + v_contentResponse.remoteCSE_optional.parentID := ?; + + f_CSE_DMR_RET_BV_016(int16, m_createRemoteCSEBase, v_contentResponse);//RemoteCSE + } + testcase TC_CSE_DMR_RET_BV_016_11() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; @@ -5172,18 +5611,23 @@ module OneM2M_Testcases { // Test control // Test component configuration - f_cf01Up(); + f_cf02Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + if (p_resourceType!=int16){ //ResourceType != RemoteCSE + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource - // Test Body + }else{ + v_resourceIndex := f_cse_registerRemoteCse(p_requestPrimitive); + } + mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex) , {"pi"}, f_getOriginator(v_aeIndex))));//from AE ID tc_ac.start; @@ -5209,7 +5653,7 @@ module OneM2M_Testcases { f_cse_postamble_deleteResources(); // Tear down - f_cf01Down(); + f_cf02Down(); }//end f_CSE_DMR_RET_BV_016 @@ -5262,6 +5706,17 @@ module OneM2M_Testcases { f_CSE_DMR_RET_BV_017(int9, m_createGroupBase, v_contentResponse);//Group } + testcase TC_CSE_DMR_RET_BV_017_09() runs on CseTester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + + v_contentResponse.remoteCSE_optional := m_contentRemoteCSE_allOmit; + v_contentResponse.remoteCSE_optional.parentID := ?; + v_contentResponse.remoteCSE_optional.creationTime := ?; + + f_CSE_DMR_RET_BV_017(int16, m_createRemoteCSEBase, v_contentResponse);//RemoteCSE + } + testcase TC_CSE_DMR_RET_BV_017_11() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; @@ -5298,18 +5753,23 @@ module OneM2M_Testcases { // Test control // Test component configuration - f_cf01Up(); + f_cf02Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + if (p_resourceType!=int16){ //ResourceType != RemoteCSE + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource - // Test Body + }else{ + v_resourceIndex := f_cse_registerRemoteCse(p_requestPrimitive); + } + mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex) , {"pi", "ct"}, f_getOriginator(v_aeIndex))));//from AE ID @@ -5336,7 +5796,7 @@ module OneM2M_Testcases { f_cse_postamble_deleteResources(); // Tear down - f_cf01Down(); + f_cf02Down(); }//end f_CSE_DMR_RET_BV_017 @@ -5369,6 +5829,12 @@ module OneM2M_Testcases { f_CSE_DMR_RET_BO_018(int9, m_createGroupBase);//Group } + testcase TC_CSE_DMR_RET_BO_018_09() runs on CseTester system CseSystem { + // Local variables + + f_CSE_DMR_RET_BO_018(int16, m_createRemoteCSEBase);//RemoteCSE + } + testcase TC_CSE_DMR_RET_BO_018_11() runs on CseTester system CseSystem { // Local variables @@ -5395,18 +5861,23 @@ module OneM2M_Testcases { // Test control // Test component configuration - f_cf01Up(); + f_cf02Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + if (p_resourceType!=int16){ //ResourceType != RemoteCSE + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource - // Test Body + }else{ + v_resourceIndex := f_cse_registerRemoteCse(p_requestPrimitive); + } + mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex), {"lbl"}, f_getOriginator(v_aeIndex))));//from AE ID @@ -5414,6 +5885,7 @@ module OneM2M_Testcases { alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; + setverdict(pass, testcasename() & ": Retrieved attribute does not exist"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; @@ -5432,7 +5904,7 @@ module OneM2M_Testcases { f_cse_postamble_deleteResources(); // Tear down - f_cf01Down(); + f_cf02Down(); }//end f_CSE_DMR_RET_BO_018 @@ -5464,6 +5936,12 @@ module OneM2M_Testcases { f_CSE_DMR_RET_BO_019(int9, m_createGroupBase);//Group } + testcase TC_CSE_DMR_RET_BO_019_09() runs on CseTester system CseSystem { + // Local variables + + f_CSE_DMR_RET_BO_019(int16, m_createRemoteCSEBase);//RemoteCSE + } + testcase TC_CSE_DMR_RET_BO_019_11() runs on CseTester system CseSystem { // Local variables @@ -5490,18 +5968,23 @@ module OneM2M_Testcases { // Test control // Test component configuration - f_cf01Up(); + f_cf02Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + if (p_resourceType!=int16){ //ResourceType != RemoteCSE + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource - // Test Body + }else{ + v_resourceIndex := f_cse_registerRemoteCse(p_requestPrimitive); + } + mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex), {"lbl", "at"}, f_getOriginator(v_aeIndex))));//from AE ID @@ -5509,6 +5992,7 @@ module OneM2M_Testcases { alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; + setverdict(pass, testcasename() & ": Retrieved attribute does not exist"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; @@ -5527,7 +6011,7 @@ module OneM2M_Testcases { f_cse_postamble_deleteResources(); // Tear down - f_cf01Down(); + f_cf02Down(); }//end f_CSE_DMR_RET_BO_019 @@ -10644,6 +11128,347 @@ module OneM2M_Testcases { } // end group Group_Managment + group Discovery { + + group g_CSE_DIS_BV_001{ + testcase TC_CSE_DIS_BV_001() runs on CseTester system CseSystem { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + var integer v_childResourceIndex := -1; + const ResourceType c_containerResourceType := int3; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; + + v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); + v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1)); + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responseDiscovery)){ + tc_ac.stop; + setverdict(pass, testcasename() & ": URI List Representation available"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong responseStatusCode while retrieving resource"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, testcasename() & ": No answer while retrieving resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + } // end TC_CSE_DIS_BV_001 + + } //end group g_CSE_DIS_BV_001 + + group g_CSE_DIS_BV_003 + { + testcase TC_CSE_DIS_BV_003() runs on CseTester system CseSystem { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + var integer v_childResourceIndex := -1; + const ResourceType c_containerResourceType := int3; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; + + v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); + v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1)); + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value v_response { + tc_ac.stop; + if(sizeof(v_response.primitive.responsePrimitive.primitiveContent.uRIList) == 0){ + setverdict(pass, testcasename() & ": No Content is present"); + } + else + { + setverdict(fail, testcasename() & ": Wrong content available in URIList element"); + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong responseStatusCode while retrieving resource"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, testcasename() & ": No answer while retrieving resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + } // end TC_CSE_DIS_BV_003 + } //end group g_CSE_DIS_BV_003 + + group g_CSE_DIS_BV_004 + { + testcase TC_CSE_DIS_BV_004() runs on CseTester system CseSystem { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + var integer v_childResourceIndex := -1; + const ResourceType c_containerResourceType := int3; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; + + v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); + v_request := valueof(m_retrieveResourceDiscResTypeFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int2, int1)); + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value v_response { + tc_ac.stop; + if (f_isNonHierarchical(v_response.primitive.responsePrimitive.primitiveContent.uRIList[0])) { + setverdict(pass, testcasename() & ": Non-hierarchical address form present in URIList element"); + } else { + setverdict(fail, testcasename() & ": Non-hierarchical address form absent in URIList representation"); + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong responseStatusCode while retrieving resource"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, testcasename() & ": No answer while retrieving resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + } // end TC_CSE_DIS_BV_004 + + } //end group g_CSE_DIS_BV_004 + + group g_CSE_DIS_BO_005{ + testcase TC_CSE_DIS_BO_005() runs on CseTester system CseSystem { + // Local variables + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + var integer v_childResourceIndex := -1; + var integer v_acpAuxIndex := -1; + const ResourceType c_containerResourceType := int3; + + // Test control + if(not(PICS_ACP_SUPPORT)) { + log(testcasename() & ":AccessControlPolicy support is required for executing this test case"); + stop; + } + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_acpAuxIndex := f_cse_preamble_createAcpAux(-, int31);//c_CRUDN) + + v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)});//AE1 is registred; + + v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); + v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1)); + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) { + tc_ac.stop; + setverdict(pass, testcasename() & ": Access denied to discovery operation for resource " & f_getResourceAddress(v_resourceIndex)); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong response status code while discovering " & f_getResourceAddress(v_resourceIndex) & " without having privileges"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Discovering " & f_getResourceAddress(v_resourceIndex) & " without having privileges"); + } + [] tc_ac.timeout { + setverdict(fail, testcasename() & ": No answer while discovering resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + } // end TC_CSE_DIS_BO_005 + + } //end group g_CSE_DIS_BO_005 + + group g_CSE_DIS_BO_006 + { + testcase TC_CSE_DIS_BO_006() runs on CseTester system CseSystem { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + const ResourceType c_containerResourceType := int3; + var XSD.ID v_resourceId := "nonexisting"; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; + + if(PX_ADDRESSING_METHOD == e_nonHierarchical and (PX_PRIMITIVE_SCOPE == e_cseRelative)) { + v_request := valueof(m_retrieveResourceFilterUsageOption(v_resourceId, f_getOriginator(v_aeIndex), int1)); + } else { + v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_aeIndex) & "/" & v_resourceId, f_getOriginator(v_resourceIndex), int1)); + } + + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Resource not found"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong response status code while retrieving resource"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong response while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, testcasename() & ": No answer while retrieving resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + } // end TC_CSE_DIS_BO_006 + + } //end group g_CSE_DIS_BO_006 + + group g_CSE_DIS_BI_007 + { + testcase TC_CSE_DIS_BI_007() runs on CseTester system CseSystem { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + var CseTester v_notifyHandler; + var integer v_ae2Index := -1; + var integer v_childResourceIndex := -1; + const ResourceType c_containerResourceType := int3; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; + + v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); + v_request := valueof(m_retrieveResourceInvalidFormatOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4102))) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Contents Unacceptable"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong response status code while retrieving resource"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong response while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, testcasename() & ": No answer while retrieving resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + } // end TC_CSE_DIS_BI_007 + } //end group g_CSE_DIS_BI_007 + + } //end group Group Discovery + group Subscription_And_Notification { group g_CSE_SUB_BV_001{