diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 87133a01b5d66e91b2742891c275b067f0d90a5f..59ec0e3e6a676be13c235689719c1ef6180509a9 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -1691,13 +1691,19 @@ module OneM2M_Functions { * @return Internal resource index of AE or -1 in case of failure * @verdict inconc if no AE registration request is received */ - function f_ae_preamble_registerAe() runs on CseSimu return integer { + function f_ae_preamble_registerAe(template UtTriggerPrimitive p_utRequest := m_create) runs on CseSimu return integer { var MsgIn v_request; var PrimitiveContent v_modifiedResource; var integer v_resourceIndex, v_parentIndex; var RequestPrimitive v_rp; - + + if(not(ispresent(p_utRequest.primitiveContent))) { + p_utRequest.primitiveContent.aE := m_contentCreateAe(omit, omit, omit, omit); + } + + f_sendUtPrimitive(p_utRequest); + tc_ac.start; alt { [] mcaPort.receive(mw_request(mw_createAe)) -> value v_request { @@ -1725,7 +1731,55 @@ module OneM2M_Functions { f_checkCseSimuStatus(); return v_resourceIndex; - } + }//end function f_ae_preamble_register + + + /** + * @desc Waits for Container create request and process it + * @return Internal resource index of Container or -1 in case of failure + * @verdict inconc if no Container create request is received + */ + function f_ae_preamble_createContainer(template UtTriggerPrimitive p_utRequest := m_create) runs on CseSimu return integer { + + var MsgIn v_request; + var PrimitiveContent v_modifiedResource; + var integer v_resourceIndex, v_parentIndex; + var RequestPrimitive v_rp; + + if(not(ispresent(p_utRequest.primitiveContent))) { + p_utRequest.primitiveContent.container := m_contentCreateContainer; + } + + f_sendUtPrimitive(p_utRequest); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_request(mw_createContainer(?,?))) -> value v_request { + tc_ac.stop; + + v_rp := v_request.primitive.requestPrimitive; + v_parentIndex := f_getResourceIndex(v_rp.to_); + v_resourceIndex := f_ae_createResource(v_rp.primitiveContent, v_parentIndex, v_rp.resourceType, v_modifiedResource); + if(v_resourceIndex != -1) { + mcaPort.send(m_response(m_responsePrimitive_content(int2001, v_rp.requestIdentifier, v_modifiedResource))); + setverdict(pass, __SCOPE__&":INFO: Container created successfuly"); + } + else { + mcaPort.send(m_response(m_responsePrimitive(int5000, v_request.primitive.requestPrimitive.requestIdentifier))); + setverdict(inconc, __SCOPE__&":INFO: Container creation failed"); + } + } + + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__&":INFO: Container create request not received"); + stop; + } + } + + f_checkCseSimuStatus(); + + return v_resourceIndex; + } //end function f_ae_preamble_createContainer } // end preambleFunctions @@ -2556,6 +2610,31 @@ module OneM2M_Functions { } + function f_sendUtPrimitive(template UtTriggerPrimitive p_utRequest) runs on Tester { + + p_utRequest.from_ := "UNINITIALIZED"; + p_utRequest.requestIdentifier := "m_uttriggerPrimitive" & f_rnd(1, 1000000); + + utPort.send(valueof(p_utRequest)); + + tc_wait.start; + alt{ + [] utPort.receive(mw_utResponseOK) { + tc_wait.stop; + setverdict(pass, __SCOPE__, " : Triggering message is successfully received!"); + } + [] utPort.receive(mw_utResponseKO) { + tc_wait.stop; + setverdict(inconc, __SCOPE__, " : Error while receiving Triggering message!"); + } + [] tc_wait.timeout{ + setverdict(inconc, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + } + + group AltstepFunctions { /** diff --git a/LibOneM2M/OneM2M_Pics.ttcn b/LibOneM2M/OneM2M_Pics.ttcn index c2974733f8c28f1cb46d89b551036e1a0d025c14..3755ac9344b3b620bfc736c2bf9481b4715d37a0 100644 --- a/LibOneM2M/OneM2M_Pics.ttcn +++ b/LibOneM2M/OneM2M_Pics.ttcn @@ -22,5 +22,9 @@ module OneM2M_Pics { modulepar boolean PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT := true; modulepar boolean PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT := true; + modulepar boolean PICS_PRIMITIVE_SCOPE_CSE_RELATIVE := true; + modulepar boolean PICS_PRIMITIVE_SCOPE_SP_RELATIVE := true; + modulepar boolean PICS_PRIMITIVE_SCOPE_ABSOLUTE := true; + } // end of module diff --git a/LibOneM2M/OneM2M_Ports.ttcn b/LibOneM2M/OneM2M_Ports.ttcn index bc714dc4054ea6037393149b7e26ba7688e124e3..ffac6b7655e85c8a5bbb4d3aa23c74cf75290fd0 100644 --- a/LibOneM2M/OneM2M_Ports.ttcn +++ b/LibOneM2M/OneM2M_Ports.ttcn @@ -52,4 +52,15 @@ module OneM2M_Ports { RequestPrimitive, ResponsePrimitive, PrimitiveContent, MyResource; } + + /** + * @desc Port to transport control commands to Upper Tester Application + */ + type port UpperTesterPort message { + in + UtTriggerAckPrimitive; + out + UtTriggerPrimitive; + } + }//end module diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index cab7b81204e2728d381f20bdc55bc3ce08fff8a2..c2bc68ab8b2c625ec06ea06b4891839dee0d8c1b 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -120,6 +120,32 @@ module OneM2M_Templates { filterCriteria := omit, discoveryResultType := omit }; + + /** + * @desc Base Receive RETRIEVE request primitive + * @param p_targetResourceAddress Target resource address + */ + template RequestPrimitive mw_retrieveResource(XSD.ID p_targetResourceAddress) := { + operation := int2, + to_ := p_targetResourceAddress, + from_ := ?, + requestIdentifier := ?, + resourceType := ?, + primitiveContent := ?, + role := *, + originatingTimestamp := *, + requestExpirationTimestamp := *, + resultExpirationTimestamp := *, + operationExecutionTime := *, + responseType := *, + resultPersistence := *, + resultContent := *, + eventCategory := *, + deliveryAggregation := *, + groupRequestIdentifier := *, + filterCriteria := *, + discoveryResultType := * + }; /** * @desc RETRIEVE request primitive for a single attribute in To field ("targetResourceAddress#AttributeName") @@ -315,6 +341,29 @@ module OneM2M_Templates { filterCriteria := omit, discoveryResultType := omit }; + + + template RequestPrimitive mw_update(template XSD.ID p_from := *, template XSD.ID p_to := ?) := { + operation := int3, + to_ := p_to, + from_ := p_from, + requestIdentifier := ?, + resourceType := ?, + primitiveContent:= ?, + role := *, + originatingTimestamp := *, + requestExpirationTimestamp := *, + resultExpirationTimestamp := *, + operationExecutionTime := *, + responseType := *, + resultPersistence := *, + resultContent := *, + eventCategory := *, + deliveryAggregation := *, + groupRequestIdentifier := *, + filterCriteria := *, + discoveryResultType := * + }; /** * @desc Base UPDATE request primitive for Ae resource @@ -323,6 +372,16 @@ module OneM2M_Templates { requestIdentifier := "m_updateAe", primitiveContent:= {aE := m_contentUpdateAe} }; + + + /** + * @desc Reception template for update Ae resource + */ + template RequestPrimitive mw_updateAe(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := { + resourceType := int2, + primitiveContent:= {aE := ?} + }; + /** * @desc Base UPDATE request primitive for Container resource @@ -332,6 +391,14 @@ module OneM2M_Templates { primitiveContent:= {container := m_contentUpdateContainer} }; + /** + * @desc Base Reception template for update Container + */ + template RequestPrimitive mw_updateContainer(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := { + resourceType := int3, + primitiveContent := {container := ?} + }; + /** * @desc Base UPDATE request primitive for ContentInstance resource */ @@ -505,9 +572,9 @@ module OneM2M_Templates { /** * @desc Reception template for AE registration */ - template RequestPrimitive mw_createAe(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + template RequestPrimitive mw_createAe(template XSD.ID p_from := *, template XSD.ID p_to := ?, template AE_optional p_ae := ?) modifies mw_create := { resourceType := int2, - primitiveContent := {aE := ?} + primitiveContent := {aE := p_ae} }; template (value) RequestPrimitive m_createAeAux(template (omit) AcpType p_accessControlPolicyIds := omit, in template (omit) PoaList p_poaList) modifies m_create := { @@ -656,7 +723,15 @@ module OneM2M_Templates { template RequestPrimitive mw_createContentInstanceAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { resourceType := int10014, primitiveContent := {contentInstanceAnnc := ?} - }; + }; + + /** + * @desc Reception template for CREATE ContentInstance + */ + template RequestPrimitive mw_createContentInstance(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + resourceType := int4, + primitiveContent := {contentInstance := ?} + }; /** * @desc Base Reception template for CREATE ContentInstanceAnnc @@ -861,6 +936,14 @@ module OneM2M_Templates { resourceType := int23, primitiveContent := {subscription := m_contentCreateSubscription (p_notificationURI, p_name)} }; + + /** + * @desc Reception template for CREATE Subscription + */ + template RequestPrimitive mw_createSubscription(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := { + resourceType := int23, + primitiveContent := {subscription := ?} + }; template (value) RequestPrimitive m_createSubscriptionAdvanced( XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_name := omit, @@ -967,14 +1050,86 @@ module OneM2M_Templates { filterCriteria := omit, discoveryResultType := omit }; + + template RequestPrimitive mw_deleteRequest(template XSD.ID p_resourceAddress := ?) := { + operation := int4, + to_ := p_resourceAddress, + from_ := ?, + requestIdentifier := ?, + resourceType := *, + primitiveContent := *, + role := *, + originatingTimestamp := *, + requestExpirationTimestamp := *, + resultExpirationTimestamp := *, + operationExecutionTime := *, + responseType := *, + resultPersistence := *, + resultContent := *, + eventCategory := *, + deliveryAggregation := *, + groupRequestIdentifier := *, + filterCriteria := *, + discoveryResultType := * + }; }//end group Delete group Notify { - - /** + + /** * @desc Base NOTIFY request primitive */ + template RequestPrimitive m_notifyRequest := { + operation := int5, + to_ := "NotInitialized", + from_ := omit, + requestIdentifier := testcasename() & "-m_notifyRequest" & f_rnd(1, 1000000), + resourceType := omit, + primitiveContent := {notification := m_contentCreateNotification_allOmit}, + role := omit, + originatingTimestamp := omit, + requestExpirationTimestamp := omit, + resultExpirationTimestamp := omit, + operationExecutionTime := omit, + responseType := omit, + resultPersistence := omit, + resultContent := omit, + eventCategory := omit, + deliveryAggregation := omit, + groupRequestIdentifier := omit, + filterCriteria := omit, + discoveryResultType := omit + }; + + /** + * @desc Base NOTIFY Aggregated request primitive + */ + template RequestPrimitive m_notifyAggregatedRequest := { + operation := int5, + to_ := "NotInitialized", + from_ := omit, + requestIdentifier := testcasename() & "-m_notifyAggregatedRequest" & f_rnd(1, 1000000), + resourceType := omit, + primitiveContent := {aggregatedNotification := {notification_list := {m_contentCreateNotification_allOmit,m_contentCreateNotification_allOmit}}}, + role := omit, + originatingTimestamp := omit, + requestExpirationTimestamp := omit, + resultExpirationTimestamp := omit, + operationExecutionTime := omit, + responseType := omit, + resultPersistence := omit, + resultContent := omit, + eventCategory := omit, + deliveryAggregation := omit, + groupRequestIdentifier := omit, + filterCriteria := omit, + discoveryResultType := omit + }; + + /** + * @desc Base NOTIFY request primitive + */ template RequestPrimitive mw_notifyBase := { operation := int5, to_ := ?, @@ -1038,6 +1193,22 @@ module OneM2M_Templates { group ContentCreate { + template PrimitiveContent m_primitiveContentAe(template AE_optional p_ae) := { + aE := p_ae + } + + template PrimitiveContent m_primitiveContentContainer(template Container_optional p_container) := { + container := p_container + } + + template PrimitiveContent m_primitiveContentContentInstance(template ContentInstance_optional p_contentInstance) := { + contentInstance := p_contentInstance + } + + template PrimitiveContent m_primitiveContentCSEBase(template CSEBase_optional p_cSEBase) := { + cSEBase := p_cSEBase + } + template PrimitiveContent mw_primitiveContent := ?; /** @@ -1595,7 +1766,7 @@ module OneM2M_Templates { ontologyRef := omit,//O content := p_primitiveContent//M }; - + /** * @desc Base primitiveContent for CREATE operation for ContentInstanceAnnc resource * @param p_primitiveContent Content for the ContentInstanceAnnc @@ -1784,6 +1955,22 @@ module OneM2M_Templates { notificationForwardingURI := p_notifForwardingURI }; + template (value) Notification m_contentCreateNotification_allOmit := { + notificationEvent := { + representation := omit, + operationMonitor := { + operation := omit, + originator := omit + }, + notificationEventType := omit + }, + verificationRequest := omit, + subscriptionDeletion := omit, + subscriptionReference := omit, + creator := omit, + notificationForwardingURI := omit + }; + /** * @desc Base primitiveContent for CREATE operation for StatConfig resource * @param p_primitiveConten t Content for the StatConfig @@ -2180,7 +2367,39 @@ module OneM2M_Templates { } }//end group ContentUpdate - + + group RequestContent { + + group CreateRequest { + + } + + group UpdateRequest { + + template AE_optional mw_contentAeUpdateRequest modifies mw_contentAe_any := { + resourceName := omit,//NP + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + app_ID := omit,//NP + aE_ID := omit//NP + }; + + template Container_optional mw_contentContainerUpdateRequest modifies mw_contentContainer_any := { + resourceName := omit,//NP + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit//NP + }; + + }//End of group UpdateRequest + + }//end of group RequestContent + group ResponseContent { template AE_optional mw_contentAeBase := { @@ -2821,6 +3040,11 @@ module OneM2M_Templates { subscriberURI := omit,//O choice := omit//O } + + template Subscription_optional m_contentSubscription modifies m_contentSubscription_allOmit := { + resourceType := int23 //M + } + template Subscription_optional mw_contentSubscription_rc1 modifies mw_contentSubscriptionBase := { choice := omit //O } @@ -2898,6 +3122,25 @@ module OneM2M_Templates { template ContentInstance_optional mw_contentContentInstance_rc1 modifies mw_contentContentInstanceBase := { } + template ContentInstance_optional m_contentContentInstance_allOmit := { + resourceName := omit,//M + resourceType := omit,//M + resourceID := omit,//M + parentID := omit,//M + creationTime := omit,//M + lastModifiedTime := omit,//M + labels := omit ,//O + expirationTime := omit,//M + announceTo := omit,//O + announcedAttribute := omit,//O + stateTag := omit,//M + creator := omit,//O + contentInfo := omit,//O + contentSize := omit,//M + ontologyRef := omit,//O + content := omit//M + }; + template Container_optional mw_contentContainerBase := { resourceName := ?,//M resourceType := ?,//M @@ -3130,6 +3373,52 @@ module OneM2M_Templates { group SpecialContents { + template (value) AE_optional m_contentCreateAe_Invalid := { + resourceName := omit,//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 + announceTo := omit,//O + announcedAttribute := omit,//O + appName := omit,//O + app_ID := omit,//M + aE_ID := omit,//NP + pointOfAccess := omit, //O + ontologyRef := omit,//O + nodeLink := omit,//NP + requestReachability := omit,//M + contentSerialization := omit,//O + choice := omit//NP + }; + + template AE_optional mw_contentCreateAe_invalid := { + resourceName := *,//O + resourceType := *,//NP + resourceID := *,//NP + parentID := *,//NP + creationTime := *,//NP + lastModifiedTime := *,//NP + labels := *,//O + accessControlPolicyIDs := *,//O + expirationTime := *,//O + announceTo := *,//O + announcedAttribute := *,//O + appName := *,//O + app_ID := omit,//M + aE_ID := *,//NP + pointOfAccess := *, //O + ontologyRef := *,//O + nodeLink := *,//NP + requestReachability := omit,//M + contentSerialization := *,//O + choice := *//NP + }; + template (value) AE_update_invalid m_contentUpdateAe_invalid := { resourceName := omit,//M resourceType := omit,//M @@ -3384,7 +3673,160 @@ module OneM2M_Templates { }//end group InfoPortTemplates }//end group ResponsePrimitives - + + group UpperTester { + template (value) UtTriggerPrimitive m_utCreate := { + operation := int1, + to_ := "NotInitialized", + from_ := "NotInitialized", + requestIdentifier := testcasename() & "-m_utCreate" & f_rnd(1, 1000000), + resourceType := omit, + primitiveContent := omit, + role := omit, + originatingTimestamp := omit, + requestExpirationTimestamp := omit, + resultExpirationTimestamp := omit, + operationExecutionTime := omit, + responseType := omit, + resultPersistence := omit, + resultContent := omit, + eventCategory := omit, + deliveryAggregation := omit, + groupRequestIdentifier := omit, + filterCriteria := omit, + discoveryResultType := omit + }; + + template (value) UtTriggerPrimitive m_utCreateContainer modifies m_utCreate := { + requestIdentifier := testcasename() & "-m_utCreateContainer" & f_rnd(1, 1000000), + resourceType := int3, + primitiveContent := {container := m_contentContainer_allOmit} + } + + template (value) UtTriggerPrimitive m_utCreateContentInstance modifies m_utCreate := { + requestIdentifier := testcasename() & "-m_utCreateContentInstance" & f_rnd(1, 1000000), + resourceType := int4, + primitiveContent := {contentInstance := m_contentContentInstance_allOmit} + } + + template (value) UtTriggerPrimitive m_utCreateSubscription modifies m_utCreate := { + requestIdentifier := testcasename() & "-m_utCreateSubscription" & f_rnd(1, 1000000), + resourceType := int23, + primitiveContent := {subscription := m_contentSubscription} + } + + template (value) UtTriggerPrimitive m_utRetrieveResource(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) := { + operation := int2, + to_ := p_targetResourceAddress, + from_ := p_originator, + requestIdentifier := "m_utRetrieveResource" & f_rnd(1, 1000000), + resourceType := omit, + primitiveContent := omit, + role := omit, + originatingTimestamp := omit, + requestExpirationTimestamp := omit, + resultExpirationTimestamp := omit, + operationExecutionTime := omit, + responseType := omit, + resultPersistence := omit, + resultContent := omit, + eventCategory := omit, + deliveryAggregation := omit, + groupRequestIdentifier := omit, + filterCriteria := omit, + discoveryResultType := omit + }; + + template (value) UtTriggerPrimitive m_utUpdate := { + operation := int3, + to_ := "NotInitialized", + from_ := "NotInitialized", + requestIdentifier := testcasename() & "-m_utUpdate" & f_rnd(1, 1000000), + resourceType := omit, + primitiveContent := omit, + role := omit, + originatingTimestamp := omit, + requestExpirationTimestamp := omit, + resultExpirationTimestamp := omit, + operationExecutionTime := omit, + responseType := omit, + resultPersistence := omit, + resultContent := omit, + eventCategory := omit, + deliveryAggregation := omit, + groupRequestIdentifier := omit, + filterCriteria := omit, + discoveryResultType := omit + }; + + template (value) UtTriggerPrimitive m_utUpdateContainer modifies m_utUpdate := { + requestIdentifier := testcasename() & "-m_utUpdateContainer" & f_rnd(1, 1000000), + resourceType := int3, + primitiveContent := {container := m_contentUpdateContainer} + } + + template (value) UtTriggerPrimitive m_utDeleteRequest := { + operation := int4, + to_ := "NotInitialized", + from_ := "NotInitialized", + requestIdentifier := testcasename() & "-m_utDeleteRequest" & f_rnd(1, 1000000), + resourceType := omit, + primitiveContent := omit, + role := omit, + originatingTimestamp := omit, + requestExpirationTimestamp := omit, + resultExpirationTimestamp := omit, + operationExecutionTime := omit, + responseType := omit, + resultPersistence := omit, + resultContent := omit, + eventCategory := omit, + deliveryAggregation := omit, + groupRequestIdentifier := omit, + filterCriteria := omit, + discoveryResultType := omit + }; + + template (value) UtTriggerPrimitive m_utDeleteResource(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) modifies m_utDeleteRequest := { + to_ := p_targetResourceAddress, + from_ := p_originator + }; + + + + template UtTriggerAckPrimitive mw_utResponseOK := { + responseStatusCode := int2000, + requestIdentifier := ?, + primitiveContent := *, + to_ := *, + from_ := *, + originatingTimestamp := *, + resultExpirationTimestamp := *, + eventCategory := * + } + + template UtTriggerAckPrimitive mw_utResponseKO := { + responseStatusCode := int4000, + requestIdentifier := ?, + primitiveContent := *, + to_ := *, + from_ := *, + originatingTimestamp := *, + resultExpirationTimestamp := *, + eventCategory := * + } + + template UtTriggerAckPrimitive mw_utResponse(ResponseStatusCode p_statusCode) := { + responseStatusCode := p_statusCode, + requestIdentifier := ?, + primitiveContent := *, + to_ := *, + from_ := *, + originatingTimestamp := *, + resultExpirationTimestamp := *, + eventCategory := * + } + } } // end of module \ No newline at end of file diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn index 9350a91643ea9c9f96b693211fe7a3a102ef2240..fba9863c0c923ba1dda92c6d58613ae266b497e4 100644 --- a/LibOneM2M/OneM2M_TestSystem.ttcn +++ b/LibOneM2M/OneM2M_TestSystem.ttcn @@ -25,6 +25,7 @@ module OneM2M_TestSystem { type component Tester { port AdapterControlPort acPort; port InfoPort infoPort; + port UpperTesterPort utPort; //timers timer tc_ac := PX_TAC; timer tc_wait; diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn index 471d9a4c35f1ef9d74ffb70699f8f40e2b032a42..71125c36ac2172260388f222752b50348c176062 100644 --- a/LibOneM2M/OneM2M_Types.ttcn +++ b/LibOneM2M/OneM2M_Types.ttcn @@ -4130,6 +4130,10 @@ module OneM2M_Types { with { encode "adapter"; } + + type RequestPrimitive UtTriggerPrimitive; + + type ResponsePrimitive UtTriggerAckPrimitive; type record AttributeAux { XSD.NCName name, diff --git a/OneM2M_Testcases_AE.ttcn b/OneM2M_Testcases_AE.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..1e90fefca4deb8cb2092551e835d7f5ec9444295 --- /dev/null +++ b/OneM2M_Testcases_AE.ttcn @@ -0,0 +1,2394 @@ +/** + * Copyright Notification + * No part of this document may be reproduced, in an electronic retrieval system or otherwise, except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * © 2016, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TSDSI, TTA, TTC). + * All rights reserved. + * + * @author ETSI + * @version $URL: https://oldforge.etsi.org/svn/oneM2M/branches/Release1/ttcn/OneM2M_Testcases.ttcn $ + * $Id: OneM2M_Testcases.ttcn 347 2017-08-11 08:48:20Z reinaortega $ + * @desc Module containing test cases for oneM2M + * + */ +module OneM2M_Testcases_AE { + + import from OneM2M_TestSystem all; + import from OneM2M_Templates all; + import from OneM2M_Types all;//{type XSD.ID}; + import from OneM2M_TypesAndValues all; + import from OneM2M_Pixits all; + import from LibCommon_Time all; + import from OneM2M_Pics all; + import from OneM2M_Functions all; + import from XSD all; + + group AE { + + group General { + + group Create { + + group g_AE_GEN_CRE_001 { + + /** + * @desc Check that the IUT sends the creation of a <container> resource using unstructured resource identifier + */ + + testcase TC_AE_GEN_CRE_001_CSR() runs on CseSimu system AeSystem { + + // Test control + if(not(PICS_PRIMITIVE_SCOPE_CSE_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_CRE_001(e_cseRelative); + } + + testcase TC_AE_GEN_CRE_001_SPR() runs on CseSimu system AeSystem { + + // Test control + if(not(PICS_PRIMITIVE_SCOPE_SP_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Unstructured-SP-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_CRE_001(e_spRelative); + } + + testcase TC_AE_GEN_CRE_001_ABS() runs on CseSimu system AeSystem { + + // Test control + if(not(PICS_PRIMITIVE_SCOPE_ABSOLUTE)) { + setverdict(inconc, __SCOPE__, ": Unstructured-Absolute-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_CRE_001(e_absolute); + } + + function f_AE_GEN_CRE_001(PrimitiveScope p_primitiveScope) runs on CseSimu { + + var ResponsePrimitive v_responsePrimtive; + var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; + var UtTriggerAckPrimitive v_trigger_response; + + if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { + setverdict(inconc, __SCOPE__, ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_cf03Up(); + + //Send Trigger Message + v_utRequest.to_ := f_getResourceAddress(-1, e_nonHierarchical, p_primitiveScope); + v_utRequest.from_ := "UNINITIALIZED"; + f_sendUtPrimitive(v_utRequest); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_request(mw_createContainer(omit,v_utRequest.to_))) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Container creation request received successfuly"); + + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(?)) { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Error while creating container"); + stop; + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__, " : No answer while creating resource"); + stop; + } + } + + // Postamble + f_cf03Down(); + } + }//end group g_AE_GEN_CRE_002//end group g_AE_GEN_CRE_002 + + group g_AE_GEN_CRE_002 { + + /** + * @desc Check that the IUT sends the creation of a <container> resource using structured resource identifier + */ + + testcase TC_AE_GEN_CRE_002_CSR() runs on CseSimu system AeSystem { + + if(not(PICS_PRIMITIVE_SCOPE_CSE_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_CRE_002(e_cseRelative); + } + + testcase TC_AE_GEN_CRE_002_SPR() runs on CseSimu system AeSystem { + + if(not(PICS_PRIMITIVE_SCOPE_SP_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Structured-SP-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_CRE_002(e_spRelative); + } + + testcase TC_AE_GEN_CRE_002_ABS() runs on CseSimu system AeSystem { + + if(not(PICS_PRIMITIVE_SCOPE_ABSOLUTE)) { + setverdict(inconc, __SCOPE__, ": Structured-Absolute-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_CRE_002(e_absolute); + } + + function f_AE_GEN_CRE_002(PrimitiveScope p_primitiveScope) runs on CseSimu { + + var ResponsePrimitive v_responsePrimtive; + var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; + var UtTriggerAckPrimitive v_trigger_response; + + //Test Control + if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { + setverdict(inconc, __SCOPE__, ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_cf03Up(); + + //Send Trigger Message + v_utRequest.to_ := f_getResourceAddress(-1, e_hierarchical, p_primitiveScope); + v_utRequest.from_ := "UNINITIALIZED"; + f_sendUtPrimitive(v_utRequest); + + + tc_ac.start; + alt { + [] mcaPort.receive(mw_request(mw_createContainer(omit,v_utRequest.to_))) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Container creation request received successfuly"); + + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(?)) { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Error while creating container"); + stop; + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__, " : No answer while creating resource"); + stop; + } + } + + // Postamble + f_cf03Down(); + } + + } //end group g_AE_GEN_CRE_002 + + } //end group Create + + group Update { + + group g_AE_GEN_UPD_001 { + + /** + * @desc Check that the IUT sends the update of a <container> resource using unstructured resource identifier + */ + + testcase TC_AE_GEN_UPD_001_CSR() runs on CseSimu system AeSystem { + + // Test control + if(not(PICS_PRIMITIVE_SCOPE_CSE_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_UPD_001(e_cseRelative); + } + + testcase TC_AE_GEN_UPD_001_SPR() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_SP_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Unstructured-SP-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_UPD_001(e_spRelative); + } + + testcase TC_AE_GEN_UPD_001_ABS() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_ABSOLUTE)) { + setverdict(inconc, __SCOPE__, ": Unstructured-Absolute-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_UPD_001(e_absolute); + } + + function f_AE_GEN_UPD_001(PrimitiveScope p_primitiveScope) runs on CseSimu { + + var ResponsePrimitive v_responsePrimtive; + var template UtTriggerPrimitive v_utRequest := m_utUpdateContainer; + var UtTriggerAckPrimitive v_trigger_response; + var integer v_auxInteger; + + if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { + setverdict(inconc, __SCOPE__, ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_cf03Up(); + + //Send Trigger Message + v_auxInteger := f_setResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), int3); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger, e_nonHierarchical, p_primitiveScope); + v_utRequest.from_ := "UNINITIALIZED"; + f_sendUtPrimitive(v_utRequest); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_request(mw_updateContainer(omit,v_utRequest.to_))) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Container update request received successfuly"); + + v_responsePrimtive := valueof(m_responsePrimitive(int2004, "To_be_defined", omit)); + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(?)) { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Error while updating container"); + stop; + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__, " : No answer while updating resource"); + stop; + } + } + + // Postamble + f_cf03Down(); + } + }//end group g_AE_GEN_UPD_001 + + group g_AE_GEN_UPD_002 { + + /** + * @desc Check that the IUT sends the update of a <container> resource using structured resource identifier + */ + + testcase TC_AE_GEN_UPD_002_CSR() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_CSE_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_UPD_002(e_cseRelative); + } + + testcase TC_AE_GEN_UPD_002_SPR() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_SP_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Structured-SP-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_UPD_002(e_spRelative); + } + + testcase TC_AE_GEN_UPD_002_ABS() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_ABSOLUTE)) { + setverdict(inconc, __SCOPE__, ": Structured-Absolute-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_UPD_002(e_absolute); + } + + function f_AE_GEN_UPD_002(PrimitiveScope p_primitiveScope) runs on CseSimu { + + var ResponsePrimitive v_responsePrimtive; + var template UtTriggerPrimitive v_utRequest := m_utUpdateContainer; + var UtTriggerAckPrimitive v_trigger_response; + var integer v_auxInteger; + + if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { + setverdict(inconc, __SCOPE__, ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_cf03Up(); + + //Send Trigger Message + v_auxInteger := f_setResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), int3); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger, e_hierarchical, p_primitiveScope); + v_utRequest.from_ := "UNINITIALIZED"; + f_sendUtPrimitive(v_utRequest); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_request(mw_updateContainer(omit,v_utRequest.to_))) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Container update request received successfuly"); + + v_responsePrimtive := valueof(m_responsePrimitive(int2004, "To_be_defined", omit)); + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(?)) { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Error while updating container"); + stop; + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__, " : No answer while updating resource"); + stop; + } + } + + // Postamble + f_cf03Down(); + } + + } //end group g_AE_GEN_UPD_002 + + } //end group Update + + group Retrieve { + + group g_AE_GEN_RET_001 { + + /** + * @desc Check that the IUT sends the retrieval of a <container> resource using unstructured resource identifier + */ + + testcase TC_AE_GEN_RET_001_CSR() runs on CseSimu system AeSystem { + + // Test control + if(not(PICS_PRIMITIVE_SCOPE_CSE_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_RET_001(e_cseRelative); + } + + testcase TC_AE_GEN_RET_001_SPR() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_SP_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Unstructured-SP-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_RET_001(e_spRelative); + } + + testcase TC_AE_GEN_RET_001_ABS() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_ABSOLUTE)) { + setverdict(inconc, __SCOPE__, ": Unstructured-Absolute-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_RET_001(e_absolute); + } + + function f_AE_GEN_RET_001(PrimitiveScope p_primitiveScope) runs on CseSimu { + + var ResponsePrimitive v_responsePrimtive; + var template UtTriggerPrimitive v_utRequestTemplate; + var UtTriggerPrimitive v_utRequest; + var UtTriggerAckPrimitive v_trigger_response; + var integer v_auxInteger; + + if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { + setverdict(inconc, __SCOPE__, ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_cf03Up(); + + //Send Trigger Message + v_auxInteger := f_setResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), int3); + v_utRequestTemplate := m_utRetrieveResource(f_getResourceAddress(v_auxInteger, e_nonHierarchical, p_primitiveScope),"UNINITIALIZED"); + f_sendUtPrimitive(v_utRequestTemplate); + v_utRequest := valueof(v_utRequestTemplate); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_request(mw_retrieveResource(v_utRequest.to_))) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Container retrieve request received successfuly"); + + v_responsePrimtive := valueof(m_responsePrimitive(int2000, "To_be_defined", omit)); + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(?)) { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Error while retrieving container"); + stop; + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__, " : No answer while retrieving resource"); + stop; + } + } + + // Postamble + f_cf03Down(); + } + }//end group g_AE_GEN_RET_001 + + group g_AE_GEN_RET_002 { + + /** + * @desc Check that the IUT sends the retrieval of a <container> resource using structured resource identifier + */ + + testcase TC_AE_GEN_RET_002_CSR() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_CSE_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_RET_002(e_cseRelative); + } + + testcase TC_AE_GEN_RET_002_SPR() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_SP_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Structured-SP-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_UPD_002(e_spRelative); + } + + testcase TC_AE_GEN_RET_002_ABS() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_ABSOLUTE)) { + setverdict(inconc, __SCOPE__, ": Structured-Absolute-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_RET_002(e_absolute); + } + + function f_AE_GEN_RET_002(PrimitiveScope p_primitiveScope) runs on CseSimu { + + var ResponsePrimitive v_responsePrimtive; + var template UtTriggerPrimitive v_utRequestTemplate; + var UtTriggerPrimitive v_utRequest; + var UtTriggerAckPrimitive v_trigger_response; + var integer v_auxInteger; + + if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { + setverdict(inconc, __SCOPE__, ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_cf03Up(); + + //Send Trigger Message + v_auxInteger := f_setResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), int3); + v_utRequestTemplate := m_utRetrieveResource(f_getResourceAddress(v_auxInteger, e_hierarchical, p_primitiveScope),"UNINITIALIZED"); + v_utRequest := valueof(v_utRequestTemplate); + f_sendUtPrimitive(v_utRequest); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_request(mw_retrieveResource(v_utRequest.to_))) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Container retrieve request received successfuly"); + + v_responsePrimtive := valueof(m_responsePrimitive(int2000, "To_be_defined", omit)); + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(?)) { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Error while retrieving container"); + stop; + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__, " : No answer while retrieving resource"); + stop; + } + } + + // Postamble + f_cf03Down(); + } + + } //end group g_AE_GEN_RET_002 + + } //end group Retrieve + + group Delete { + + group g_AE_GEN_DEL_001 { + + /** + * @desc Check that the IUT sends the deletion of a <container> resource using unstructured resource identifier + */ + + testcase TC_AE_GEN_DEL_001_CSR() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_CSE_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_DEL_001(e_cseRelative); + } + + testcase TC_AE_GEN_DEL_001_SPR() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_SP_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Unstructured-SP-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_DEL_001(e_spRelative); + } + + testcase TC_AE_GEN_DEL_001_ABS() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_ABSOLUTE)) { + setverdict(inconc, __SCOPE__, ": Unstructured-Absolute-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_DEL_001(e_absolute); + } + + function f_AE_GEN_DEL_001(PrimitiveScope p_primitiveScope) runs on CseSimu { + + var ResponsePrimitive v_responsePrimtive; + var template UtTriggerPrimitive v_utRequest := m_utDeleteRequest; + var UtTriggerAckPrimitive v_trigger_response; + var integer v_auxInteger; + + if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { + setverdict(inconc, __SCOPE__, ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_cf03Up(); + + //Send Trigger Message + v_auxInteger := f_setResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), int3); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger, e_nonHierarchical, p_primitiveScope); + v_utRequest.from_ := "UNINITIALIZED"; + f_sendUtPrimitive(v_utRequest); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_request(mw_deleteRequest(v_utRequest.to_))) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Container update request received successfuly"); + + v_responsePrimtive := valueof(m_responsePrimitive(int2004, "To_be_defined", omit)); + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(?)) { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Error while updating container"); + stop; + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__, " : No answer while updating resource"); + stop; + } + } + + // Postamble + f_cf03Down(); + } + }//end group g_AE_GEN_DEL_001 + + group g_AE_GEN_DEL_002 { + + /** + * @desc Check that the IUT sends the deletion of a <container> resource using structured resource identifier + */ + + testcase TC_AE_GEN_DEL_002_CSR() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_CSE_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_DEL_002(e_cseRelative); + } + + testcase TC_AE_GEN_DEL_002_SPR() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_SP_RELATIVE)) { + setverdict(inconc, __SCOPE__, ": Structured-SP-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_DEL_002(e_spRelative); + } + + testcase TC_AE_GEN_DEL_002_ABS() runs on CseSimu system AeSystem { + + //Test control + if(not(PICS_PRIMITIVE_SCOPE_ABSOLUTE)) { + setverdict(inconc, __SCOPE__, ": Structured-Absolute-Resource-ID format support is required to run this test case"); + stop; + } + + f_AE_GEN_DEL_002(e_absolute); + } + + function f_AE_GEN_DEL_002(PrimitiveScope p_primitiveScope) runs on CseSimu { + + var ResponsePrimitive v_responsePrimtive; + var template UtTriggerPrimitive v_utRequest := m_utDeleteRequest; + var UtTriggerAckPrimitive v_trigger_response; + var integer v_auxInteger; + + if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { + setverdict(inconc, __SCOPE__, ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + f_cf03Up(); + + //Send Trigger Message + v_auxInteger := f_setResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), int3); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger, e_hierarchical, p_primitiveScope); + v_utRequest.from_ := "UNINITIALIZED"; + f_sendUtPrimitive(v_utRequest); + + + tc_ac.start; + alt { + [] mcaPort.receive(mw_request(mw_deleteRequest(v_utRequest.to_))) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Container update request received successfuly"); + + v_responsePrimtive := valueof(m_responsePrimitive(int2004, "To_be_defined", omit)); + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(?)) { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Error while updating container"); + stop; + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__, " : No answer while updating resource"); + stop; + } + } + + // Postamble + f_cf03Down(); + } + + } //end group g_AE_GEN_DEL_002 + + } //end group Delete + + }//end group General + + group Registration { + + group Create { + + /** + * @desc Check that the IUT sends an AE initial registration request with no AE-ID-STEM provided when it is started + */ + + testcase TC_AE_REG_CRE_001() runs on CseSimu system AeSystem { + + //primitives for utPort + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + + //primitives for mcaPort + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + f_cf03Up(); + + //Send Trigger Message + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_createAe)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : AE registration request is accepted!!"); + //v_responsePrimtive := valueof(m_responsePrimitiveTemp(int2000, omit)); + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(mw_createAe(*,?,m_contentCreateAe_Invalid))) -> value v_request { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : AE registration request is rejected due to not including mandatory attributes!!"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + + } + + // Postamble + f_cf03Down(); + } + + /** + * @desc Check that the IUT sends a registration CREATE Request with the value of the attribute ATTRIBUTE_NAME of the AE resource + */ + + group g_AE_REG_CRE_002 { + + testcase TC_AE_REG_CRE_002_RN() runs on CseSimu system AeSystem { + //primitives for utPort + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + var template RequestPrimitive v_createAe := mw_createAe; + v_utRequest.primitiveContent.aE.resourceName := "UNINITIALIZED"; + v_createAe.primitiveContent.aE.resourceName := ?; + f_AE_REG_CRE_002(v_utRequest,v_createAe); + } + + testcase TC_AE_REG_CRE_002_ET() runs on CseSimu system AeSystem { + //primitives for utPort + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + var template RequestPrimitive v_createAe := mw_createAe; + v_utRequest.primitiveContent.aE.expirationTime := "20301231T012345"; + v_createAe.primitiveContent.aE.expirationTime := ?; + f_AE_REG_CRE_002(v_utRequest,v_createAe); + } + + testcase TC_AE_REG_CRE_002_LBL() runs on CseSimu system AeSystem { + //primitives for utPort + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + var template RequestPrimitive v_createAe := mw_createAe; + v_utRequest.primitiveContent.aE.labels := {"UNINITIALIZED"}; + v_createAe.primitiveContent.aE.labels := ?; + f_AE_REG_CRE_002(v_utRequest,v_createAe); + } + + testcase TC_AE_REG_CRE_002_APN() runs on CseSimu system AeSystem { + //primitives for utPort + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + var template RequestPrimitive v_createAe := mw_createAe; + v_utRequest.primitiveContent.aE.appName := "UNINITIALIZED"; + v_createAe.primitiveContent.aE.appName := ?; + f_AE_REG_CRE_002(v_utRequest,v_createAe); + } + + testcase TC_AE_REG_CRE_002_API() runs on CseSimu system AeSystem { + //primitives for utPort + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + var template RequestPrimitive v_createAe := mw_createAe; + v_utRequest.primitiveContent.aE.app_ID := "UNINITIALIZED"; + v_createAe.primitiveContent.aE.app_ID := ?; + f_AE_REG_CRE_002(v_utRequest,v_createAe); + } + + testcase TC_AE_REG_CRE_002_POA() runs on CseSimu system AeSystem { + //primitives for utPort + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + var template RequestPrimitive v_createAe := mw_createAe; + v_utRequest.primitiveContent.aE.pointOfAccess := {"UNINITIALIZED"}; + v_createAe.primitiveContent.aE.pointOfAccess := ?; + f_AE_REG_CRE_002(v_utRequest,v_createAe); + } + + testcase TC_AE_REG_CRE_002_OR() runs on CseSimu system AeSystem { + //primitives for utPort + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + var template RequestPrimitive v_createAe := mw_createAe; + v_utRequest.primitiveContent.aE.ontologyRef := "UNINITIALIZED"; + v_createAe.primitiveContent.aE.ontologyRef := ?; + f_AE_REG_CRE_002(v_utRequest,v_createAe); + } + + testcase TC_AE_REG_CRE_002_NL() runs on CseSimu system AeSystem { + //primitives for utPort + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + var template RequestPrimitive v_createAe := mw_createAe; + v_utRequest.primitiveContent.aE.nodeLink := "UNINITIALIZED"; + v_createAe.primitiveContent.aE.nodeLink := ?; + f_AE_REG_CRE_002(v_utRequest,v_createAe); + } + + testcase TC_AE_REG_CRE_002_RR() runs on CseSimu system AeSystem { + //primitives for utPort + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + var template RequestPrimitive v_createAe := mw_createAe; + v_utRequest.primitiveContent.aE.requestReachability := true; + v_createAe.primitiveContent.aE.requestReachability := ?; + f_AE_REG_CRE_002(v_utRequest,v_createAe); + } + + testcase TC_AE_REG_CRE_002_CSZ() runs on CseSimu system AeSystem { + //primitives for utPort + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + var template RequestPrimitive v_createAe := mw_createAe; + v_utRequest.primitiveContent.aE.contentSerialization := {applicationxml}; + v_createAe.primitiveContent.aE.contentSerialization := ?; + f_AE_REG_CRE_002(v_utRequest,v_createAe); + } + + function f_AE_REG_CRE_002(template UtTriggerPrimitive p_utRequest, template RequestPrimitive p_response) runs on CseSimu { + + //primitives for mcaPort + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + f_cf03Up(); + + //Send Trigger Message + f_sendUtPrimitive(p_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(p_response)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : AE registration request is accepted!!"); + //v_responsePrimtive := valueof(m_responsePrimitiveTemp(int2000, omit)); + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(mw_createAe(*,?,m_contentCreateAe_Invalid))) -> value v_request { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : AE registration request is rejected due to not including the optional attribute!"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + + } + + // Postamble + f_cf03Down(); + } + + }//End of subgroup AE_REG_CRE_002 + + + } // End of subgroup Create + + group Delete { + + /** + * @desc Check that the IUT sends AE deregistration request to CSE + */ + + testcase TC_AE_REG_DEL_001() runs on CseSimu system AeSystem { + + //variables + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + //primitives for utPort + var template UtTriggerPrimitive v_utRequest := mw_deleteRequest; + + f_cf03Up(); + + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_deleteRequest)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : AE deregistration request is accepted!"); + + //v_responsePrimtive := valueof(m_responsePrimitiveTemp(int2000, omit)); + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Error while AE deregistration"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + + } + // Postamble + f_cf03Down(); + } + + }// End Delete subgroup + + }//end Registration subgroup + + group Data_Management_and_Repository { + + group Create { + + /** + * @desc Check that the IUT sends a Container creation request when it is triggered + */ + + testcase TC_AE_DMR_CRE_001() runs on CseSimu system AeSystem { + + //variables + var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + f_cf03Up(); + + //send triggering primtive to SUT + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_createContainer)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Container creation request is accepted!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Container creation request is rejected due to not including mandatory attributes!!"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + /** + * @desc Check that the IUT sends a ContentInstance creation request when it is triggered + */ + + testcase TC_AE_DMR_CRE_002() runs on CseSimu system AeSystem { + + var template UtTriggerPrimitive v_utRequest := m_utCreateContentInstance; + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + + //receive MsgIn requestPrimitive + [] mcaPort.receive(mw_request(mw_createContentInstance)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : ContentInstance creation request is accepted!!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : ContentInstance creation request is rejected due to not including mandatory attributes!!"); + } + + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + /** + * @desc Check that the IUT sends a ContentInstance creation request with optional attribute ATTRIBUTE_NAME + */ + + group g_AE_DMR_CRE_003 { + + testcase TC_AE_DMR_CRE_003_CNF() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContentInstance; + var template RequestPrimitive v_request := mw_createContentInstance; + v_utRequest.primitiveContent.contentInstance.contentInfo := "UNINITIALIZED"; + v_request.primitiveContent.contentInstance.contentInfo := ?; + f_AE_DMR_CRE_003(v_utRequest,v_request); + } + + testcase TC_AE_DMR_CRE_003_RN() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContentInstance; + var template RequestPrimitive v_request := mw_createContentInstance; + v_utRequest.primitiveContent.contentInstance.resourceName := "UNINITIALIZED"; + v_request.primitiveContent.contentInstance.resourceName := ?; + f_AE_DMR_CRE_003(v_utRequest,v_request); + } + + testcase TC_AE_DMR_CRE_003_ET() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContentInstance; + var template RequestPrimitive v_request := mw_createContentInstance; + v_utRequest.primitiveContent.contentInstance.expirationTime := "20301231T012345"; + v_request.primitiveContent.contentInstance.expirationTime := ?; + f_AE_DMR_CRE_003(v_utRequest,v_request); + } + + testcase TC_AE_DMR_CRE_003_LBL() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContentInstance; + var template RequestPrimitive v_request := mw_createContentInstance; + v_utRequest.primitiveContent.contentInstance.labels := {"UNINITIALIZED"}; + v_request.primitiveContent.contentInstance.labels := ?; + f_AE_DMR_CRE_003(v_utRequest,v_request); + } + + testcase TC_AE_DMR_CRE_003_CR() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContentInstance; + var template RequestPrimitive v_request := mw_createContentInstance; + v_utRequest.primitiveContent.contentInstance.creator := "UNINITIALIZED"; + v_request.primitiveContent.contentInstance.creator := ?; + f_AE_DMR_CRE_003(v_utRequest,v_request); + } + + function f_AE_DMR_CRE_003(template UtTriggerPrimitive p_utRequest, template RequestPrimitive p_request) runs on CseSimu { + + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + f_sendUtPrimitive(p_utRequest); + + //Test behavior + tc_ac.start; + alt{ + + //receive MsgIn requestPrimitive + [] mcaPort.receive(mw_request(p_request)) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : ContentInstance creation request is accepted!!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : ContentInstance creation request is rejected due to not including the attribute!"); + } + + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + }//End of subgroup AE_DMR_CRE_003 + + + + /** + * @desc Check that the IUT sends a Container creation request with optional attribute ATTRIBUTE_NAME when it is triggered + */ + + group g_AE_DMR_CRE_004 { + + testcase TC_AE_DMR_CRE_004_ACPI() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; + var template RequestPrimitive v_request := mw_createContainer; + v_utRequest.primitiveContent.container.accessControlPolicyIDs := {"UNINITIALIZED"}; + v_request.primitiveContent.container.accessControlPolicyIDs := ?; + f_AE_DMR_CRE_004(v_utRequest,v_request); + } + + testcase TC_AE_DMR_CRE_004_MNI() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; + var template RequestPrimitive v_request := mw_createContainer; + v_utRequest.primitiveContent.container.maxNrOfInstances := 1; + v_request.primitiveContent.container.maxNrOfInstances := ?; + f_AE_DMR_CRE_004(v_utRequest,v_request); + } + + testcase TC_AE_DMR_CRE_004_MBS() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; + var template RequestPrimitive v_request := mw_createContainer; + v_utRequest.primitiveContent.container.maxByteSize := 1; + v_request.primitiveContent.container.maxByteSize := ?; + f_AE_DMR_CRE_004(v_utRequest,v_request); + } + + testcase TC_AE_DMR_CRE_004_MIA() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; + var template RequestPrimitive v_request := mw_createContainer; + v_utRequest.primitiveContent.container.maxInstanceAge := 1; + v_request.primitiveContent.container.maxInstanceAge := ?; + f_AE_DMR_CRE_004(v_utRequest,v_request); + } + + testcase TC_AE_DMR_CRE_004_OR() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; + var template RequestPrimitive v_request := mw_createContainer; + v_utRequest.primitiveContent.container.ontologyRef := "UNINITIALIZED"; + v_request.primitiveContent.container.ontologyRef := ?; + f_AE_DMR_CRE_004(v_utRequest,v_request); + } + + testcase TC_AE_DMR_CRE_004_RN() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; + var template RequestPrimitive v_request := mw_createContainer; + v_utRequest.primitiveContent.container.resourceName := "UNINITIALIZED"; + v_request.primitiveContent.container.resourceName := ?; + f_AE_DMR_CRE_004(v_utRequest,v_request); + } + + testcase TC_AE_DMR_CRE_004_ET() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; + var template RequestPrimitive v_request := mw_createContainer; + v_utRequest.primitiveContent.container.expirationTime := "20301231T012345"; + v_request.primitiveContent.container.expirationTime := ?; + f_AE_DMR_CRE_004(v_utRequest,v_request); + } + + testcase TC_AE_DMR_CRE_004_LBL() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; + var template RequestPrimitive v_request := mw_createContainer; + v_utRequest.primitiveContent.container.labels := {"UNINITIALIZED"}; + v_request.primitiveContent.container.labels := ?; + f_AE_DMR_CRE_004(v_utRequest,v_request); + } + + testcase TC_AE_DMR_CRE_004_CR() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; + var template RequestPrimitive v_request := mw_createContainer; + v_utRequest.primitiveContent.container.creator := "UNINITIALIZED"; + v_request.primitiveContent.container.creator := ?; + f_AE_DMR_CRE_004(v_utRequest,v_request); + } + + function f_AE_DMR_CRE_004(template UtTriggerPrimitive p_utRequest, template RequestPrimitive p_request) runs on CseSimu { + + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + f_sendUtPrimitive(p_utRequest); + + //Test behavior + tc_ac.start; + alt{ + + //receive MsgIn requestPrimitive + [] mcaPort.receive(mw_request(p_request)) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Container creation request is accepted!!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Container creation request is rejected due to not including the attribute!"); + } + + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + }//End of subgroup AE_DMR_CRE_004 + + }//End of subgroup Create + + group Update { + + group g_AE_DMR_UPD_001 { + + /** + * @desc Check that the IUT sends an UPDATE Request with the value of the attribute ATTRIBUTE_NAME of the TARGET_RESOURCE_ADDRESS resource + */ + + testcase TC_AE_DMR_UPD_001_LBL() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utUpdateContainer; + var template RequestPrimitive v_request := mw_createContainer; + v_utRequest.primitiveContent.container.labels := {"UNINITIALIZED"}; + f_AE_DMR_UPD_001(v_utRequest,v_request); + } + + function f_AE_DMR_UPD_001(template UtTriggerPrimitive p_utRequest, template RequestPrimitive p_request) runs on CseSimu { + + var ResponsePrimitive v_responsePrimtive; + var MsgIn v_request; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + f_sendUtPrimitive(p_utRequest); + + //Test behavior + tc_ac.start; + alt{ + + //receive MsgIn requestPrimitive + [] mcaPort.receive(mw_request(p_request)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Container update request is accepted!!"); + + if (match(v_request.primitive.requestPrimitive.primitiveContent.container.labels,p_utRequest.primitiveContent.container.labels)){ + setverdict(fail, __SCOPE__, " : Container update request didn't change the value of the attribute"); + }else{ + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2004, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + } + + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Container update request is rejected due to not including the attribute!"); + } + + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + } + + group g_AE_DMR_UPD_002 { + + /** + * @desc Check that the IUT sends an UPDATE Request with the value of the attribute ATTRIBUTE_NAME of the AE resource + */ + + testcase TC_AE_DMR_UPD_002_ET() runs on CseSimu system AeSystem { + + var template UtTriggerPrimitive v_utRequest := m_updateAeBase; + + v_utRequest.primitiveContent.aE.expirationTime := "20301231T012345"; + + f_AE_DMR_UPD_002(v_utRequest); + } + + testcase TC_AE_DMR_UPD_002_APN() runs on CseSimu system AeSystem { + + var template UtTriggerPrimitive v_utRequest := m_updateAeBase; + + v_utRequest.primitiveContent.aE.appName := "UNINITIALIZED"; + + f_AE_DMR_UPD_002(v_utRequest); + } + + testcase TC_AE_DMR_UPD_002_POA() runs on CseSimu system AeSystem { + + var template UtTriggerPrimitive v_utRequest := m_updateAeBase; + + v_utRequest.primitiveContent.aE.pointOfAccess := {"http://127.0.0.1:1400/monitor"}; + + f_AE_DMR_UPD_002(v_utRequest); + } + + testcase TC_AE_DMR_UPD_002_OR() runs on CseSimu system AeSystem { + + var template UtTriggerPrimitive v_utRequest := m_updateAeBase; + + v_utRequest.primitiveContent.aE.ontologyRef := "MyOntologyRef"; + + f_AE_DMR_UPD_002(v_utRequest); + } + + testcase TC_AE_DMR_UPD_002_NL() runs on CseSimu system AeSystem { + + var template UtTriggerPrimitive v_utRequest := m_updateAeBase; + + v_utRequest.primitiveContent.aE.nodeLink := "/CSE_ID/S-AE-ID-STEM"; + + f_AE_DMR_UPD_002(v_utRequest); + } + + testcase TC_AE_DMR_UPD_002_RR() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_updateAeBase; + + v_utRequest.primitiveContent.aE.requestReachability := true; + + f_AE_DMR_UPD_002(v_utRequest); + } + + testcase TC_AE_DMR_UPD_002_CSZ() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequestTestBody := m_updateAeBase; + + v_utRequestTestBody.primitiveContent.aE.contentSerialization := {applicationxml}; + + f_AE_DMR_UPD_002(v_utRequestTestBody); + } + + function f_AE_DMR_UPD_002(template UtTriggerPrimitive p_utRequestTestBody) runs on CseSimu { + + //primitives for mcaPort + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + var integer v_aeIndex := -1; + var template RequestPrimitive v_expectedUpdateRequestAe := mw_updateAe(); + + + f_cf03Up(); + + //Preamble + v_aeIndex := f_ae_preamble_registerAe(); + + //Send Trigger Message + p_utRequestTestBody.to_ := f_getResourceAddress(v_aeIndex); + f_sendUtPrimitive(p_utRequestTestBody); + + //Test behavior + + v_expectedUpdateRequestAe.primitiveContent.aE := mw_contentAeUpdateRequest; + v_expectedUpdateRequestAe.primitiveContent := f_getTemplateFromPrimitiveContent(p_utRequestTestBody.primitiveContent); + + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(v_expectedUpdateRequestAe)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : AE registration update request is accepted!"); + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(?)) -> value v_request { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : AE registration update request is rejected due to not including the optional attribute!"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + + } + + // Postamble + f_cf03Down(); + } + + }//End of subgroup AE_DMR_UPD_002 + + group g_AE_DMR_UPD_003 { + + /** + * @desc Check that the IUT sends an UPDATE Request with the value of the attribute ATTRIBUTE_NAME of the <container> resource + */ + + testcase TC_AE_DMR_UPD_003_ET() runs on CseSimu system AeSystem { + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + + var template RequestPrimitive v_request := mw_updateContainer; + var template UtTriggerPrimitive v_utRequest := m_utUpdateContainer; + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + v_utRequest.primitiveContent.container.expirationTime := "20301231T012345"; + v_request.primitiveContent.container.expirationTime := ?; + f_AE_DMR_UPD_003(v_utRequest,v_request); + } + + testcase TC_AE_DMR_UPD_003_LBL() runs on CseSimu system AeSystem { + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + + var template RequestPrimitive v_request := mw_updateContainer; + var template UtTriggerPrimitive v_utRequest := m_utUpdateContainer; + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + v_utRequest.primitiveContent.container.labels := {"UNINITIALIZED"}; + v_request.primitiveContent.container.labels := ?; + f_AE_DMR_UPD_003(v_utRequest,v_request); + } + + testcase TC_AE_DMR_UPD_003_MNI() runs on CseSimu system AeSystem { + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + + var template RequestPrimitive v_request := mw_updateContainer; + var template UtTriggerPrimitive v_utRequest := m_utUpdateContainer; + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + v_utRequest.primitiveContent.container.maxNrOfInstances := 1; + v_request.primitiveContent.container.maxNrOfInstances := ?; + f_AE_DMR_UPD_003(v_utRequest,v_request); + } + + testcase TC_AE_DMR_UPD_003_MBS() runs on CseSimu system AeSystem { + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + + var template RequestPrimitive v_request := mw_updateContainer; + var template UtTriggerPrimitive v_utRequest := m_utUpdateContainer; + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + v_utRequest.primitiveContent.container.maxByteSize := 1; + v_request.primitiveContent.container.maxByteSize := ?; + f_AE_DMR_UPD_003(v_utRequest,v_request); + } + + testcase TC_AE_DMR_UPD_003_MIA() runs on CseSimu system AeSystem { + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + var template RequestPrimitive v_request := mw_updateContainer; + var template UtTriggerPrimitive v_utRequest := m_utUpdateContainer; + + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + v_utRequest.primitiveContent.container.maxInstanceAge := 1; + v_request.primitiveContent.container.maxInstanceAge := ?; + f_AE_DMR_UPD_003(v_utRequest,v_request); + } + + function f_AE_DMR_UPD_003(template UtTriggerPrimitive p_utRequest, template RequestPrimitive p_request) runs on CseSimu { + + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + f_sendUtPrimitive(p_utRequest); + + //Test behavior + tc_ac.start; + alt{ + + //receive MsgIn requestPrimitive + [] mcaPort.receive(mw_request(p_request)) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Container update request is accepted!!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Container update request is rejected due to not including the attribute!"); + } + + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + } + + }//End of subgroup Update + + group Retrieve { + + group g_AE_DMR_RET_001{ + + /** + * @desc Check that the IUT sends a RETRIEVE Request on the TARGET_RESOURCE_ADDRESS to CSE + */ + + testcase TC_AE_DMR_RET_001_CB() runs on CseSimu system AeSystem { + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentCSEBase(m_contentCreateCSEBase)), int5); + f_AE_DMR_RET_001(int5, f_getResourceAddress(v_auxInteger)); + } + + testcase TC_AE_DMR_RET_001_AE() runs on CseSimu system AeSystem { + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + f_AE_DMR_RET_001(int2, f_getResourceAddress(v_auxInteger)); + } + + function f_AE_DMR_RET_001(ResourceType p_resourceType, XSD.AnyURI p_address) runs on CseSimu { + + //variables + var template UtTriggerPrimitive v_utRequest := m_utRetrieveResource (p_address, "UNINITIALIZED"); + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + v_utRequest.resourceType := p_resourceType; + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_retrieveResource(p_address))) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : retrieve ressource type " & int2str(enum2int(v_request.primitive.requestPrimitive.resourceType)) & " request is accepted!!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2000, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + tc_ac.stop; + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : error while retrieving ressource !"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + }//End of TC_AE_DMR_RET_001 + + /** + * @desc Check that the IUT sends a RETRIEVE Request of oldest virtual resource. + */ + + testcase TC_AE_DMR_RET_002() runs on CseSimu system AeSystem { + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), int3); + var XSD.AnyURI v_address := f_getResourceAddress(v_auxInteger); + + //variables + var template UtTriggerPrimitive v_utRequest := m_utRetrieveResource (v_address & "/" & c_resourceShortNameOldest, "UNINITIALIZED"); + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_retrieveResource(v_address & "/" & c_resourceShortNameOldest))) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : retrieve attribute oldest request is accepted!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2000, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + tc_ac.stop; + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : error while retrieving attribute !"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + /** + * @desc Check that the IUT sends a RETRIEVE Request of latest virtual resource. + */ + + testcase TC_AE_DMR_RET_003() runs on CseSimu system AeSystem { + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), int3); + var XSD.AnyURI v_address := f_getResourceAddress(v_auxInteger); + + //variables + var template UtTriggerPrimitive v_utRequest := m_utRetrieveResource (v_address & "/" & c_resourceShortNameLatest, "UNINITIALIZED"); + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_retrieveResource(v_address & "/" & c_resourceShortNameLatest))) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : retrieve attribute latest request is accepted!!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2000, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + tc_ac.stop; + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : error while retrieving attribute !"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + /** + * @desc Check that the IUT sends a <container> resource RETRIEVE Request to CSE + */ + + testcase TC_AE_DMR_RET_004() runs on CseSimu system AeSystem { + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), int3); + var XSD.AnyURI v_address := f_getResourceAddress(v_auxInteger); + + //variables + var template UtTriggerPrimitive v_utRequest := m_utRetrieveResource (v_address, "UNINITIALIZED"); + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + v_utRequest.resourceType := int3; + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_retrieveResource(v_address))) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : retrieve ressource type " & int2str(enum2int(v_request.primitive.requestPrimitive.resourceType)) & " request is accepted!!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2000, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + tc_ac.stop; + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : error while retrieving ressource !"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + /** + * @desc Check that the IUT sends a <contentInstance> resource RETRIEVE Request to CSE + */ + + testcase TC_AE_DMR_RET_005 () runs on CseSimu system AeSystem { + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentContentInstance(m_contentCreateContentInstance)), int4); + var XSD.AnyURI v_address := f_getResourceAddress(v_auxInteger); + + //variables + var template UtTriggerPrimitive v_utRequest := m_utRetrieveResource (v_address, "UNINITIALIZED"); + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + v_utRequest.resourceType := int4; + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_retrieveResource(v_address))) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : retrieve ressource type " & int2str(enum2int(v_request.primitive.requestPrimitive.resourceType)) & " request is accepted!!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2000, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + tc_ac.stop; + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : error while retrieving ressource !"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + }//End of subgroup Retrieve + + group Delete { + + /** + * @desc Check that the IUT sends a DELETE Request of oldest virtual resource. + */ + + testcase TC_AE_DMR_DEL_001() runs on CseSimu system AeSystem { + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), int3); + var XSD.AnyURI v_address := f_getResourceAddress(v_auxInteger); + + //variables + var template UtTriggerPrimitive v_utRequest := m_utDeleteResource (v_address & "/" & c_resourceShortNameOldest, "UNINITIALIZED"); + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_deleteRequest(v_address & "/" & c_resourceShortNameOldest))) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : delete attribute oldest request is accepted!!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2002, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + tc_ac.stop; + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : error while deleting attribute !"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + /** + * @desc Check that the IUT sends a DELETE Request of latest virtual resource. + */ + + testcase TC_AE_DMR_DEL_002() runs on CseSimu system AeSystem { + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), int3); + var XSD.AnyURI v_address := f_getResourceAddress(v_auxInteger); + + //variables + var template UtTriggerPrimitive v_utRequest := m_utDeleteResource (v_address & "/" & c_resourceShortNameLatest, "UNINITIALIZED"); + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_deleteRequest(v_address & "/" & c_resourceShortNameLatest))) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : delete attribute latest request is accepted!!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2002, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + tc_ac.stop; + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : error while deleting attribute !"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + /** + * @desc Check that the IUT sends a <container> resource DELETE request to CSE + */ + + testcase TC_AE_DMR_DEL_003() runs on CseSimu system AeSystem { + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), int3); + var XSD.AnyURI v_address := f_getResourceAddress(v_auxInteger); + + //variables + var template UtTriggerPrimitive v_utRequest := m_utDeleteResource (v_address, "UNINITIALIZED"); + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + v_utRequest.resourceType := int3; + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_deleteRequest(v_address))) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : delete ressource type " & int2str(enum2int(v_request.primitive.requestPrimitive.resourceType)) & " request is accepted!!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2002, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + tc_ac.stop; + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : error while deleting ressource !"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + /** + * @desc Check that the IUT sends a <contentInstance> resource RETRIEVE Request to CSE + */ + + testcase TC_AE_DMR_DEL_004 () runs on CseSimu system AeSystem { + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentContentInstance(m_contentCreateContentInstance)),int4); + var XSD.AnyURI v_address := f_getResourceAddress(v_auxInteger); + + //variables + var template UtTriggerPrimitive v_utRequest := m_utDeleteResource (v_address, "UNINITIALIZED"); + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + //Test component configuration + f_cf03Up(); + + //send triggering primtive to SUT + v_utRequest.resourceType := int4; + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_deleteRequest(v_address))) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : delete ressource type " & int2str(enum2int(v_request.primitive.requestPrimitive.resourceType)) & " request is accepted!!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2002, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + tc_ac.stop; + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : error while deleting ressource !"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + } + + + }//end DMR subgroup + + group Subscription_and_Notification { + + group Create { + + /** + * @desc Check that the IUT sends a subscription creation request + */ + + testcase TC_AE_SUB_CRE_001() runs on CseSimu system AeSystem { + + //variables + var template UtTriggerPrimitive v_utRequest := m_utCreateSubscription; + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + + f_cf03Up(); + + //send triggering primtive to SUT + f_sendUtPrimitive(v_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_createSubscription)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Subscription creation request is accepted!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Subscription creation request is rejected due to not including mandatory attributes!!"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + group g_AE_SUB_CRE_002 { + + /** + * @desc Check that the IUT sends a subscription creation request with optional attribute ATTRIBUTE_NAME when it is triggered + */ + + testcase TC_AE_SUB_CRE_002_ACPI() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateSubscription; + var template RequestPrimitive v_requestT := mw_createSubscription; + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + v_utRequest.primitiveContent.subscription.notificationURI := {"UNINITIALIZED"}; + v_utRequest.primitiveContent.subscription.accessControlPolicyIDs := {"UNINITIALIZED"}; + + v_requestT.to_ := f_getResourceAddress(v_auxInteger); + v_requestT.primitiveContent.subscription.notificationURI := ?; + v_requestT.primitiveContent.subscription.accessControlPolicyIDs := ?; + + f_AE_SUB_CRE_002(v_utRequest, v_requestT); + } + + testcase TC_AE_SUB_CRE_002_ENC() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateSubscription; + var template RequestPrimitive v_requestT := mw_createSubscription; + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + v_utRequest.primitiveContent.subscription.notificationURI := {"UNINITIALIZED"}; + v_utRequest.primitiveContent.subscription.eventNotificationCriteria.createdBefore := "20301231T012345"; + + + v_requestT.to_ := f_getResourceAddress(v_auxInteger); + v_requestT.primitiveContent.subscription.notificationURI := ?; + v_requestT.primitiveContent.subscription.eventNotificationCriteria.createdBefore := ?; + + f_AE_SUB_CRE_002(v_utRequest, v_requestT); + } + + testcase TC_AE_SUB_CRE_002_EXC() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateSubscription; + var template RequestPrimitive v_requestT := mw_createSubscription; + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + v_utRequest.primitiveContent.subscription.notificationURI := {"UNINITIALIZED"}; + v_utRequest.primitiveContent.subscription.expirationCounter := 1; + + v_requestT.to_ := f_getResourceAddress(v_auxInteger); + v_requestT.primitiveContent.subscription.notificationURI := ?; + v_requestT.primitiveContent.subscription.expirationCounter := ?; + + f_AE_SUB_CRE_002(v_utRequest, v_requestT); + } + + testcase TC_AE_SUB_CRE_002_NFU() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateSubscription; + var template RequestPrimitive v_requestT := mw_createSubscription; + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + v_utRequest.primitiveContent.subscription.notificationURI := {"UNINITIALIZED"}; + v_utRequest.primitiveContent.subscription.notificationForwardingURI := "UNINITIALIZED"; + + v_requestT.to_ := f_getResourceAddress(v_auxInteger); + v_requestT.primitiveContent.subscription.notificationURI := ?; + v_requestT.primitiveContent.subscription.notificationForwardingURI := ?; + + f_AE_SUB_CRE_002(v_utRequest, v_requestT); + } + + testcase TC_AE_SUB_CRE_002_NCT() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateSubscription; + var template RequestPrimitive v_requestT := mw_createSubscription; + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + v_utRequest.primitiveContent.subscription.notificationURI := {"UNINITIALIZED"}; + v_utRequest.primitiveContent.subscription.notificationContentType := int1; + + v_requestT.to_ := f_getResourceAddress(v_auxInteger); + v_requestT.primitiveContent.subscription.notificationURI := ?; + v_requestT.primitiveContent.subscription.notificationContentType := ?; + + f_AE_SUB_CRE_002(v_utRequest, v_requestT); + } + + testcase TC_AE_SUB_CRE_002_NEC() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateSubscription; + var template RequestPrimitive v_requestT := mw_createSubscription; + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + v_utRequest.primitiveContent.subscription.notificationURI := {"UNINITIALIZED"}; + v_utRequest.primitiveContent.subscription.notificationEventCat.alt_1 := 100; + + v_requestT.to_ := f_getResourceAddress(v_auxInteger); + v_requestT.primitiveContent.subscription.notificationURI := ?; + v_requestT.primitiveContent.subscription.notificationEventCat.alt_ := ?; + + f_AE_SUB_CRE_002(v_utRequest, v_requestT); + } + + testcase TC_AE_SUB_CRE_002_SU() runs on CseSimu system AeSystem { + var template UtTriggerPrimitive v_utRequest := m_utCreateSubscription; + var template RequestPrimitive v_requestT := mw_createSubscription; + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + v_utRequest.primitiveContent.subscription.notificationURI := {"UNINITIALIZED"}; + v_utRequest.primitiveContent.subscription.subscriberURI := "UNINITIALIZED"; + + v_requestT.to_ := f_getResourceAddress(v_auxInteger); + v_requestT.primitiveContent.subscription.notificationURI := ?; + v_requestT.primitiveContent.subscription.subscriberURI := ?; + + f_AE_SUB_CRE_002(v_utRequest, v_requestT); + } + + function f_AE_SUB_CRE_002(template UtTriggerPrimitive p_utRequest, template RequestPrimitive p_request) runs on CseSimu { + + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + f_cf03Up(); + + //send triggering primtive to SUT + f_sendUtPrimitive(p_utRequest); + + //Test behavior + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(p_request)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Subscription creation request is accepted!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Subscription creation request is rejected due to not including the optional attribute!"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + + } + + }//End AE_SUB_CRE_002 + + }//End Create Group + + group Notify { + + /** + * @desc Check that the IUT sends a Notify Response to the hosting CSE when receiving a Notify request containing a single notification + */ + + testcase TC_AE_SUB_NTY_001() runs on CseSimu system AeSystem { + + //variables + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + + f_cf03Up(); + + //create Ae + f_sendUtPrimitive(v_utRequest); + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_createAe)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : AE registration request is accepted!!"); + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(mw_createAe(*,?,m_contentCreateAe_Invalid))) -> value v_request { + tc_ac.stop; + setverdict(inconc, __SCOPE__, " : AE registration request is rejected due to not including mandatory attributes!!"); + stop; + } + [] tc_ac.timeout{ + setverdict(inconc, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + stop; + } + + } + + //create Subscription + v_utRequest := m_utCreateSubscription; + v_utRequest.to_ := f_getResourceAddress(-1); + f_sendUtPrimitive(v_utRequest); + + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_createSubscription)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Subscription creation request is accepted!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(inconc, __SCOPE__, " : Subscription creation request is rejected due to not including mandatory attributes!!"); + } + [] tc_ac.timeout{ + setverdict(inconc, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + + //Test behavior + mcaPort.send(m_request(m_notifyRequest)); + + tc_ac.start; + alt{ + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Notification response is accepted!"); + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Notification response is rejected due to not including mandatory attributes!"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + /** + * @desc Check that the IUT sends a Notify Response to the hosting CSE when receiving a Notify request containing aggregated notifications + */ + + testcase TC_AE_SUB_NTY_002() runs on CseSimu system AeSystem { + + //variables + var template UtTriggerPrimitive v_utRequest := m_createAe("UNINITIALIZED"); + var MsgIn v_request; + var ResponsePrimitive v_responsePrimtive; + + var integer v_auxInteger := f_setResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, omit, omit, omit))),int2); + v_utRequest.to_ := f_getResourceAddress(v_auxInteger); + + f_cf03Up(); + + //create Ae + f_sendUtPrimitive(v_utRequest); + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_createAe)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : AE registration request is accepted!!"); + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive(mw_request(mw_createAe(*,?,m_contentCreateAe_Invalid))) -> value v_request { + tc_ac.stop; + setverdict(inconc, __SCOPE__, " : AE registration request is rejected due to not including mandatory attributes!!"); + stop; + } + [] tc_ac.timeout{ + setverdict(inconc, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + stop; + } + + } + + //create Subscription + v_utRequest := m_utCreateSubscription; + v_utRequest.to_ := f_getResourceAddress(-1); + f_sendUtPrimitive(v_utRequest); + + tc_ac.start; + alt{ + [] mcaPort.receive(mw_request(mw_createSubscription)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Subscription creation request is accepted!"); + + //set responseStatusCode back to SUT + v_responsePrimtive := valueof(m_responsePrimitive(int2001, "To_be_defined", omit)); + + //send back responsePrimitive + mcaPort.send(m_response(v_responsePrimtive)); + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(inconc, __SCOPE__, " : Subscription creation request is rejected due to not including mandatory attributes!!"); + } + [] tc_ac.timeout{ + setverdict(inconc, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + + //Test behavior + mcaPort.send(m_request(m_notifyAggregatedRequest)); + + tc_ac.start; + alt{ + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(pass, __SCOPE__, " : Notification response is accepted!"); + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, __SCOPE__, " : Notification response is rejected due to not including mandatory attributes!"); + } + [] tc_ac.timeout{ + setverdict(fail, __SCOPE__, " : Timeout due to no response received from requested SUT!"); + } + } + + // Postamble + f_cf03Down(); + } + + }//End of Notify group + + + }//end SUB subgroup + + + }//end group AE + + + + + +} diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases_CSE.ttcn similarity index 97% rename from OneM2M_Testcases.ttcn rename to OneM2M_Testcases_CSE.ttcn index 2a9cf108028c045ab3ebfa3c77c58ff3b27d866d..0e4da3997479f5aa71d07248a77a742ba6332d8a 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases_CSE.ttcn @@ -11,7 +11,7 @@ * @desc Module containing test cases for oneM2M * */ -module OneM2M_Testcases { +module OneM2M_Testcases_CSE { import from OneM2M_TestSystem all; import from OneM2M_Templates all;