diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 916b1eed39671b4dba548b4d69a030d354e93503..9a4df0fff7886f64918d3f43f51ec695d3bc6939 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -42,7 +42,7 @@ module OneM2M_Functions { map(self:acPort, system:acPort); f_setProtocolBinding(PX_TS_AE1.mcaPort, PX_TS_AE1.mcaPortIn, v_binding, v_host, v_binding_in); - + vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, PX_TS_AE1.mcaPort.serialization }; vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, PX_TS_AE1.mcaPortIn.serialization }; @@ -81,10 +81,10 @@ module OneM2M_Functions { map(self:acPort, system:acPort); f_setProtocolBinding(PX_TS_AE2.mcaPort, PX_TS_AE2.mcaPortIn, v_binding, v_host, v_binding_in); - + vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, PX_TS_AE2.mcaPort.serialization }; vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, PX_TS_AE2.mcaPortIn.serialization }; - + //Initialze the IUT } // end f_cf01UpAe2 @@ -113,10 +113,10 @@ module OneM2M_Functions { } f_setProtocolBinding(PX_TS_AE1.mcaPort, PX_TS_AE1.mcaPortIn, v_binding, v_host, v_binding_in); - + vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, PX_TS_AE1.mcaPort.serialization }; vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, PX_TS_AE1.mcaPortIn.serialization }; - + activate(a_default()); vc_aeSimu := activate(a_cse_cf02_ae1()); vc_cse1.start(f_cf02UpCse1(p_cseType)); @@ -150,10 +150,10 @@ module OneM2M_Functions { map(self:acPort, system:acPort); f_setProtocolBinding(PX_TS_CSE1.mccPort, PX_TS_CSE1.mccPortIn, v_binding, v_host, v_binding_in); - + vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, PX_TS_CSE1.mccPort.serialization }; vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding, PX_TS_CSE1.mccPortIn.serialization }; - + v_cSEBaseResource := f_generateLocalResource(-, -1, int5); vc_cSEBaseIndex := f_setLocalResource(v_cSEBaseResource, int5, -1); @@ -191,7 +191,7 @@ module OneM2M_Functions { } f_setProtocolBinding(PX_TS_CSE1.mccPort, PX_TS_CSE1.mccPortIn, v_binding, v_host, v_binding_in); - + vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, PX_TS_CSE1.mccPort.serialization }; vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding_in, PX_TS_CSE1.mccPortIn.serialization }; @@ -224,7 +224,7 @@ module OneM2M_Functions { map(self:acPort, system:acPort); f_setProtocolBinding(PX_TS_AE1.mcaPort, PX_TS_AE1.mcaPortIn, v_binding, v_host, v_binding_in); - + vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, PX_TS_AE1.mcaPort.serialization }; vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, PX_TS_AE1.mcaPortIn.serialization }; @@ -258,7 +258,7 @@ module OneM2M_Functions { map(self:acPort, system:acPort); f_setProtocolBinding(PX_TS_CSE1.mcaPort, PX_TS_CSE1.mcaPortIn, v_binding, v_host, v_binding_in); - + vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPort))] := { mcaPort, v_host, v_binding, PX_TS_CSE1.mcaPort.serialization }; vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mcaPortIn))] := { mcaPortIn, v_host, v_binding_in, PX_TS_CSE1.mcaPortIn.serialization }; @@ -303,7 +303,7 @@ module OneM2M_Functions { } f_setProtocolBinding(PX_TS_CSE1.mccPort, PX_TS_CSE1.mccPortIn, v_binding, v_host, v_binding_in); - + vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))] := { mccPort, v_host, v_binding, PX_TS_CSE1.mccPort.serialization }; vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))] := { mccPortIn, v_host, v_binding_in, PX_TS_CSE1.mccPortIn.serialization }; @@ -794,6 +794,28 @@ module OneM2M_Functions { } + /** + * @desc Getting the address of the last resource saved in the vc_resourcesList + * @param p_tester Given component + */ + function f_getLatestResourceAddress(in CseSimu p_component, AddressingMethod p_addressingMethod := PX_ADDRESSING_METHOD, PrimitiveScope p_primitiveScope := PX_PRIMITIVE_SCOPE) runs on Tester return XSD.ID { + var XSD.ID v_resourceAddress; + + f_connectInfoPort(p_component); + + p_component.start(f_sendLatestResourceAddress(p_addressingMethod, p_primitiveScope)); + alt { + []infoPort.receive(mw_resourceAddress) -> value v_resourceAddress{ + } + } + + p_component.done; + f_disconnectInfoPort(p_component); + + return v_resourceAddress; + + } + /** * @desc Getting the latest local resource from an CseSimu component * @param p_component CseSimu component @@ -957,7 +979,15 @@ module OneM2M_Functions { } - + /** + * @desc Sending the address of the last resource saved in the vc_resourcesList + */ + function f_sendLatestResourceAddress(AddressingMethod p_addressingMethod := PX_ADDRESSING_METHOD, PrimitiveScope p_primitiveScope := PX_PRIMITIVE_SCOPE) runs on CseSimu { + + infoPort.send(f_getResourceAddress(lengthof(vc_resourcesList)-1, p_addressingMethod, p_primitiveScope)); + + } + /** * @desc Sending of the latest local resource through InfoPort */ @@ -968,7 +998,7 @@ module OneM2M_Functions { } /** - * @desc Sending the address of the last resource saved in the vc_resourcesList + * @desc Sending the address of the last resource saved in the vc_localresourcesList */ function f_sendLatestLocalResourceAddress(AddressingMethod p_addressingMethod := PX_ADDRESSING_METHOD, PrimitiveScope p_primitiveScope := PX_PRIMITIVE_SCOPE) runs on CseSimu { @@ -4584,12 +4614,21 @@ module OneM2M_Functions { if(ischosen(p_contentResource.accessControlPolicy)) { return p_contentResource.accessControlPolicy.resourceName; } + if(ischosen(p_contentResource.accessControlPolicyAnnc)) { + return p_contentResource.accessControlPolicyAnnc.resourceName; + } if(ischosen(p_contentResource.container)) { return p_contentResource.container.resourceName; } + if(ischosen(p_contentResource.containerAnnc)) { + return p_contentResource.containerAnnc.resourceName; + } if(ischosen(p_contentResource.contentInstance)) { return p_contentResource.contentInstance.resourceName; } + if(ischosen(p_contentResource.contentInstanceAnnc)) { + return p_contentResource.contentInstanceAnnc.resourceName; + } if(ischosen(p_contentResource.schedule)) { return p_contentResource.schedule.resourceName; } @@ -4602,6 +4641,9 @@ module OneM2M_Functions { if(ischosen(p_contentResource.group_)) { return p_contentResource.group_.resourceName; } + if(ischosen(p_contentResource.groupAnnc)) { + return p_contentResource.groupAnnc.resourceName; + } if(ischosen(p_contentResource.aE)) { return p_contentResource.aE.resourceName; } @@ -5022,9 +5064,27 @@ module OneM2M_Functions { */ function f_getAnnouncedResourceType(in ResourceType p_resourceType) runs on Tester return ResourceType { - if(p_resourceType == int2) { + if(p_resourceType == int1) { + return int10001; + } + else if(p_resourceType == int2) { return int10002; } + else if(p_resourceType == int3) { + return int10003; + } + else if(p_resourceType == int4) { + return int10004; + } + else if(p_resourceType == int9) { + return int10009; + } + else if(p_resourceType == int29) { + return int10029; + } + else if(p_resourceType == int30) { + return int10030; + } return p_resourceType; @@ -5167,9 +5227,15 @@ module OneM2M_Functions { else if (ischosen(p_requestPrimitive.primitiveContent.container)){ p_requestPrimitive.primitiveContent.container.accessControlPolicyIDs := p_accessControlPolicyIDs; } + else if (ischosen(p_requestPrimitive.primitiveContent.containerAnnc)){ + p_requestPrimitive.primitiveContent.containerAnnc.accessControlPolicyIDs := p_accessControlPolicyIDs; + } else if (ischosen(p_requestPrimitive.primitiveContent.group_)){ p_requestPrimitive.primitiveContent.group_.accessControlPolicyIDs := p_accessControlPolicyIDs; } + else if (ischosen(p_requestPrimitive.primitiveContent.groupAnnc)){ + p_requestPrimitive.primitiveContent.groupAnnc.accessControlPolicyIDs := p_accessControlPolicyIDs; + } else if (ischosen(p_requestPrimitive.primitiveContent.serviceSubscribedAppRule)){ p_requestPrimitive.primitiveContent.serviceSubscribedAppRule.accessControlPolicyIDs := p_accessControlPolicyIDs; } @@ -5199,7 +5265,14 @@ module OneM2M_Functions { } else if (ischosen(p_requestPrimitive.primitiveContent.statsConfig)){ p_requestPrimitive.primitiveContent.statsConfig.accessControlPolicyIDs := p_accessControlPolicyIDs; - } else { + } + else if (ischosen(p_requestPrimitive.primitiveContent.timeSeries)){ + p_requestPrimitive.primitiveContent.timeSeries.accessControlPolicyIDs := p_accessControlPolicyIDs; + } + else if (ischosen(p_requestPrimitive.primitiveContent.timeSeriesAnnc)){ + p_requestPrimitive.primitiveContent.timeSeriesAnnc.accessControlPolicyIDs := p_accessControlPolicyIDs; + } + else { log( __SCOPE__ & ":INFO: Resource not having acpi attribute. Not possible to set acpi") } return valueof(p_requestPrimitive); @@ -5289,7 +5362,9 @@ module OneM2M_Functions { @param p_protocolBindingIn Protocol binding for receiving port */ function f_setProtocolBinding(in PortDesc p_sendingPort, in PortDesc p_receivingPort, out charstring p_protocolBindingOut, out charstring p_targetIutAddress, out charstring p_protocolBindingIn) runs on Tester { - + + + if (ischosen(p_sendingPort.binding.httpBindingDesc)) { // FIXME Create a function to initialize vc_myInterfaces p_protocolBindingOut := "HTTP"; p_targetIutAddress := p_sendingPort.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(p_sendingPort.binding.httpBindingDesc.bindingDesc.remotePort); @@ -5316,6 +5391,75 @@ module OneM2M_Functions { } // end f_setProtocolBinding + /** + * @desc Set link into the aanounced resource + * @param p_resource Resource to be modified + * @param p_link Resource address to be set + * @return + * @verdict + */ + function f_setLink(PrimitiveContent p_resource, XSD.ID p_link) runs on Tester return PrimitiveContent { + + if (ischosen(p_resource.aEAnnc)){ + p_resource.aEAnnc.link := p_link; + } + else if (ischosen(p_resource.accessControlPolicyAnnc)){ + p_resource.accessControlPolicyAnnc.link := p_link; + } + else if (ischosen(p_resource.containerAnnc)){ + p_resource.containerAnnc.link := p_link; + } + else if (ischosen(p_resource.contentInstanceAnnc)){ + p_resource.contentInstanceAnnc.link := p_link; + } + else if (ischosen(p_resource.groupAnnc)){ + p_resource.groupAnnc.link := p_link; + } + else if (ischosen(p_resource.remoteCSEAnnc)){ + p_resource.remoteCSEAnnc.link := p_link; + } + else if (ischosen(p_resource.timeSeriesAnnc)){ + p_resource.timeSeriesAnnc.link := p_link; + } + else { + log( __SCOPE__, ":INFO: Resource not having link attribute. Not possible to set link") + } + return valueof(p_resource); + } + + /** + * @desc Set expirationTime into the aanounced resource + * @param p_resource Resource to be modified + * @param p_originalResource Original resource from where to get the expirationTime + * @return + * @verdict + */ + function f_setExpirationTime(PrimitiveContent p_resource, PrimitiveContent p_originalResource) runs on Tester return PrimitiveContent { + + if (ischosen(p_resource.aEAnnc)){ + p_resource.aEAnnc.expirationTime := p_resource.aE.expirationTime; + } + else if (ischosen(p_resource.accessControlPolicyAnnc)){ + p_resource.accessControlPolicyAnnc.expirationTime := p_originalResource.accessControlPolicy.expirationTime; + } + else if (ischosen(p_resource.containerAnnc)){ + p_resource.containerAnnc.expirationTime := p_originalResource.container.expirationTime; + } + else if (ischosen(p_resource.groupAnnc)){ + p_resource.groupAnnc.expirationTime := p_originalResource.group_.expirationTime; + } + else if (ischosen(p_resource.remoteCSEAnnc)){ + p_resource.remoteCSEAnnc.expirationTime := p_originalResource.remoteCSE.expirationTime; + } + else if (ischosen(p_resource.timeSeriesAnnc)){ + p_resource.timeSeriesAnnc.expirationTime := p_originalResource.timeSeries.expirationTime; + } + else { + log( __SCOPE__, ":INFO: Resource not having expirationTime attribute. Not possible to set expirationTime") + } + return valueof(p_resource); + } + /** * @desc Checks the nodeLink attribute of a Device Model */ diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 046688da569c01564758cbbbcd592ededb7e6e78..8eeb6ff7064cf1595700a454d18395cba6c7e5c6 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -1143,6 +1143,15 @@ module OneM2M_Templates { resourceType := int4, primitiveContent := {contentInstance := m_contentCreateContentInstance} }; + + /** + * @desc Base CREATE request primitive for ContentInstanceAnnc resource + */ + template (value) RequestPrimitive m_createContentInstanceAnncBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createContentInstanceAnnc", + resourceType := int10004, + primitiveContent := {contentInstanceAnnc := m_contentCreateContentInstanceAnnc} + }; /** * @desc CREATE request primitive for Content Instance resource with no resourceName provided @@ -1473,7 +1482,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_createTimeSeriesAnncBase modifies m_create := { requestIdentifier := testcasename() & "-m_createTimeSeriesAnnc", resourceType := int10029, - primitiveContent := {timeSeriesAnnc := m_contentCreateTimeSeriesAnnc()} + primitiveContent := {timeSeriesAnnc := m_contentCreateTimeSeriesAnnc} }; template (value) RequestPrimitive m_createTimeSeries(in template (omit) XSD.String p_name := c_defaultTimeSeriesResourceName, @@ -1523,8 +1532,15 @@ module OneM2M_Templates { resourceType := int10029, primitiveContent := {timeSeriesAnnc := mw_contentCreateTimeSeriesAnncBase} }; - + /** + * @desc Base CREATE request primitive for TimeSeriesInstanceAnnc + */ + template (value) RequestPrimitive m_createTimeSeriesInstanceAnnc modifies m_create := { + resourceType := int10030, + primitiveContent := {timeSeriesInstanceAnnc := m_contentCreateTimeSeriesInstanceAnnc} + }; + /** * @desc Base Reception template for CREATE TimeSeriesInstanceAnnc */ template RequestPrimitive mw_createTimeSeriesInstanceAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { @@ -2171,6 +2187,10 @@ module OneM2M_Templates { group ContentCreate { + template PrimitiveContent m_primitiveContentAccessControlPolicy(template AccessControlPolicy_optional p_acp) := { + accessControlPolicy := p_acp + } + template PrimitiveContent m_primitiveContentAe(template AE_optional p_ae) := { aE := p_ae } @@ -2195,6 +2215,14 @@ module OneM2M_Templates { responsePrimitive := p_responsePrimitive } + template PrimitiveContent m_primitiveContentTimeSeries(template TimeSeries_optional p_timeSeries) := { + timeSeries := p_timeSeries + } + + template PrimitiveContent m_primitiveContentTimeSeriesInstance(template TimeSeriesInstance_optional p_timeSeriesInstance) := { + timeSeriesInstance := p_timeSeriesInstance + } + template (value) PrimitiveContent m_primitiveContentGroup(template Group_optional p_group) := { group_ := valueof(p_group) } @@ -2425,8 +2453,8 @@ module OneM2M_Templates { * @param p_acor Allowed originators * @param p_allowedOperations Allowed operations */ - template (value) AccessControlPolicyAnnc_optional m_contentCreateAcpAnnc (in template (omit) XSD.String p_name := c_defaultAccessControlPolicyAnncResourceName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63 ) := { - resourceName := p_name,//O + template (value) AccessControlPolicyAnnc_optional m_contentCreateAcpAnnc (in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63 ) := { + resourceName := omit,//O resourceType := omit,//NP resourceID := omit,//NP parentID := omit,//NP @@ -2679,9 +2707,8 @@ module OneM2M_Templates { in template (omit) AcpType p_accessControlPolicyIds, in template (omit) MemberType p_memberType := omit, in template (omit) ConsistencyStrategy p_consistencyStrategy := omit, - in template (omit) ListOfURIs p_membersAccessControlPolicyIDs := omit, - in template (omit) XSD.String p_name := c_defaultGroupAnncResourceName) := { - resourceName := p_name,//O + in template (omit) ListOfURIs p_membersAccessControlPolicyIDs := omit) := { + resourceName := omit,//O resourceType := omit,//NP resourceID := omit,//NP parentID := omit,//NP @@ -3179,7 +3206,28 @@ module OneM2M_Templates { /** * @desc Base primitiveContent for CREATE operation for ContentInstanceAnnc resource - * @param p_primitiveContent Content for the ContentInstanceAnnc + */ + template (value) ContentInstanceAnnc_optional m_contentCreateContentInstanceAnnc := { + resourceName := omit,//NA M + resourceType := omit,//NA M + resourceID := omit,//NA M + parentID := omit,//NA M + creationTime := omit,//NA M + lastModifiedTime := omit,//NA M + labels := omit,//MA O + expirationTime := "29991231T235959",//NA M + link := "NotInitialized", //M + stateTag := omit,//OA M + creator := omit,//NA O + contentInfo := omit,//OA O + contentSize := omit,//OA M + ontologyRef := omit,//OA O + content := omit, //OA M + choice := omit //O + }; + + /** + * @desc Base reception template primitiveContent for CREATE operation for ContentInstanceAnnc resource */ template ContentInstanceAnnc_optional mw_contentCreateContentInstanceAnncBase := { resourceName := omit,//NA M @@ -3256,8 +3304,8 @@ module OneM2M_Templates { * @desc Base primitiveContent for CREATE operation for ContainerAnnc resource * @param p_name Resource name */ - template (value) ContainerAnnc_optional m_contentCreateContainerAnnc (in template (omit) XSD.String p_name := c_defaultContainerAnncResourceName):= { - resourceName := p_name,//O + template (value) ContainerAnnc_optional m_contentCreateContainerAnnc := { + resourceName := omit,//O resourceType := omit,//NP resourceID := omit,//NP parentID := omit,//NP @@ -3266,7 +3314,7 @@ module OneM2M_Templates { labels := omit,//O accessControlPolicyIDs := omit,//O expirationTime := omit,//O - link := omit,//M TODO Put the right value + link := "NotInitialized",//M dynamicAuthorizationConsultationIDs := omit, //O stateTag := omit,//NP maxNrOfInstances := omit,//O @@ -3806,8 +3854,8 @@ module OneM2M_Templates { * @desc Base primitiveContent for CREATE operation for timeSeriesAnnc resource * @param p_name Resource name */ - template (value) TimeSeriesAnnc_optional m_contentCreateTimeSeriesAnnc (in template (omit) XSD.String p_name := c_defaultTimeSeriesAnncResourceName):= { - resourceName := p_name,//O + template (value) TimeSeriesAnnc_optional m_contentCreateTimeSeriesAnnc := { + resourceName := omit,//NP resourceType := omit,//NP resourceID := omit,//NP parentID := omit,//NP @@ -3960,7 +4008,7 @@ module OneM2M_Templates { }; /** - * @desc Base reception template primitiveContent for CREATE operation for Container resource + * @desc Base reception template primitiveContent for CREATE operation for TimeSeriesInstance resource * @param p_name Resource name */ template TimeSeriesInstance_optional mw_contentCreateTimeSeriesInstanceBase (template XSD.String p_name := *):= { @@ -3981,6 +4029,27 @@ module OneM2M_Templates { choice := omit//NP }; + /** + * @desc Base primitiveContent for CREATE operation for TimeSeriesInstanceAnnc resource + * @param p_name Resource name + */ + template (value) TimeSeriesInstanceAnnc_optional m_contentCreateTimeSeriesInstanceAnnc := { + resourceName := omit,//NA M + resourceType := omit,//NA M + resourceID := omit,//NA M + parentID := omit,//NA M + creationTime := omit,//NA M + lastModifiedTime := omit,//NA M + labels := omit,//MA O + expirationTime := omit,//NA M + link := "NotInitialized", //M + dataGenerationTime := omit,//OA M + content := omit,//OA M + sequenceNr := omit,//OA O + contentSize := omit,//OA M + choice := omit//NA O + }; + template (value) MissingData m_missingData( in XSD.NonNegativeInteger p_number, in XSD.Duration p_duration) := { number := p_number, duration := p_duration diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn index 84d43653db88c52e9c951891792be67ed76ba5a5..0580e601068bfaf76774ae42c40ce223cbfab023 100644 --- a/LibOneM2M/OneM2M_TypesAndValues.ttcn +++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn @@ -16,113 +16,114 @@ module OneM2M_TypesAndValues { import from OneM2M_Types_homeDevice all; group ResourceNames { - /* Constants */ - const XSD.String c_defaultResourceName := "MyResource"; - const XSD.String c_defaultGroupResourceName := "MyGroupResource"; - const XSD.String c_defaultGroupAnncResourceName := "MyGroupAnncResource"; - const XSD.String c_defaultAccessControlPolicyResourceName := "MyAccessControlPolicyResource"; - const XSD.String c_defaultAccessControlPolicyAnncResourceName := "MyAccessControlPolicyAnncResource"; - const XSD.String c_defaultScheduleResourceName := "MyScheduleResource"; - const XSD.String c_defaultPollingChannelResourceName := "MyPollingChannelResource"; - const XSD.String c_defaultSubscriptionResourceName := "MySubscriptionResource"; - const XSD.String c_defaultContentInstanceResourceName := "MyContentInstanceResource"; - const XSD.String c_defaultContainerResourceName := "MyContainerResource"; - const XSD.String c_defaultContainerAnncResourceName := "MyContainerAnncResource"; - const XSD.String c_defaultDeliveryResourceName := "MyDeliveryResource"; - 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_defaultRequestResourceName := "MyRequestResource"; - const XSD.String c_dynamicAuthorizationConsultationName := "MyDynamicAuthorizationConsultation"; - 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.String c_defaultTimeSeriesResourceName := "MyTimeSeriesResource"; - const XSD.String c_defaultTimeSeriesAnncResourceName := "MyTimeSeriesAnncResource"; - const XSD.String c_defaultTimeSeriesInstanceResourceName := "MyTimeSeriesInstanceResource"; - const XSD.String c_defaultRoleResourceName := "MyRoleResource"; - const XSD.String c_defaultTokenResourceName := "MyTokenResource"; - const XSD.String c_defaultGenericInterworkingServiceResourceName := "MyGenericInterworkingServiceResource"; //<genericInterworkingService> - const XSD.ID c_aeAuxName := "MyAe"; - const XSD.String c_defaultAE2Name := "MyAe2"; - const XSD.String c_acpAuxName := "MyAcp"; - const charstring c_invalid_location_update_period := "-PT30M10S" ;//duration set to invalid value (minus value) - const XSD.ID c_resourceShortNameLatest := "la"; //<latest> - const XSD.ID c_resourceShortNameOldest := "ol"; //<oldest> - const XSD.ID c_resourceShortNameFanOutPoint := "fopt"; //<fanOutPoint> - const XSD.ID c_resourceShortNamePollingChannelUri := "pcu"; //<pollingChannelUri> + /* Constants */ + const XSD.String c_defaultResourceName := "MyResource"; + const XSD.String c_defaultGroupResourceName := "MyGroupResource"; + const XSD.String c_defaultGroupAnncResourceName := "MyGroupAnncResource"; + const XSD.String c_defaultAccessControlPolicyResourceName := "MyAccessControlPolicyResource"; + const XSD.String c_defaultAccessControlPolicyAnncResourceName := "MyAccessControlPolicyAnncResource"; + const XSD.String c_defaultScheduleResourceName := "MyScheduleResource"; + const XSD.String c_defaultPollingChannelResourceName := "MyPollingChannelResource"; + const XSD.String c_defaultSubscriptionResourceName := "MySubscriptionResource"; + const XSD.String c_defaultContentInstanceResourceName := "MyContentInstanceResource"; + const XSD.String c_defaultContainerResourceName := "MyContainerResource"; + const XSD.String c_defaultContainerAnncResourceName := "MyContainerAnncResource"; + const XSD.String c_defaultDeliveryResourceName := "MyDeliveryResource"; + 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_defaultRequestResourceName := "MyRequestResource"; + const XSD.String c_dynamicAuthorizationConsultationName := "MyDynamicAuthorizationConsultation"; + 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.String c_defaultTimeSeriesResourceName := "MyTimeSeriesResource"; + const XSD.String c_defaultTimeSeriesAnncResourceName := "MyTimeSeriesAnncResource"; + const XSD.String c_defaultTimeSeriesInstanceResourceName := "MyTimeSeriesInstanceResource"; + const XSD.String c_defaultTimeSeriesInstanceAnncResourceName := "MyTimeSeriesInstanceAnncResource"; + const XSD.String c_defaultRoleResourceName := "MyRoleResource"; + const XSD.String c_defaultTokenResourceName := "MyTokenResource"; + const XSD.String c_defaultGenericInterworkingServiceResourceName := "MyGenericInterworkingServiceResource"; //<genericInterworkingService> + const XSD.ID c_aeAuxName := "MyAe"; + const XSD.String c_defaultAE2Name := "MyAe2"; + const XSD.String c_acpAuxName := "MyAcp"; + const charstring c_invalid_location_update_period := "-PT30M10S" ;//duration set to invalid value (minus value) + const XSD.ID c_resourceShortNameLatest := "la"; //<latest> + const XSD.ID c_resourceShortNameOldest := "ol"; //<oldest> + const XSD.ID c_resourceShortNameFanOutPoint := "fopt"; //<fanOutPoint> + const XSD.ID c_resourceShortNamePollingChannelUri := "pcu"; //<pollingChannelUri> } group AccessControlOperations { - //AccessControlOperations - const XSD.Integer c_C := 1; - const XSD.Integer c_R := 2; - const XSD.Integer c_CR := 3; - const XSD.Integer c_U := 4; - const XSD.Integer c_CU := 5; - const XSD.Integer c_RU := 6; - const XSD.Integer c_CRU := 7; - const XSD.Integer c_D := 8; - const XSD.Integer c_CD := 9; - const XSD.Integer c_RD := 10; - const XSD.Integer c_CRD := 11; - const XSD.Integer c_UD := 12; - const XSD.Integer c_CUD := 13; - const XSD.Integer c_RUD := 14; - const XSD.Integer c_CRUD := 15; - const XSD.Integer c_N := 16; - const XSD.Integer c_CN := 17; - const XSD.Integer c_RN := 18; - const XSD.Integer c_CRN := 19; - const XSD.Integer c_UN := 20; - const XSD.Integer c_CUN := 21; - const XSD.Integer c_RUN := 22; - const XSD.Integer c_CRUN := 23; - const XSD.Integer c_DN := 24; - const XSD.Integer c_CDN := 25; - const XSD.Integer c_RDN := 26; - const XSD.Integer c_CRDN := 27; - const XSD.Integer c_UDN := 28; - const XSD.Integer c_CUDN := 29; - const XSD.Integer c_RUDN := 30; - const XSD.Integer c_CRUDN := 31; - const XSD.Integer c_Di := 32; - const XSD.Integer c_CDi := 33; - const XSD.Integer c_RDi := 34; - const XSD.Integer c_CRDi := 35; - const XSD.Integer c_UDi := 36; - const XSD.Integer c_CUDi := 37; - const XSD.Integer c_RUDi := 38; - const XSD.Integer c_CRUDi := 39; - const XSD.Integer c_DDi := 40; - const XSD.Integer c_CDDi := 41; - const XSD.Integer c_RDDi := 42; - const XSD.Integer c_CRDDi := 43; - const XSD.Integer c_UDDi := 44; - const XSD.Integer c_CUDDi := 45; - const XSD.Integer c_RUDDi := 46; - const XSD.Integer c_CRUDDi := 47; - const XSD.Integer c_NDi := 48; - const XSD.Integer c_CNDi := 49; - const XSD.Integer c_RNDi := 50; - const XSD.Integer c_CRNDi := 51; - const XSD.Integer c_UNDi := 52; - const XSD.Integer c_CUNDi := 53; - const XSD.Integer c_RUNDi := 54; - const XSD.Integer c_CRUNDi := 55; - const XSD.Integer c_DNDi := 56; - const XSD.Integer c_CDNDi := 57; - const XSD.Integer c_RDNDi := 58; - const XSD.Integer c_CRDNDi := 59; - const XSD.Integer c_UDNDi := 60; - const XSD.Integer c_CUDNDi := 61; - const XSD.Integer c_RUDNDi := 62; - const XSD.Integer c_CRUDNDi := 63; + //AccessControlOperations + const XSD.Integer c_C := 1; + const XSD.Integer c_R := 2; + const XSD.Integer c_CR := 3; + const XSD.Integer c_U := 4; + const XSD.Integer c_CU := 5; + const XSD.Integer c_RU := 6; + const XSD.Integer c_CRU := 7; + const XSD.Integer c_D := 8; + const XSD.Integer c_CD := 9; + const XSD.Integer c_RD := 10; + const XSD.Integer c_CRD := 11; + const XSD.Integer c_UD := 12; + const XSD.Integer c_CUD := 13; + const XSD.Integer c_RUD := 14; + const XSD.Integer c_CRUD := 15; + const XSD.Integer c_N := 16; + const XSD.Integer c_CN := 17; + const XSD.Integer c_RN := 18; + const XSD.Integer c_CRN := 19; + const XSD.Integer c_UN := 20; + const XSD.Integer c_CUN := 21; + const XSD.Integer c_RUN := 22; + const XSD.Integer c_CRUN := 23; + const XSD.Integer c_DN := 24; + const XSD.Integer c_CDN := 25; + const XSD.Integer c_RDN := 26; + const XSD.Integer c_CRDN := 27; + const XSD.Integer c_UDN := 28; + const XSD.Integer c_CUDN := 29; + const XSD.Integer c_RUDN := 30; + const XSD.Integer c_CRUDN := 31; + const XSD.Integer c_Di := 32; + const XSD.Integer c_CDi := 33; + const XSD.Integer c_RDi := 34; + const XSD.Integer c_CRDi := 35; + const XSD.Integer c_UDi := 36; + const XSD.Integer c_CUDi := 37; + const XSD.Integer c_RUDi := 38; + const XSD.Integer c_CRUDi := 39; + const XSD.Integer c_DDi := 40; + const XSD.Integer c_CDDi := 41; + const XSD.Integer c_RDDi := 42; + const XSD.Integer c_CRDDi := 43; + const XSD.Integer c_UDDi := 44; + const XSD.Integer c_CUDDi := 45; + const XSD.Integer c_RUDDi := 46; + const XSD.Integer c_CRUDDi := 47; + const XSD.Integer c_NDi := 48; + const XSD.Integer c_CNDi := 49; + const XSD.Integer c_RNDi := 50; + const XSD.Integer c_CRNDi := 51; + const XSD.Integer c_UNDi := 52; + const XSD.Integer c_CUNDi := 53; + const XSD.Integer c_RUNDi := 54; + const XSD.Integer c_CRUNDi := 55; + const XSD.Integer c_DNDi := 56; + const XSD.Integer c_CDNDi := 57; + const XSD.Integer c_RDNDi := 58; + const XSD.Integer c_CRDNDi := 59; + const XSD.Integer c_UDNDi := 60; + const XSD.Integer c_CUDNDi := 61; + const XSD.Integer c_RUDNDi := 62; + const XSD.Integer c_CRUDNDi := 63; } /* ****************************************** @@ -150,7 +151,7 @@ module OneM2M_TypesAndValues { charstring protocolBinding optional, charstring serialization optional, AttributeAux_list forcedFields optional - } +} /** * @desc Type for the oneM2M primitives exchange diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index 2da46b8f98704e3d04d8f4795f5f84ea288580bc..2aca79eaceef5e015ad95c07d1ea1e0fcc910b78 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -9243,49 +9243,63 @@ module OneM2M_PermutationFunctions { group Retrieve { - function f_CSE_ANNC_RET_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, in template RequestPrimitive p_requestUpdatePrimitive := omit) runs on AeSimu system CseSystem { + function f_CSE_ANNC_RET_001(ResourceType p_resourceType, template PrimitiveContent p_originalResource, template RequestPrimitive p_createRequestAnnc) runs on AeSimu system CseSystem { // Local variables - var MsgIn v_response; - var RequestPrimitive v_request; - var integer v_parentIndex := -1; + var integer v_cseBaseIndex := -1; var integer v_aeIndex := -1; - var integer v_resourceIndex; + var integer v_remoteCSEIndex := -1; + var integer v_originalResourceIndex := -1; + var XSD.ID v_originalResourceAddress; var template RequestPrimitive v_createAE := m_createAe(PX_TS_AE1.appId, omit, omit); - var template RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_TS_CSE1.cseId, PX_TS_CSE1.cseId); - var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyAcp", -, int61); - var integer v_aeAnncIndex; - var integer v_resourceAnncIndex; + var template RequestPrimitive v_createContainerAnnc := m_createContainerAnncBase; + var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", -, -, -); + var XSD.ID v_resourceAnncAddress; var integer v_acpIndex; - var XSD.ID v_membersAcpId; - + // Test control // Test component configuration f_cf02Up(); - + // Test adapter configuration - + + //Preamble + v_cseBaseIndex := f_getLatestLocalResourceIndex(vc_cse1); //Register the CSE - vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); - vc_cse1.done; + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()}))); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - //Preamble + v_remoteCSEIndex := f_getLatestResourceIndex(vc_cse1); + + //Creating resource in Hosting CSE + vc_cse1.start(f_generateAndSetLocalResource(valueof(p_originalResource), v_cseBaseIndex, p_resourceType)); + vc_cse1.done; + + v_originalResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, -, -); + + v_originalResourceIndex := f_getLatestLocalResource(vc_cse1); + v_aeIndex := f_cse_createResource(int2,v_createAE); - v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource - v_membersAcpId := f_getResourceId(vc_resourcesList[v_acpIndex].resource); + v_acpIndex := f_cse_createResource(int1, v_createAcp, -); // AE child resource + + if((p_resourceType == int3) or (p_resourceType == int9) or (p_resourceType == int29)) { + p_createRequestAnnc := f_setAcpId(p_createRequestAnnc, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}); + } + p_createRequestAnnc.primitiveContent := f_setLink(valueof(p_createRequestAnnc.primitiveContent), v_originalResourceAddress); + p_createRequestAnnc.primitiveContent := f_setExpirationTime(valueof(p_createRequestAnnc.primitiveContent), vc_resourcesList[v_originalResourceIndex].resource); - v_createAEAnnc.primitiveContent.aEAnnc.resourceID := v_membersAcpId; - v_aeAnncIndex := f_cse_createResource(int10002,v_createAEAnnc); + vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_remoteCSEIndex)); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - v_resourceAnncIndex := f_cse_createResource(p_resourceType,p_createRequestAnnc); + v_resourceAnncAddress := f_getLatestResourceAddress(vc_cse1, -, -); // Test Body - f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(), f_getOriginator(v_resourceAnncIndex)))); + f_send(e_mcaPort, m_request(m_retrieve(v_resourceAnncAddress, f_getOriginator(v_aeIndex)))); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__, ": Resource " & int2str(enum2int(p_resourceType)) & " retrieved successfully"); } diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn index 286a2f39ee7ffaecf55b1a3fe5b38ebdca737bed..1b1cc12fbdf52a5162dafc489787a208cc687fbc 100644 --- a/OneM2M_Testcases_CSE_Release_3.ttcn +++ b/OneM2M_Testcases_CSE_Release_3.ttcn @@ -9980,68 +9980,62 @@ module OneM2M_Testcases_CSE_Release_3 { */ testcase TC_CSE_ANNC_RET_001_ACP() runs on Tester system CseSystem { //Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var template RequestPrimitive v_createRequest := m_createAcpBase; - var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_originalResource := m_primitiveContentAccessControlPolicy(m_contentCreateAcp); + var template RequestPrimitive v_createRequestAnnc := m_createAcpAnncBase; - - v_ae1.start(f_CSE_ANNC_RET_001(int1, v_createRequestAnnc, v_createRequest));//AccessControlPolicy - v_ae1.done; + v_ae1.start(f_CSE_ANNC_RET_001(int1, v_originalResource, v_createRequestAnnc));//AccessControlPolicy + v_ae1.done; } testcase TC_CSE_ANNC_RET_001_CNT() runs on Tester system CseSystem { - //Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var template RequestPrimitive v_createRequest := m_createContainerBase; - var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnnc; - - - v_ae1.start(f_CSE_ANNC_RET_001(int3, v_createRequestAnnc, v_createRequest));//Container - v_ae1.done; + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_originalResource := m_primitiveContentContainer(m_contentCreateContainer); + var template RequestPrimitive v_createRequestAnnc := m_createContainerAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_001(int3, v_originalResource, v_createRequestAnnc));//Container + v_ae1.done; } testcase TC_CSE_ANNC_RET_001_CIN() runs on Tester system CseSystem { - //Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var template RequestPrimitive v_createRequest := m_createContentInstanceBase; - var template RequestPrimitive v_createRequestAnnc := mw_createContentInstanceAnnc; - - - v_ae1.start(f_CSE_ANNC_RET_001(int4, v_createRequestAnnc, v_createRequest));//ContentInstance - v_ae1.done; + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_originalResource := m_primitiveContentContentInstance(m_contentCreateContentInstance); + var template RequestPrimitive v_createRequestAnnc := m_createContentInstanceAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_001(int4, v_originalResource, v_createRequestAnnc));//ContentInstance + v_ae1.done; } testcase TC_CSE_ANNC_RET_001_GRP() runs on Tester system CseSystem { - //Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var template RequestPrimitive v_createRequest := m_createGroupBase; - var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnnc; - - - v_ae1.start(f_CSE_ANNC_RET_001(int9, v_createRequestAnnc, v_createRequest));//Group - v_ae1.done; + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_originalResource := m_primitiveContentGroup(m_contentCreateGroup(1, {"NotInitialized"}, omit, -, -, -, -)); + var template RequestPrimitive v_createRequestAnnc := m_createGroupAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_001(int9, v_originalResource, v_createRequestAnnc));//Group + v_ae1.done; } testcase TC_CSE_ANNC_RET_001_TS() runs on Tester system CseSystem { - //Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var template RequestPrimitive v_createRequest := m_createTimeSeriesBase; - var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnnc; - - - v_ae1.start(f_CSE_ANNC_RET_001(int29, v_createRequestAnnc, v_createRequest));//TimeSeries - v_ae1.done; + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_originalResource := m_primitiveContentTimeSeries(m_contentCreateTimeSeries); + var template RequestPrimitive v_createRequestAnnc := m_createTimeSeriesAnncBase; + + v_ae1.start(f_CSE_ANNC_RET_001(int29, v_originalResource, v_createRequestAnnc));//TimeSeries + v_ae1.done; } testcase TC_CSE_ANNC_RET_001_TSI() runs on Tester system CseSystem { - //Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var template RequestPrimitive v_createRequest := m_createTimeSeriesInstanceBase; - var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesInstanceAnnc; - - - v_ae1.start(f_CSE_ANNC_RET_001(int30, v_createRequestAnnc, v_createRequest));//TimeSeriesInstance - v_ae1.done; + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_originalResource := m_primitiveContentTimeSeriesInstance(m_contentCreateTimeSeriesInstance); + var template RequestPrimitive v_createRequestAnnc := m_createTimeSeriesInstanceAnnc; + + v_ae1.start(f_CSE_ANNC_RET_001(int30, v_originalResource, v_createRequestAnnc));//TimeSeriesInstance + v_ae1.done; } } //end group g_CSE_ANNC_RET_001