diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index bb0a7e1325e7d92b2f81ebea0cc92a50ffd874d9..46dc3c4aa1e0a64a0b711f7e657ac1556ec25d5c 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -2513,6 +2513,55 @@ module OneM2M_Functions { } }//End of function + + /** + * @desc Creation of a resource using CseSimu + * @param p_resourceType Resource type of the resource to be created + * @param p_requestPrimitive CREATE request primitive for the resource to be created + * @param p_parentIndex Internal resource index which indicates the parent of the resource to be created + * @return Internal resource index of the created resource + * @verdict + */ + function f_cse_createResource_cseSimu(in ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive := m_create, integer p_parentIndex := -1) runs on CseSimu return integer { + + var RequestPrimitive v_request; + var integer v_resourceIndex := -1; + + //Activate defaults when running on a PTC + f_cse_activateDefaults_cse1(); + + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, p_parentIndex); + + mccPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__&":INFO: Resource type " & int2str(enum2int(p_resourceType)) & " created successfuly"); + f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive); + v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, p_parentIndex); + if(p_resourceType == int16) { //remoteCSE + vc_remoteCseIndex := v_resourceIndex; + } + } + [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(inconc, __SCOPE__&":INFO: Error while creating resource type " & int2str(enum2int(p_resourceType))); + } + [] 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 " & int2str(enum2int(p_resourceType))); + } + } + + f_checkCseSimuStatus(); + + return v_resourceIndex; + + } /** * @desc Send response to the IUT (Test System simulating a CSE) diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index fed80bfb1d46978cab5e595d6bfad40eb9cbad20..6d7d07fe56a07853de5c6afc68a537236f2ee479 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -791,6 +791,15 @@ module OneM2M_Templates { resourceType := int1, primitiveContent := {accessControlPolicy := m_contentCreateAcp ()} }; + + /** + * @desc Base CREATE request primitive for AccessControlPolicyAnnc resource + */ + template (value) RequestPrimitive m_createAcpAnncBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createAcpAnnc", + resourceType := int10001, + primitiveContent := {accessControlPolicyAnnc := m_contentCreateAcpAnnc ()} + }; template (value) RequestPrimitive m_createAcp(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_name := c_defaultAccessControlPolicyResourceName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63) modifies m_create := { to_ := p_parentResourceAddress, @@ -851,6 +860,15 @@ module OneM2M_Templates { resourceType := int3, primitiveContent := {container := m_contentCreateContainer} }; + + /** + * @desc Base CREATE request primitive for ContainerAnnc resource + */ + template (value) RequestPrimitive m_createContainerAnncBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createContainerAnnc", + resourceType := int10003, + primitiveContent := {containerAnnc := m_contentCreateContainerAnnc} + }; /** * @desc Base CREATE request primitive for Container resource using Container_update_invalid @@ -998,6 +1016,15 @@ module OneM2M_Templates { resourceType := int9, primitiveContent := {group_ := m_contentCreateGroup (1, {"NotInitialized"}, omit, omit)} //TODO: p_resourceId }; + + /** + * @desc Base CREATE request primitive for GroupAnnc resource + */ + template (value) RequestPrimitive m_createGroupAnncBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createGroupAnnc", + resourceType := int10009, + primitiveContent := {groupAnnc := m_contentCreateGroupAnnc (1, {"NotInitialized"}, omit, omit)} //TODO: p_resourceId + }; template (value) RequestPrimitive m_createGroup(in template (value) XSD.NonNegativeInteger p_maxNrOfMembers, in template (value) ListOfURIs p_memberIds := {"NotInitialized"}, @@ -1286,6 +1313,15 @@ module OneM2M_Templates { resourceType := int29, primitiveContent := {timeSeries := m_contentCreateTimeSeries ()} }; + + /** + * @desc Base CREATE request primitive for timeSeriesAnnc resource + */ + template (value) RequestPrimitive m_createTimeSeriesAnncBase modifies m_create := { + requestIdentifier := testcasename() & "-m_createTimeSeriesAnnc", + resourceType := int10029, + primitiveContent := {timeSeriesAnnc := m_contentCreateTimeSeriesAnnc()} + }; template (value) RequestPrimitive m_createTimeSeries(in template (omit) XSD.String p_name := c_defaultTimeSeriesResourceName, in XSD.Boolean p_missingDataDetect := true, @@ -1716,6 +1752,31 @@ module OneM2M_Templates { choice := omit //NP }; + /** + * @desc Base primitiveContent for CREATE operation for AccessControlPolicyAnnc resource + * @param p_name Resource name + * @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 + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + expirationTime := omit,//O + link := omit,//M TODO Put the right value + privileges := { + accessControlRule_list := {valueof(m_createAcr(p_acor, p_allowedOperations))} + },//M + selfPrivileges := { + accessControlRule_list := {valueof(m_createAcr({"all"}, int63))} + },//M + choice := omit //NP + }; + /** * @desc Base reception template of primitiveContent for CREATE operation for AccessControlPolicyAnnc resource * @param p_labels Labels @@ -1862,6 +1923,43 @@ module OneM2M_Templates { choice := omit//NP }; + /** + * @desc Base primitiveContent for CREATE operation for GroupAnnc resource + * @param p_maxNrOfMembers Max number of members + * @param p_memberIds Member IDs + * @param p_accessControlPolicyIds ACP IDs for the GroupAnnc + * @param p_name Resource name + */ + template (value) GroupAnnc_optional m_contentCreateGroupAnnc ( in template (value) XSD.PositiveInteger p_maxNrOfMembers, + in template (value) ListOfURIs p_memberIds, + 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 + 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 + link := omit,//M TODO Put the right value + dynamicAuthorizationConsultationIDs := omit, //O + memberType := p_memberType,//O + currentNrOfMembers := omit,//NP + maxNrOfMembers := p_maxNrOfMembers,//M + memberIDs := p_memberIds,//M + membersAccessControlPolicyIDs := p_membersAccessControlPolicyIDs,//O + memberTypeValidated := omit,//NP + consistencyStrategy := p_consistencyStrategy,//O + groupName := omit,//O + semanticSupportIndicator := omit,//O + choice := omit//NP + }; + /** * @desc Base reception template of primitiveContent for CREATE operation for GroupAnnc resource */ @@ -2249,6 +2347,34 @@ module OneM2M_Templates { choice := omit//NP }; + /** + * @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 + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + accessControlPolicyIDs := omit,//O + expirationTime := omit,//O + link := omit,//M TODO Put the right value + dynamicAuthorizationConsultationIDs := omit, //O + stateTag := omit,//NP + maxNrOfInstances := omit,//O + maxByteSize := omit,//O + maxInstanceAge := omit,//O + currentNrOfInstances := omit,//NP + currentByteSize := omit,//NP + locationID := omit,//O + ontologyRef := omit,//O + disableRetrieval := omit, //O + choice := omit//NP + }; + /** * @desc Base primitiveContent for invalid CREATE operation for Container resource (using Container_update_invalid) * @param p_name Resource name @@ -2569,7 +2695,7 @@ module OneM2M_Templates { }; /** - * @desc Base primitiveContent for CREATE operation for timeSeries resource + * @desc Base primitiveContent for CREATE operation for timeSeries resource * @param p_name Resource name */ template (value) TimeSeries_optional m_contentCreateTimeSeries (in template (omit) XSD.String p_name := c_defaultTimeSeriesResourceName):= { @@ -2602,6 +2728,37 @@ module OneM2M_Templates { choice := omit//NP }; + /** + * @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 + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + accessControlPolicyIDs := omit,//O + expirationTime := omit,//O + link := omit,//M TODO Put the right value + dynamicAuthorizationConsultationIDs := omit, //O + stateTag := omit,//NP + maxNrOfInstances := omit,//O + maxByteSize := omit,//O + maxInstanceAge := omit,//O + currentNrOfInstances := omit,//NP + currentByteSize := omit,//NP + periodicInterval := omit,//O + missingDataDetect := omit,//O + missingDataList := omit,//NP + missingDataCurrentNr := omit,//NP + missingDataDetectTimer := omit,//O + ontologyRef := omit,//O + choice := omit//NP + }; + /** * @desc Base primitiveContent for CREATE operation for TimeSeriesAnnc resource * @param p_primitiveContent Content for the TimeSeriesAnnc @@ -2668,6 +2825,7 @@ module OneM2M_Templates { missingDataMaxNr := p_missingDataMaxNr,//O missingDataDetectTimer := p_missingDataDetectTimer//O } + /** * @desc Base primitiveContent for invalid CREATE operation for timeSeries resource (using Container_update_invalid) * @param p_name Resource name diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn index 0514eeae980e84104014a062d99777a6a292d4b3..61d58b175414a718c262451a7d9f1f393ce7e605 100644 --- a/LibOneM2M/OneM2M_TypesAndValues.ttcn +++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn @@ -18,12 +18,15 @@ module OneM2M_TypesAndValues { /* 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"; @@ -38,6 +41,7 @@ module OneM2M_TypesAndValues { 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.ID c_aeAuxName := "MyAe"; const XSD.String c_defaultAE2Name := "MyAe2"; diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index 8a00c2a89d6c7d6e3ba5a3c969db490d33d8b1a6..895a147a19caffe011a1910bf58937da986361fb 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -1919,81 +1919,85 @@ module OneM2M_PermutationFunctions { }//end f_CSE_DMR_CRE_001 - function f_CSE_DMR_CRE_001_cseSimu(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseSimu return ResponsePrimitive { + function f_CSE_DMR_CRE_001_cseSimu(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, ResourceType p_parentResourceType := int2, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit) runs on CseSimu{ - // Local variables - var MsgIn v_response; - var RequestPrimitive v_request; - var integer v_parentIndex := -1; - var integer v_resourceIndex := -1; - var integer v_ae1Index := -1; - var integer v_acpAuxIndex := -1; - var PoaList v_poaList := {"http://" & PX_AE1_ADDRESS & "/"}; - - // Test control - - // Test component configuration - f_cf02UpCseSimuMaster(); + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_parentIndex := -1; + var integer v_resourceIndex := -1; + var integer v_ae1Index := -1; + var integer v_acpAuxIndex := -1; + var PoaList v_poaList := {"http://" & PX_AE1_ADDRESS & "/"}; + + // Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + + // Preamble + vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); - // Test adapter configuration - - // Preamble - vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); - - if(match(int23, p_resourceType)){ - vc_ae1.start(f_cse_preamble_createAcpAux("SubscriptionVerificationAcp", int63)); - f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); - vc_ae1.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_APP_ID, -, PX_AE1_ID_STEM, "MyAe", v_poaList), -1)); // AE1 is registered - f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); - v_ae1Index := f_getResource(vc_ae1); - p_requestPrimitive.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_ae1Index)}; - vc_ae1.start(f_cse_notifyProcedure_subscriptionVerificationHandler()); - } - - // Test Body - - v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, vc_remoteCseIndex); + if(match(int23, p_resourceType)){ + vc_ae1.start(f_cse_preamble_createAcpAux("SubscriptionVerificationAcp", int63)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + vc_ae1.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_APP_ID, -, PX_AE1_ID_STEM, "MyAe", v_poaList), -1)); // AE1 is registered + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_ae1Index := f_getResource(vc_ae1); + p_requestPrimitive.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_ae1Index)}; + vc_ae1.start(f_cse_notifyProcedure_subscriptionVerificationHandler()); + } - mccPort.send(f_getMsgOutPrimitive(m_request(v_request))); - tc_ac.start; - alt { - [] mccPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { - tc_ac.stop; - setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(p_resourceType)) & " created successfully"); - f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive); - v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, vc_remoteCseIndex); - } - [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Wrong response status code"); - } - [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Error while creating resource type " & int2str(enum2int(p_resourceType))); - } - [] tc_ac.timeout { - setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); + if (not ispresent(p_parentRequestPrimitive)){ //Create the resource directly under RemoteCSE + v_parentIndex := vc_remoteCseIndex; + }else{ //Create the resource under parentResource + v_parentIndex := f_cse_createResource_cseSimu(p_parentResourceType, p_parentRequestPrimitive, vc_remoteCseIndex); + } + + // Test Body + + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); + + mccPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mccPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(p_resourceType)) & " created successfully"); + f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive); + v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_parentIndex); + } + [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); } - } - - f_checkCseSimuStatus(); - - //Check to see if the resource is present or not - if (f_cse_isResourcePresent(v_resourceIndex)){ - setverdict(pass, __SCOPE__ & ":INFO: Resource created"); - } else { - setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); + [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while creating resource type " & int2str(enum2int(p_resourceType))); } - - // Postamble - f_cse_postamble_deleteResourcesCSE(); - - // Tear down - f_cf02DownCseSimuMaster(); - - return vc_response.primitive.responsePrimitive; - - }//end f_CSE_DMR_CRE_001_cseSimu + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); + } + } + + f_checkCseSimuStatus(); + + //Check to see if the resource is present or not + if (f_cse_isResourcePresent(v_resourceIndex)){ + setverdict(pass, __SCOPE__ & ":INFO: Resource created"); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); + } + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_DMR_CRE_001_cseSimu function f_CSE_DMR_CRE_002(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu return ResponsePrimitive{//system CseSystem { MRO system keyword not supported on functions in Titan @@ -2821,6 +2825,70 @@ module OneM2M_PermutationFunctions { f_cf01Down(); }//end f_CSE_DMR_CRE_017 + + function f_CSE_DMR_CRE_019(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseSimu{ + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_parentIndex := -1; + var integer v_resourceIndex := -1; + var integer v_aEAnncIndex := -1; + + // Test control + + // Test component configuration + f_cf04Up(); + + // Test adapter configuration + + // Preamble + vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); + + v_aEAnncIndex := f_cse_createResource_cseSimu(int10002, m_createAEAnnc(omit, omit, omit, PX_CSE1_ID), vc_remoteCseIndex); //AEAnnnc under RemoteCSE + + // Test Body + + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aEAnncIndex); + + mccPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mccPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(p_resourceType)) & " created successfully"); + f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive); + v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_aEAnncIndex); + } + [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while creating resource type " & int2str(enum2int(p_resourceType))); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); + } + } + + f_checkCseSimuStatus(); + + //Check to see if the resource is present or not + if (f_cse_isResourcePresent(v_resourceIndex)){ + setverdict(pass, __SCOPE__ & ":INFO: Resource created"); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); + } + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf04Down(); + + }//end f_CSE_DMR_CRE_019 function f_CSE_DMR_CRE_020(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template (present) RequestPrimitive p_requestAnnc) runs on AeSimu { @@ -5113,6 +5181,137 @@ module OneM2M_PermutationFunctions { } } //end function f_CSE_DMR_UPD_016 + + function f_CSE_DMR_UPD_017(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE REQUEST received"); + + if(match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1, e_hierarchical, e_spRelative)) or + match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1, e_nonHierarchical, e_spRelative))) { + setverdict(pass, __SCOPE__ & ":matching ANNC_PARENT_RESOURCE_ADDRESS"); + } else { + setverdict(fail, __SCOPE__ & ":mis-matching ANNC_PARENT_RESOURCE_ADDRESS"); + } + + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE REQUEST received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_DMR_UPD_017 + + function f_CSE_DMR_UPD_018(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + var ResponsePrimitive v_responsePrimitive; + var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit); + + v_create.primitiveContent.aE.announceTo := {PX_CSE_ID}; + + //Test control + + // Test component configuration + f_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + v_responsePrimitive := valueof(m_responsePrimitive(int2004,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.from_ := PX_CSE1_ID; + v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(m_response(v_responsePrimitive)); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_DMR_UPD_018 }//end group Update diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index 4a5e2e9b76750b543d4d78c7609609a8bd486faa..3f4e7fd99bb2fab430c30eb258fe0951b0fad024 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -502,6 +502,79 @@ module OneM2M_Testcases_CSE_Release_2 { } } + testcase TC_CSE_DMR_CRE_001_SUB_AEA() runs on Tester system CseSystem { + //Local variables + var template RequestPrimitive v_createRequest := m_createSubscriptionBase; + var ResponsePrimitive v_responsePrimitive; + var RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_CSE1_ID); + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_createRequest.primitiveContent.timeSeries.resourceName := omit; + v_cse1.start(f_CSE_DMR_CRE_001_cseSimu(int23, v_createRequest, int10002, v_createAEAnnc));//Subscription + v_cse1.done; + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_cse1); + if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + } + + testcase TC_CSE_DMR_CRE_001_CNT_AEA() runs on Tester system CseSystem { + //Local variables + var template RequestPrimitive v_createRequest := m_createContainerBase; + var ResponsePrimitive v_responsePrimitive; + var RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_CSE1_ID); + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_createRequest.primitiveContent.container.resourceName := omit; + v_cse1.start(f_CSE_DMR_CRE_001_cseSimu(int3, v_createRequest, int10002, v_createAEAnnc));//Container + v_cse1.done; + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_cse1); + if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + + } + + testcase TC_CSE_DMR_CRE_001_GRP_AEA() runs on Tester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createGroupBase; + var ResponsePrimitive v_responsePrimitive; + var RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_CSE1_ID); + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_createRequest.primitiveContent.group_.resourceName := omit; + v_cse1.start(f_CSE_DMR_CRE_001_cseSimu(int9, v_createRequest, int10002, v_createAEAnnc));//Group + v_cse1.done; + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_cse1); + if(not ispresent(v_responsePrimitive.primitiveContent.group_.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + } + + testcase TC_CSE_DMR_CRE_001_ACP_AEA() runs on Tester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createAcpBase; + var ResponsePrimitive v_responsePrimitive; + var RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_CSE1_ID); + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_createRequest.primitiveContent.accessControlPolicy.resourceName := omit; + v_cse1.start(f_CSE_DMR_CRE_001_cseSimu(int1, v_createRequest, int10002, v_createAEAnnc));//Access Control Policy + v_cse1.done; + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_cse1); + if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + } + testcase TC_CSE_DMR_CRE_001_NOD_CB() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createNodeBase; @@ -512,9 +585,7 @@ module OneM2M_Testcases_CSE_Release_2 { v_createRequest.primitiveContent.node.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int14, v_createRequest, -));//Node - v_ae1.done; - - + v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.node.resourceName)){ @@ -533,9 +604,7 @@ module OneM2M_Testcases_CSE_Release_2 { v_createRequest.primitiveContent.mgmtCmd.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int12, v_createRequest, -));//Management Command - v_ae1.done; - - + v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.mgmtCmd.resourceName)){ @@ -555,8 +624,6 @@ module OneM2M_Testcases_CSE_Release_2 { v_createRequest.primitiveContent.locationPolicy.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int10, v_createRequest, -));//Location Policy v_ae1.done; - - if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.locationPolicy.resourceName)){ @@ -576,8 +643,6 @@ module OneM2M_Testcases_CSE_Release_2 { v_createRequest.primitiveContent.statsConfig.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int22, v_createRequest, -));//Stats Config v_ae1.done; - - if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.statsConfig.resourceName)){ @@ -597,8 +662,6 @@ module OneM2M_Testcases_CSE_Release_2 { v_ae1.start(f_CSE_DMR_CRE_001(int21, v_createRequest, -));//Stats Collect v_ae1.done; - - if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.statsCollect.resourceName)){ @@ -618,8 +681,6 @@ module OneM2M_Testcases_CSE_Release_2 { v_createRequest.primitiveContent.m2mServiceSubscriptionProfile.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int11, v_createRequest, -));//Subscription Profile v_ae1.done; - - if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.m2mServiceSubscriptionProfile.resourceName)){ @@ -639,8 +700,6 @@ module OneM2M_Testcases_CSE_Release_2 { v_createRequest.primitiveContent.serviceSubscribedAppRule.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int19, v_createRequest, -));//Service Subscribed App v_ae1.done; - - if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.serviceSubscribedAppRule.resourceName)){ @@ -694,7 +753,7 @@ module OneM2M_Testcases_CSE_Release_2 { var CseSimu v_cse1 := CseSimu.create("CSE1") alive; v_createRequest.primitiveContent.timeSeries.resourceName := omit; - v_cse1.start(f_CSE_DMR_CRE_001_cseSimu(int29, v_createRequest));//TimeSeries + v_cse1.start(f_CSE_DMR_CRE_001_cseSimu(int29, v_createRequest, -, -));//TimeSeries v_cse1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_cse1); @@ -704,6 +763,24 @@ module OneM2M_Testcases_CSE_Release_2 { } } + testcase TC_CSE_DMR_CRE_001_TS_AEA() runs on Tester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createTimeSeriesBase; + var ResponsePrimitive v_responsePrimitive; + var RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_CSE1_ID); + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_createRequest.primitiveContent.timeSeries.resourceName := omit; + v_cse1.start(f_CSE_DMR_CRE_001_cseSimu(int29, v_createRequest, int10002, v_createAEAnnc));//TimeSeries + v_cse1.done; + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_cse1); + if(not ispresent(v_responsePrimitive.primitiveContent.timeSeries.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + } + testcase TC_CSE_DMR_CRE_001_TSI_TS() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createTimeSeriesInstanceBase; @@ -1813,6 +1890,77 @@ module OneM2M_Testcases_CSE_Release_2 { } // end g_CSE_DMR_CRE_017 + group g_CSE_DMR_CRE_019 { + + testcase TC_CSE_DMR_CRE_019_CNTA_AEA() runs on Tester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createContainerAnncBase; + var ResponsePrimitive v_responsePrimitive; + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_createRequest.primitiveContent.containerAnnc.resourceName := omit; + v_cse1.start(f_CSE_DMR_CRE_019(int10003, v_createRequest));//ContainerAnnc + v_cse1.done; + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_cse1); + if(not ispresent(v_responsePrimitive.primitiveContent.containerAnnc.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + } + + testcase TC_CSE_DMR_CRE_019_GRPA_AEA() runs on Tester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createGroupAnncBase; + var ResponsePrimitive v_responsePrimitive; + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_createRequest.primitiveContent.groupAnnc.resourceName := omit; + v_cse1.start(f_CSE_DMR_CRE_019(int10009, v_createRequest));//GroupAnnc + v_cse1.done; + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_cse1); + if(not ispresent(v_responsePrimitive.primitiveContent.groupAnnc.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + } + + testcase TC_CSE_DMR_CRE_019_ACPA_AEA() runs on Tester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createAcpAnncBase; + var ResponsePrimitive v_responsePrimitive; + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_createRequest.primitiveContent.accessControlPolicyAnnc.resourceName := omit; + v_cse1.start(f_CSE_DMR_CRE_019(int10001, v_createRequest));//AccessControlPolicyAnnc + v_cse1.done; + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_cse1); + if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicyAnnc.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + } + + testcase TC_CSE_DMR_CRE_019_TSA_AEA() runs on Tester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createTimeSeriesAnncBase; + var ResponsePrimitive v_responsePrimitive; + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_createRequest.primitiveContent.timeSeriesAnnc.resourceName := omit; + v_cse1.start(f_CSE_DMR_CRE_019(int10029, v_createRequest));//TimeSeriesAnnc + v_cse1.done; + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_cse1); + if(not ispresent(v_responsePrimitive.primitiveContent.timeSeriesAnnc.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + } + + } //end g_CSE_DMR_CRE_019 group g_CSE_DMR_CRE_020 { @@ -6742,7 +6890,179 @@ module OneM2M_Testcases_CSE_Release_2 { } } // end group g_CSE_DMR_UPD_016 + + group g_CSE_DMR_UPD_017 { + + /** + * @desc Check that the IUT updates successfully the value of the announceTo optional attribute of the RESOURCE_TYPE resource + */ + testcase TC_CSE_DMR_UPD_017_ACP() runs on Tester system CseSystem { + // Local variables + var MnCseSimu v_cse1 := MnCseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_DMR_UPD_017(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_DMR_UPD_017_CNT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + + v_updateRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_DMR_UPD_017(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_DMR_UPD_017_GRP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + + v_updateRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_DMR_UPD_017(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group + v_cse1.done; + } + + testcase TC_CSE_DMR_UPD_017_SCH() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createScheduleBase; + var template RequestPrimitive v_createRequestAnnc := mw_createScheduleAnncBase; + var template RequestPrimitive v_updateRequest := m_updateScheduleBase; + + v_updateRequest.primitiveContent.schedule.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_DMR_UPD_017(int18, v_createRequest, v_createRequestAnnc, v_updateRequest));//Schedule + v_cse1.done; + } + + testcase TC_CSE_DMR_UPD_017_TS() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createTimeSeriesBase; + var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnncBase; + var template RequestPrimitive v_updateRequest := m_updateTimeSeriesBase; + + v_updateRequest.primitiveContent.timeSeries.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_DMR_UPD_017(int29, v_createRequest, v_createRequestAnnc, v_updateRequest));//TimeSeries + v_cse1.done; + } + + testcase TC_CSE_DMR_UPD_017_TSI() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createTimeSeriesInstanceBase; + var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesInstanceAnncBase; + var template RequestPrimitive v_updateRequest := m_updateTimeSeriesInstanceBase; + + v_updateRequest.primitiveContent.timeSeriesInstance.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_DMR_UPD_017(int29, v_createRequest, v_createRequestAnnc, v_updateRequest));//TimeSeriesInstance + v_cse1.done; + } + + } //end group g_CSE_DMR_UPD_017 + + group g_CSE_DMR_UPD_018 { + + testcase TC_CSE_DMR_UPD_018_CNT_MBS() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnnc; + var XSD.NonNegativeInteger v_maxByteSize := 512; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize; + + v_createRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize; + + v_updateRequest.primitiveContent.container.announcedAttribute := {"maxByteSize"}; + + v_updateRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize; + + v_cse1.start(f_CSE_DMR_UPD_018(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container + v_cse1.done; + } + testcase TC_CSE_DMR_UPD_018_GRP_MT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateGroupAnnc; + var MemberType v_memberType := int3; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.group_.memberType := v_memberType; + + v_createRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType; + + v_updateRequest.primitiveContent.group_.announcedAttribute := {"memberType"}; + + v_updateRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType; + + v_cse1.start(f_CSE_DMR_UPD_018(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group + v_cse1.done; + } + + testcase TC_CSE_DMR_UPD_018_SCH_SE() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateGroupAnnc; + + v_createRequest.primitiveContent.schedule.announceTo := {PX_CSE1_ID}; + v_createRequestAnnc.primitiveContent.scheduleAnnc.scheduleElement := {{"0 0 0,1,2 1 1 * *"}};//Attribute 1 + + v_updateRequest.primitiveContent.schedule.announcedAttribute := {"scheduleElement"}; + v_updateRequestAnnc.primitiveContent.scheduleAnnc.scheduleElement := {{"1 1 1,2 1 1 * *"}}; //Attribute 1 + + v_cse1.start(f_CSE_DMR_UPD_018(int18, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group + v_cse1.done; + } + + testcase TC_CSE_DMR_UPD_018_TS_MBS() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createTimeSeriesBase; + var template RequestPrimitive v_createRequestAnnc := mw_createTimeSeriesAnncBase; + var template RequestPrimitive v_updateRequest := m_updateTimeSeriesBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateTimeSeriesAnnc; + var XSD.NonNegativeInteger v_maxByteSize := 512; + + v_createRequest.primitiveContent.timeSeries.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.timeSeries.maxByteSize := v_maxByteSize; + + v_createRequestAnnc.primitiveContent.timeSeriesAnnc.maxByteSize := v_maxByteSize; + + v_updateRequest.primitiveContent.timeSeries.announcedAttribute := {"maxByteSize"}; + + v_updateRequestAnnc.primitiveContent.timeSeriesAnnc.maxByteSize := v_maxByteSize; + + v_cse1.start(f_CSE_DMR_UPD_018(int29, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//TimeSeries + v_cse1.done; + } + + } //end group g_CSE_DMR_UPD_018 }//end group Update group Delete {