From cab9284885e1938a825481a8574fcf429550ad45 Mon Sep 17 00:00:00 2001 From: Miguel Angel Reina Ortega <miguelangel.reinaortega@etsi.org> Date: Fri, 14 Jul 2017 17:31:33 +0200 Subject: [PATCH] GMG test cases clean-up, verification and renaming SUB test cases clean-up, verification and renaming Signed-off-by: Miguel Angel Reina Ortega <miguelangel.reinaortega@etsi.org> --- LibOneM2M/OneM2M_Functions.ttcn | 174 +++++- LibOneM2M/OneM2M_Pixits.ttcn | 4 +- LibOneM2M/OneM2M_Templates.ttcn | 11 +- LibOneM2M/OneM2M_Types.ttcn | 48 +- OneM2M_TestControl.ttcn | 120 ++--- OneM2M_Testcases.ttcn | 902 ++++++++++++++++++-------------- 6 files changed, 774 insertions(+), 485 deletions(-) diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 051ed50..e6677ed 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $ - * $Id: OneM2M_Functions.ttcn 310 2017-06-23 12:40:44Z reinaortega $ + * $Id: OneM2M_Functions.ttcn 319 2017-07-14 15:20:23Z reinaortega $ * @desc Module containing functions for oneM2M * */ @@ -323,14 +323,14 @@ module OneM2M_Functions { } - function f_cse_preamble_subscriptionVerification(out CseTester p_notifyHandler,in integer p_aeIndex, inout integer p_ae2Index, inout template RequestPrimitive p_createRequestPrimitive,in ResourceType p_resourceType ) runs on CseTester { + function f_cse_preamble_subscriptionVerification(out CseTester p_notifyHandler,in integer p_aeIndex, inout integer p_ae2Index, inout template RequestPrimitive p_createRequestPrimitive,in ResourceType p_resourceType, in ResponseStatusCode p_responseStatusCode := int2001) runs on CseTester { if(p_resourceType == int23){ p_notifyHandler := CseTester.create("NotifyHandler") alive; - p_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE2_ID_STEM, "MyAe2", {"http://" & PX_AE2_ADDRESS & "/"}), -1); // AE2 is registred + p_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE2_ID_STEM, "MyAe2", {f_getAnnouncementTargetPoA("HTTP", PX_AE2_ADDRESS, "")}), -1); // AE2 is registred if(ischosen(p_createRequestPrimitive.primitiveContent.subscription)){ //this condition is necessary for Subscription TCs where notification URI is set in m_createSubscriptionAdvanced p_createRequestPrimitive.primitiveContent.subscription.notificationURI := {f_getResourceAddress(p_ae2Index)}; } - p_notifyHandler.start(f_subscriptionVerificationHandler(f_getResourceAddress(p_aeIndex))); + p_notifyHandler.start(f_subscriptionVerificationHandler(p_aeIndex, p_responseStatusCode)); } } @@ -702,37 +702,43 @@ module OneM2M_Functions { } //end f_cse_resourceAnnouncementHandler - function f_subscriptionVerificationHandler(in XSD.ID p_creator, in ResponseStatusCode p_responseStatusCode := int2000) runs on CseTester { + function f_subscriptionVerificationHandler(in integer p_creatorIndex, in ResponseStatusCode p_responseStatusCode := int2001) runs on CseTester { // Local variables - var MsgIn v_response; + var MsgIn v_request; var ResponsePrimitive v_responsePrimitive; - var template Notification v_notificationRequest := mw_contentNotificationBase; - var PrimitiveContent v_notificationResponse; // TODO Need to see if this parameter is required however there is a problem if it s omitted during the verification + var template Notification v_notificationRequest := mw_contentNotificationVerification; map(self:mcaPort, system:mcaPort); map(self:acPort, system:acPort); - - v_notificationResponse := {notification := valueof(m_contentNotification_allOmit)}; - - v_notificationRequest.verificationRequest := true; - //v_notificationRequest.creator := p_creator; TODO To check what address format is to be expected - //Some participants use SP relative UNSTRUCTURED - //v_notificationRequest.subscriptionReference := "I Don't know which URI is expected"; // TODO mandatory parameter - v_responsePrimitive := valueof(m_responseNotification(p_responseStatusCode,v_notificationResponse));//TODO No PrimitiveContent is expected - - if(p_responseStatusCode != int2001){ - v_responsePrimitive.primitiveContent := omit; - } + + //Preparation of expected Notification verification + //TODO To add checks for creator and subscription reference + //v_notificationRequest.creator := p_creator; TODO To check what address format is to be expected + //Some participants use SP relative UNSTRUCTURED + //v_notificationRequest.subscriptionReference := "I Don't know which URI is expected"; // TODO mandatory parameter + + //Preparation of Notification response to be sent + v_responsePrimitive := valueof(m_responseNotification(p_responseStatusCode, omit)); tc_ac.start; alt { - [] mcaPort.receive(mw_request(mw_notify(v_notificationRequest))) -> value v_response { + [] mcaPort.receive(mw_request(mw_notify(v_notificationRequest))) -> value v_request { tc_ac.stop; setverdict(pass, testcasename() & ": Notification received"); - v_responsePrimitive.requestIdentifier := v_response.primitive.requestPrimitive.requestIdentifier; + v_responsePrimitive.requestIdentifier := v_request.primitive.requestPrimitive.requestIdentifier; +// if(f_isHierarchical(v_request.primitive.requestPrimitive.primitiveContent.notification.creator)) { +// setverdict(fail, testcasename() & ": Creator cannot contain a hierarchical address"); +// v_responsePrimitive.responseStatusCode := int4000; +// } +// if(f_compareURIs(p_creatorIndex, v_request.primitive.requestPrimitive.primitiveContent.notification.creator)) { +// setverdict(pass, testcasename() & ": Creator set to originator of the subscription creation primitive"); +// } else { +// setverdict(fail, testcasename() & ": Creator not set to originator of the subscription creation primitive"); +// v_responsePrimitive.responseStatusCode := int4000; +// } mcaPort.send(m_httpResponse(v_responsePrimitive)); } - [] mcaPort.receive(mw_request(mw_notify(mw_contentNotification(?)))) -> value v_response { + [] mcaPort.receive(mw_request(mw_notify(mw_contentNotification(?)))) -> value v_request { tc_ac.stop; setverdict(fail, testcasename() & ": Notification received but verificationRequest isn't set to TRUE"); } @@ -833,7 +839,7 @@ module OneM2M_Functions { if (ischosen(p_primitiveContent.aE)){ if(ischosen(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.resource)) { - v_matchResult := match(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.resource.AE_optional, p_primitiveContent.aE) + v_matchResult := match(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.resource.aE, p_primitiveContent.aE) } else if(ischosen(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.responsePrimitive)) { v_matchResult :=match(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.responsePrimitive.primitiveContent.aE, p_primitiveContent.aE) @@ -843,7 +849,7 @@ module OneM2M_Functions { v_numberOfAggregatedNotification := lengthof(p_requestPrimitive.primitiveContent.aggregatedNotification.notification_list); for(i := 0; i< v_numberOfAggregatedNotification; i := i + 1){ if(ischosen(p_requestPrimitive.primitiveContent.aggregatedNotification.notification_list[i].notificationEvent.representation.resource)) { - if(not (match(p_requestPrimitive.primitiveContent.aggregatedNotification.notification_list[i].notificationEvent.representation.resource.AE_optional, p_primitiveContent.aE))){ + if(not (match(p_requestPrimitive.primitiveContent.aggregatedNotification.notification_list[i].notificationEvent.representation.resource.aE, p_primitiveContent.aE))){ v_matchResult := false; } } @@ -862,7 +868,7 @@ module OneM2M_Functions { if (ischosen(p_primitiveContent.container)){ if(ischosen(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.resource)) { - v_matchResult := match(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.resource.Container_optional, p_primitiveContent.container) + v_matchResult := match(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.resource.container, p_primitiveContent.container) } else if(ischosen(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.responsePrimitive)) { v_matchResult := match(p_requestPrimitive.primitiveContent.notification.notificationEvent.representation.responsePrimitive.primitiveContent.container, p_primitiveContent.container) @@ -873,18 +879,50 @@ module OneM2M_Functions { } //end f_check_notificationContent + function f_compareURIs(in integer p_expectedURIIndex, in XSD.ID p_receivedURI) runs on CseTester return boolean{ + // Local variables + var boolean v_matchResult := false; + + if (f_isNonHierarchical(p_receivedURI)) { + vc_addressingMethod := e_nonHierarchical; + } else if (f_isHierarchical(p_receivedURI)) { + vc_addressingMethod := e_hierarchical; + } + if (f_isScopeCseRelative(p_receivedURI)) { + vc_primitiveScope := e_cseRelative; + } + if (f_isScopeSpRelative(p_receivedURI)) { + vc_primitiveScope := e_spRelative; + } + if (f_isScopeAbsolute(p_receivedURI)) { + vc_primitiveScope := e_absolute; + } + + if(match(f_getResourceAddress(p_expectedURIIndex), p_receivedURI)) { + v_matchResult := true; + } else { + v_matchResult := false; + } + + vc_primitiveScope := PX_PRIMITIVE_SCOPE; + vc_addressingMethod := PX_ADDRESSING_METHOD; + + return v_matchResult; + + } //end f_compareURIs + function f_cse_notifyProcedure(template PrimitiveContent p_primitiveContent) runs on CseTester { // Local variables - var MsgIn v_response; + var MsgIn v_request; map(self:mcaPort, system:mcaPort); map(self:acPort, system:acPort); tc_ac.start; alt { - [] mcaPort.receive(mw_request(mw_notify(mw_contentNotification(?)))) -> value v_response { + [] mcaPort.receive(mw_request(mw_notify(mw_contentNotification(?)))) -> value v_request { tc_ac.stop; - if(f_check_notificationContent(v_response.primitive.requestPrimitive, p_primitiveContent)){ + if(f_check_notificationContent(v_request.primitive.requestPrimitive, p_primitiveContent)){ setverdict(pass, testcasename() & ": Notification received"); mcaPort.send(m_response(valueof(m_responseNotification(int2001)))); } @@ -907,6 +945,42 @@ module OneM2M_Functions { } //end f_cse_notifyProcedure + function f_cse_notifyProcedure_subscriptionDeletion( template PrimitiveContent p_primitiveContent) runs on CseTester { + var MsgIn v_response; + + map(self:mcaPort, system:mcaPort); + map(self:acPort, system:acPort); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_request(mw_notify(mw_contentNotification(?)))) -> value v_response { + tc_ac.stop; + mcaPort.send(m_response(valueof(m_responseNotification(int2001)))); + if(not(match(v_response.primitive.requestPrimitive.primitiveContent.notification.subscriptionDeletion, true))) { + setverdict(fail, testcasename() & ": subscriptionDeletion attribute have to be set to TRUE"); + } + if(f_check_notificationContent(v_response.primitive.requestPrimitive, p_primitiveContent)){ + setverdict(pass, testcasename() & ": Notification received"); + } + else{ + setverdict(fail, testcasename() & ": Notification received but the content doesn't match"); + } + } + [] mcaPort.receive{ + tc_ac.stop; + setverdict(fail, testcasename() & ": Error, unexpected message received"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No notification received"); + } + } + + unmap(self:mcaPort, system:mcaPort); + unmap(self:acPort, system:acPort); + + } //end f_cse_notifyProcedure_subscriptionDeletion + + /** * @desc It determines whether the addressing method of the given address is non-hierarchical. Not valid for CSE-Base as target * @param p_resourceAddress @@ -1785,6 +1859,48 @@ module OneM2M_Functions { } return result; } + + /** + * @desc It removes the poa from a given url + * @param p_url URL + * @return Resource Identifier + * NOT USED FOR THE TIME BEING + */ + function f_removePoa(in XSD.ID p_url) return XSD.ID { + var integer v_length := lengthof(p_url); + var integer i; + var integer v_numberOfColons := 0; + var boolean v_lookForSlash := false; + var boolean v_getURI := false; + var XSD.ID v_uri := ""; + + //TODO Process when FQDN is used in the URL + for (i := 0; i<v_length; i := i + 1){ + if(v_getURI) { + v_uri := v_uri & p_url[i]; + } else { + if(p_url[i]==":"){ + v_numberOfColons := v_numberOfColons + 1; + } + if(v_numberOfColons >= 2) { + v_lookForSlash := true; + } + if(v_lookForSlash) { + if(p_url[i]=="/") { + v_getURI := true; + } + } + } + } + + + if(v_uri == "") { + return p_url; + } else { + return v_uri; + } + } + function f_removeElementFromList (inout IntegerList p_list, in integer index) { var IntegerList result := {}; var integer i; diff --git a/LibOneM2M/OneM2M_Pixits.ttcn b/LibOneM2M/OneM2M_Pixits.ttcn index 12c8283..bac6872 100644 --- a/LibOneM2M/OneM2M_Pixits.ttcn +++ b/LibOneM2M/OneM2M_Pixits.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Pixits.ttcn $ - * $Id: OneM2M_Pixits.ttcn 312 2017-06-27 07:39:17Z reinaortega $ + * $Id: OneM2M_Pixits.ttcn 317 2017-07-12 18:07:15Z reinaortega $ * @desc Module containing Pixits for oneM2M * */ @@ -22,7 +22,7 @@ module OneM2M_Pixits { modulepar XSD.AnyURI PX_RESOURCE_TO_BE_DELETED := "/ae_test"; - modulepar XSD.IDREFS PX_RESOURCES_TO_BE_DELETED := {"/ae_test", "/MyAcp"}; + modulepar XSD.IDREFS PX_RESOURCES_TO_BE_DELETED := {"MyAe"}; modulepar charstring PX_SUT_ADDRESS := "127.0.0.1:8080"; diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index f2bd8e8..631f4fa 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $ - * $Id: OneM2M_Templates.ttcn 312 2017-06-27 07:39:17Z reinaortega $ + * $Id: OneM2M_Templates.ttcn 317 2017-07-12 18:07:15Z reinaortega $ * @desc Module containing templates for oneM2M * */ @@ -652,7 +652,7 @@ module OneM2M_Templates { from_ := "admin:admin", requestIdentifier := testcasename() & "-m_createContentInstance" & f_rnd(1, 1000000), resourceType := int4, - primitiveContent := {contentInstance := m_contentCreateContentInstance(p_primitiveContent)} + primitiveContent := {contentInstance := m_contentCreateContentInstance(-, p_primitiveContent)} }; /** @@ -2965,11 +2965,16 @@ module OneM2M_Templates { notificationEvent := *,//O verificationRequest := *,//O subscriptionDeletion := *,//O - subscriptionReference := ?,//M + subscriptionReference := *,//M //TODO Put it back to ? subscriptionReference is mandatory creator := *,//O notificationForwardingURI := *,//O iPEDiscoveryRequest := *//O }; + + template Notification mw_contentNotificationVerification modifies mw_contentNotificationBase := { + verificationRequest := true, + creator := ? + } template Notification mw_contentNotification (in template Representation p_representation) modifies mw_contentNotificationBase := { diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn index 94a4894..47460e5 100644 --- a/LibOneM2M/OneM2M_Types.ttcn +++ b/LibOneM2M/OneM2M_Types.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Types.ttcn $ - * $Id: OneM2M_Types.ttcn 314 2017-06-27 09:23:19Z reinaortega $ + * $Id: OneM2M_Types.ttcn 318 2017-07-13 12:35:45Z berge $ * @desc OneM2M data types module * */ @@ -1978,7 +1978,7 @@ type record ChildResourceRef XSD.AnyURI base } with { - variant "name as uncapitalized"; + //variant "name as uncapitalized"; variant (name) "attribute"; variant (specializationID) "attribute"; variant (type_) "name as 'type'"; @@ -4951,7 +4951,7 @@ with { //FIXME To be added type union Representation { - anytype resource, + Resource_2 resource, ResponsePrimitive responsePrimitive }; @@ -6823,7 +6823,7 @@ type record Container_optional } with { variant "name as uncapitalized"; - variant "element"; + //variant "element"; variant (resourceName) "attribute"; variant (announcedAttribute) "list"; //variant (disableRetrieval) "text 'true' as '1'"; @@ -7812,13 +7812,49 @@ group InvalidTypes { e_hierarchical } + type union Resource_2 { + //ResourceTypes + AEAnnc_optional aEAnnc, + AE_optional aE, + AccessControlPolicy_optional accessControlPolicy, + AccessControlPolicyAnnc_optional accessControlPolicyAnnc, + ContentInstance_optional contentInstance, + ContentInstanceAnnc_optional contentInstanceAnnc, + Container_optional container, + ContainerAnnc_optional containerAnnc, + FlexContainerResource_optional flexContainer, + CSEBase_optional cSEBase, + Group_optional group_, + GroupAnnc_optional groupAnnc, + LocationPolicy_optional locationPolicy, + LocationPolicyAnnc_optional locationPolicyAnnc, + MgmtResource_optional mgmtResource,//MgmtResource + AnnouncedMgmtResource_optional announcedMgmtResource,//AnnouncedMgmtResource + Node_optional node, + NodeAnnc_optional nodeAnnc, + PollingChannel_optional pollingChannel, + RemoteCSE_optional remoteCSE, + Schedule_optional schedule, + ScheduleAnnc_optional scheduleAnnc, + StatsConfig_optional statsConfig, + StatsCollect_optional statsCollect, + M2mServiceSubscriptionProfile_optional m2mServiceSubscriptionProfile, + ServiceSubscribedAppRule_optional serviceSubscribedAppRule, + Subscription_optional subscription, + SemanticDescriptor_optional semanticDescriptor, + GenericInterworkingOperationInstance_optional genericInterworkingOperationInstance + } + with { + variant "untagged"; + } + type record of ResourceType ResourceTypeList_1; } } with { encode "XML"; - variant "namespace as 'http://www.onem2m.org/xml/protocols' prefix 'm2m'"; - variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'"; + //variant "namespace as 'http://www.onem2m.org/xml/protocols' prefix 'm2m'"; + //variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'"; extension "anytype Resource, URI, Notification, AggregatedNotification, AggregatedResponse, ServiceSubscribedAppRule_optional, charstring, AnyURI, AttributeList, AE, AccessControlPolicy, AccessControlPolicy_optional, AccessControlPolicyAnnc_optional, ACP_update_invalid, AE_optional, AE_update_invalid,AEAnnc_optional, Container_optional, ContainerAnnc_optional, ContentInstanceAnnc_optional, CSEBase_optional, Container_update_invalid, ContentInstance_optional, Group_optional, Group_update_invalid, GroupAnnc_optional, LocationPolicyAnnc_optional, MgmtResource_optional, AnnouncedMgmtResource_optional, Node_optional, NodeAnnc_optional, Schedule_optional, ScheduleAnnc_optional, Schedule_update_invalid, Subscription_optional, Subscription_update_invalid, PollingChannel_optional, PollingChannel_update_invalid, LocationPolicy_optional, LocationPolicy_update_invalid, SemanticDescriptor_optional, FlexContainerResource_optional, GenericInterworkingOperationInstance_optional" } diff --git a/OneM2M_TestControl.ttcn b/OneM2M_TestControl.ttcn index 0b2cad9..083b737 100644 --- a/OneM2M_TestControl.ttcn +++ b/OneM2M_TestControl.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_TestControl.ttcn $ - * $Id: OneM2M_TestControl.ttcn 299 2017-06-20 12:36:36Z reinaortega $ + * $Id: OneM2M_TestControl.ttcn 319 2017-07-14 15:20:23Z reinaortega $ * @desc Test control module for oneM2M * */ @@ -206,70 +206,72 @@ module OneM2M_TestControl { //execute(TC_CSE_LOC_BV_008()); execute(TC_CSE_LOC_BV_012()); execute(TC_CSE_LOC_BV_013()); - execute(TC_CSE_GMG_BV_001()); - execute(TC_CSE_GMG_BV_002()); - execute(TC_CSE_GMG_BV_003()); - execute(TC_CSE_GMG_BV_004()); - execute(TC_CSE_GMG_BV_005()); - execute(TC_CSE_GMG_BV_006()); - execute(TC_CSE_GMG_BV_007()); - execute(TC_CSE_GMG_BV_008()); - execute(TC_CSE_GMG_BV_009()); - execute(TC_CSE_GMG_BV_010()); - execute(TC_CSE_GMG_BV_011()); - execute(TC_CSE_GMG_BV_012()); - execute(TC_CSE_GMG_BV_013()); - execute(TC_CSE_GMG_BV_014()); - execute(TC_CSE_GMG_BV_015()); - execute(TC_CSE_GMG_BV_016()); - execute(TC_CSE_GMG_BV_017()); - execute(TC_CSE_GMG_BV_018_01()); - execute(TC_CSE_GMG_BV_018_02()); - execute(TC_CSE_GMG_BV_018_03()); - execute(TC_CSE_GMG_BV_018_04()); - execute(TC_CSE_GMG_BO_019_01()); - execute(TC_CSE_GMG_BO_019_02()); - execute(TC_CSE_GMG_BO_019_03()); - execute(TC_CSE_GMG_BO_019_04()); - execute(TC_CSE_GMG_BV_020_01()); - execute(TC_CSE_GMG_BV_020_02()); - execute(TC_CSE_GMG_BV_020_03()); - execute(TC_CSE_GMG_BV_020_04()); - execute(TC_CSE_GMG_BO_021_01()); - execute(TC_CSE_GMG_BO_021_02()); - execute(TC_CSE_GMG_BO_021_03()); - execute(TC_CSE_GMG_BO_021_04()); - execute(TC_CSE_GMG_BV_022_01()); - execute(TC_CSE_GMG_BV_022_02()); - execute(TC_CSE_GMG_BV_022_03()); - execute(TC_CSE_GMG_BV_022_04()); + execute(TC_CSE_GMG_CRE_001()); + execute(TC_CSE_GMG_CRE_002()); + execute(TC_CSE_GMG_CRE_003()); + execute(TC_CSE_GMG_CRE_004()); + execute(TC_CSE_GMG_CRE_005()); + execute(TC_CSE_GMG_CRE_006()); + execute(TC_CSE_GMG_CRE_007()); + execute(TC_CSE_GMG_CRE_008_CRE()); + execute(TC_CSE_GMG_CRE_008_UPD()); + execute(TC_CSE_GMG_CRE_008_RET()); + execute(TC_CSE_GMG_CRE_008_DEL()); + execute(TC_CSE_GMG_CRE_009()); + execute(TC_CSE_GMG_UPD_001()); + execute(TC_CSE_GMG_UPD_002()); + execute(TC_CSE_GMG_UPD_003()); + execute(TC_CSE_GMG_UPD_004()); + execute(TC_CSE_GMG_UPD_005()); + execute(TC_CSE_GMG_UPD_006()); + execute(TC_CSE_GMG_UPD_007()); + execute(TC_CSE_GMG_UPD_008()); + execute(TC_CSE_GMG_UPD_009()); + execute(TC_CSE_GMG_UPD_010()); + execute(TC_CSE_GMG_RET_001()); + execute(TC_CSE_GMG_001_CRE()); + execute(TC_CSE_GMG_001_UPD()); + execute(TC_CSE_GMG_001_RET()); + execute(TC_CSE_GMG_001_DEL()); + execute(TC_CSE_GMG_002_CRE()); + execute(TC_CSE_GMG_002_UPD()); + execute(TC_CSE_GMG_002_RET()); + execute(TC_CSE_GMG_002_DEL()); + execute(TC_CSE_GMG_003_CRE()); + execute(TC_CSE_GMG_003_UPD()); + execute(TC_CSE_GMG_003_RET()); + execute(TC_CSE_GMG_003_DEL()); + execute(TC_CSE_GMG_004_CRE()); + execute(TC_CSE_GMG_004_UPD()); + execute(TC_CSE_GMG_004_RET()); + execute(TC_CSE_GMG_004_DEL()); execute(TC_CSE_DIS_BV_001()); execute(TC_CSE_DIS_BV_003()); execute(TC_CSE_DIS_BV_004()); execute(TC_CSE_DIS_BO_005()); execute(TC_CSE_DIS_BO_006()); execute(TC_CSE_DIS_BI_007()); - execute(TC_CSE_SUB_BV_001_01()); - execute(TC_CSE_SUB_BV_001_02()); - execute(TC_CSE_SUB_BV_002()); - execute(TC_CSE_SUB_BV_003()); - execute(TC_CSE_SUB_BV_004()); - execute(TC_CSE_SUB_BV_005()); - execute(TC_CSE_SUB_BV_006()); - execute(TC_CSE_SUB_BV_007()); - execute(TC_CSE_SUB_BV_008()); - execute(TC_CSE_SUB_BV_009()); - execute(TC_CSE_SUB_BV_010()); - execute(TC_CSE_SUB_BV_011()); - execute(TC_CSE_SUB_BV_012()); - execute(TC_CSE_SUB_BV_013()); - execute(TC_CSE_SUB_BV_014()); - execute(TC_CSE_SUB_BV_015()); - execute(TC_CSE_SUB_BV_016()); - execute(TC_CSE_SUB_BV_017()); - execute(TC_CSE_SUB_BV_018()); - execute(TC_CSE_SUB_BV_019()); - execute(TC_CSE_SUB_BV_020()); + execute(TC_CSE_SUB_CRE_001_SUB()); + execute(TC_CSE_SUB_CRE_001_SUB()); + execute(TC_CSE_SUB_CRE_002()); + execute(TC_CSE_SUB_CRE_003()); + execute(TC_CSE_SUB_NTF_001()); + execute(TC_CSE_SUB_NTF_002()); + execute(TC_CSE_SUB_UPD_001()); + execute(TC_CSE_SUB_CRE_007()); + execute(TC_CSE_SUB_DEL_008()); + execute(TC_CSE_SUB_DEL_009()); + execute(TC_CSE_SUB_CRE_010()); + execute(TC_CSE_SUB_UPD_011()); + execute(TC_CSE_SUB_UPD_012()); + execute(TC_CSE_SUB_UPD_013()); + execute(TC_CSE_SUB_UPD_014()); + execute(TC_CSE_SUB_UPD_015()); + execute(TC_CSE_SUB_UPD_016()); + execute(TC_CSE_SUB_DEL_001()); + execute(TC_CSE_SUB_UPD_018()); + execute(TC_CSE_SUB_NTF_003()); + execute(TC_CSE_SUB_UPD_020()); execute(TC_CSE_SEC_ACP_BV_001()); execute(TC_CSE_SEC_ACP_BV_002()); execute(TC_CSE_SEC_ACP_BV_003_01()); diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index 5a12508..365765f 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -7,7 +7,7 @@ * * @author oneM2M * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $ - * $Id: OneM2M_Testcases.ttcn 314 2017-06-27 09:23:19Z reinaortega $ + * $Id: OneM2M_Testcases.ttcn 319 2017-07-14 15:20:23Z reinaortega $ * @desc Module containing test cases for oneM2M * */ @@ -1654,7 +1654,7 @@ module OneM2M_Testcases { group Data_Management_and_Repository { - group g_CSE_DMR_BV_001 { + group g_CSE_DMR_RET_020 { testcase TC_CSE_DMR_BV_001_01() runs on CseTester system CseSystem { // Local variables @@ -1724,7 +1724,7 @@ module OneM2M_Testcases { } // end g_CSE_DMR_BV_001 - group g_CSE_DMR_BV_002 { + group g_CSE_DMR_RET_021 { testcase TC_CSE_DMR_BV_002_01() runs on CseTester system CseSystem { // Local variables @@ -1849,7 +1849,7 @@ module OneM2M_Testcases { } // end g_CSE_DMR_BV_002 - group g_CSE_DMR_BV_003 { + group g_CSE_DMR_RET_022 { testcase TC_CSE_DMR_BV_003_01() runs on CseTester system CseSystem { // Local variables @@ -1973,7 +1973,7 @@ module OneM2M_Testcases { } // end g_CSE_DMR_BV_003 - group g_CSE_DMR_BV_004 { + group g_CSE_DMR_RET_023 { testcase TC_CSE_DMR_BV_004_01() runs on CseTester system CseSystem { // Local variables @@ -2098,7 +2098,7 @@ module OneM2M_Testcases { } // end g_CSE_DMR_BV_004 - group g_CSE_DMR_BV_005 { + group g_CSE_DMR_RET_024 { testcase TC_CSE_DMR_BV_005_01() runs on CseTester system CseSystem { // Local variables @@ -2222,7 +2222,7 @@ module OneM2M_Testcases { } // end g_CSE_DMR_BV_005 - group g_CSE_DMR_BV_006 { + group g_CSE_DMR_RET_025 { testcase TC_CSE_DMR_BV_006_01() runs on CseTester system CseSystem { // Local variables @@ -2769,7 +2769,7 @@ module OneM2M_Testcases { if(match(int23, p_parentRequestPrimitive.resourceType)){ v_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE2_ID_STEM, "MyAe2", v_poaList), -1); // AE2 is registred p_parentRequestPrimitive.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_ae2Index)}; - p_notifyHandler.start(f_subscriptionVerificationHandler(f_getResourceAddress(v_parentIndex))); + p_notifyHandler.start(f_subscriptionVerificationHandler(v_parentIndex)); } v_parentIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_parentIndex); } @@ -2779,7 +2779,7 @@ module OneM2M_Testcases { if(match(int23, p_requestPrimitive.resourceType)){ v_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE2_ID_STEM, "MyAe2", v_poaList), -1); // AE2 is registred p_requestPrimitive.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_ae2Index)}; - p_notifyHandler.start(f_subscriptionVerificationHandler(f_getResourceAddress(v_parentIndex))); + p_notifyHandler.start(f_subscriptionVerificationHandler(v_parentIndex)); } v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); @@ -9940,13 +9940,13 @@ module OneM2M_Testcases { group Group_Managment { - - // Test objective: - // Check that the IUT rejects the creation of the group resource when member ID exceed max number - // of members. - group g_CSE_GMG_BV_001 { + group g_CSE_GMG_CRE_001 { - testcase TC_CSE_GMG_BV_001() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT rejects the creation of the group resource when member ID exceed max number of members. + * + */ + testcase TC_CSE_GMG_CRE_001() runs on CseTester system CseSystem { // Local constants const XSD.NonNegativeInteger c_maxNrOfMembers := 1; @@ -10008,15 +10008,15 @@ module OneM2M_Testcases { } - } // end group g_CSE_GMG_BV_001 + } // end group g_CSE_GMG_CRE_001 + group g_CSE_GMG_CRE_002 { - // Test objective: - // Check that the IUT rejects the creation of the group resource when the memberType cannot - // be retrieved due to lack of privilege. - group g_CSE_GMG_BV_002 { - - testcase TC_CSE_GMG_BV_002() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT rejects the creation of the group resource when the memberType cannot be retrieved due to lack of privilege. + * + */ + testcase TC_CSE_GMG_CRE_002() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -10077,15 +10077,15 @@ module OneM2M_Testcases { f_cf01Down(); } - } // end group g_CSE_GMG_BV_002 + } // end group g_CSE_GMG_CRE_002 - - // Test objective: - // Check that the IUT rejects the update of the group resource when the - // memberType cannot be retrieved due to lack of privilege. - group g_CSE_GMG_BV_003 { + group g_CSE_GMG_UPD_001 { - testcase TC_CSE_GMG_BV_003() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT rejects the update of the group resource when the memberType cannot be retrieved due to lack of privilege. + * + */ + testcase TC_CSE_GMG_UPD_001() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -10149,15 +10149,15 @@ module OneM2M_Testcases { f_cf01Down(); } - } // end group g_CSE_GMG_BV_003 + } // end group g_CSE_GMG_UPD_001 - - // Test objective: - // Check that the IUT detects the presence of duplicate member IDs during the creation of the - // group resource and removes the duplicate member IDs prior to creation of the group resource. - group g_CSE_GMG_BV_004 { + group g_CSE_GMG_CRE_003 { - testcase TC_CSE_GMG_BV_004() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT detects the presence of duplicate member IDs during the creation of the <group> resource and removes the duplicate member IDs prior to creation of the <group> resource. + * + */ + testcase TC_CSE_GMG_CRE_003() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -10211,14 +10211,14 @@ module OneM2M_Testcases { } - } // end group g_CSE_GMG_BV_004 - - // Test objective: - // Check that the IUT validates the resource type during the creation of the - // group resource when memberType attribute is not ‘mixed’. - group g_CSE_GMG_BV_005 { + } // end group g_CSE_GMG_CRE_003 - testcase TC_CSE_GMG_BV_005() runs on CseTester system CseSystem { + group g_CSE_GMG_CRE_004 { + + /** + * @desc Check that the IUT validates the resource type during the creation of the <group> resource when memberType attribute is not ‘mixed’. + */ + testcase TC_CSE_GMG_CRE_004() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_createRequest; @@ -10270,15 +10270,16 @@ module OneM2M_Testcases { f_cf01Down(); } - } // end group g_CSE_GMG_BV_005 + } // end group g_CSE_GMG_CRE_004 - // Test objective: - // Check that the IUT handles unsuccessful validation of the resource type during the creation of the - // group resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is SET_MIXED. - group g_CSE_GMG_BV_006 { + group g_CSE_GMG_CRE_005 { - testcase TC_CSE_GMG_BV_006() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT handles unsuccessful validation of the resource type during the creation of the <group> resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is SET_MIXED. + * + */ + testcase TC_CSE_GMG_CRE_005() runs on CseTester system CseSystem { //Local variables var MsgIn v_response; var RequestPrimitive v_createRequest; @@ -10311,7 +10312,7 @@ module OneM2M_Testcases { setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided"); } else { - if(v_response.primitive.responsePrimitive.primitiveContent.group_.memberTypeValidated != false){ + if(v_response.primitive.responsePrimitive.primitiveContent.group_.memberTypeValidated == false){ setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not correct"); } } @@ -10341,15 +10342,15 @@ module OneM2M_Testcases { f_cf01Down(); } - } // end group g_CSE_GMG_BV_006 + } // end group g_CSE_GMG_CRE_005 - // Test objective: - // Check that the IUT handles unsuccessful validation of the resource type during the creation of the - // group resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is - // ABANDON_group_. - group g_CSE_GMG_BV_007 { + group g_CSE_GMG_CRE_007 { - testcase TC_CSE_GMG_BV_007() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT handles unsuccessful validation of the resource type during the creation of the group resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is ABANDON_GROUP. + * + */ + testcase TC_CSE_GMG_CRE_007() runs on CseTester system CseSystem { //Local variables var MsgIn v_response; var RequestPrimitive v_createRequest; @@ -10402,15 +10403,15 @@ module OneM2M_Testcases { } - } // end group g_CSE_GMG_BV_007 + } // end group g_CSE_GMG_CRE_007 - // Test objective: - // Check that the IUT handles unsuccessful validation of the resource type during the creation of the - // group resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is - // ABANDON_MEMBER,. - group g_CSE_GMG_BV_008 { + group g_CSE_GMG_CRE_006 { - testcase TC_CSE_GMG_BV_008() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT handles unsuccessful validation of the resource type during the creation of the <group> resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is ABANDON_MEMBER,. + * + */ + testcase TC_CSE_GMG_CRE_006() runs on CseTester system CseSystem { //Local variables var MsgIn v_response; var RequestPrimitive v_createRequest; @@ -10455,7 +10456,7 @@ module OneM2M_Testcases { setverdict(fail, testcasename(), ": Error, memberIDs attribute not provided"); } else { - if(v_response.primitive.responsePrimitive.primitiveContent.group_.memberIDs[0] != f_getResourceAddress(v_containerIndex)){ + if(not match({f_getResourceId(vc_resourcesList[v_containerIndex].resource)}, v_response.primitive.responsePrimitive.primitiveContent.group_.memberIDs)){ setverdict(fail, testcasename(), ": Error, memberIDs attribute not correct"); } } @@ -10477,13 +10478,15 @@ module OneM2M_Testcases { } - } // end group g_CSE_GMG_BV_008 + } // end group g_CSE_GMG_CRE_006 - // Test objective: - // Check that the IUT detects the presence of duplicate member IDs during the update of the - // group resource and removes the duplicate member IDs prior to updating of the group resource. - group g_CSE_GMG_BV_009 { - testcase TC_CSE_GMG_BV_009() runs on CseTester system CseSystem { + group g_CSE_GMG_UPD_002 { + + /** + * @desc Check that the IUT detects the presence of duplicate member IDs during an update of the <group> resource and removes the duplicate member IDs prior to updating the <group> resource. + * + */ + testcase TC_CSE_GMG_UPD_002() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -10548,12 +10551,15 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); } - } // end group g_CSE_GMG_BV_009 + } // end group g_CSE_GMG_UPD_002 - //Test objective: - //Check that the IUT validates the resource type during an UPDATE of the <group> resource when memberType attribute is not ‘mixed’. - group g_CSE_GMG_BV_010 { - testcase TC_CSE_GMG_BV_010() runs on CseTester system CseSystem { + group g_CSE_GMG_UPD_003 { + + /** + * @desc Check that the IUT validates the resource type during an UPDATE of the <group> resource when memberType attribute is not ‘mixed’. + * + */ + testcase TC_CSE_GMG_UPD_003() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -10610,13 +10616,15 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); } - } // end group g_CSE_GMG_BV_010 + } // end group g_CSE_GMG_UPD_003 - //Test objective: - //Check that the IUT handles unsuccessful validation of the resource type during an UPDATE of the <group> resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is SET_MIXED. - group g_CSE_GMG_BV_011 { + group g_CSE_GMG_UPD_004 { - testcase TC_CSE_GMG_BV_011() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT handles unsuccessful validation of the resource type during an UPDATE of the <group> resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is SET_MIXED. + * + */ + testcase TC_CSE_GMG_UPD_004() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); @@ -10689,12 +10697,15 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); } - } // end group g_CSE_GMG_BV_011 + } // end group g_CSE_GMG_UPD_004 - //Test objective: Check that the IUT handles unsuccessful validation of the resource type during an UPDATE of the <group> resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is ABANDON_MEMBER. - group g_CSE_GMG_BV_012 { + group g_CSE_GMG_UPD_005 { - testcase TC_CSE_GMG_BV_012() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT handles unsuccessful validation of the resource type during an UPDATE of the group resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is ABANDON_MEMBER. + * + */ + testcase TC_CSE_GMG_UPD_005() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); @@ -10770,12 +10781,15 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); } - } // end group g_CSE_GMG_BV_012 + } // end group g_CSE_GMG_UPD_005 - //Test objective: Check that the IUT handles unsuccessful validation of the resource type during an update of the <group> resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is ABANDON_group_. - group g_CSE_GMG_BV_013 { + group g_CSE_GMG_UPD_006 { - testcase TC_CSE_GMG_BV_013() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT handles unsuccessful validation of the resource type during the creation of the group resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is ABANDON_GROUP. + * + */ + testcase TC_CSE_GMG_UPD_006() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); @@ -10831,11 +10845,15 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); } - } // end group g_CSE_GMG_BV_013 + } // end group g_CSE_GMG_UPD_006 - group g_CSE_GMG_BV_014 { - // Test objective: Check that the IUT detects when the number of memberIDs exceeds the limitation of maxNrOfMembers. - testcase TC_CSE_GMG_BV_014() runs on CseTester system CseSystem + group g_CSE_GMG_UPD_007 { + + /** + * @desc Check that the IUT detects when the number of memberIDs exceeds the limitation of maxNrOfMembers. + * + */ + testcase TC_CSE_GMG_UPD_007() runs on CseTester system CseSystem { //Local constants const integer c_maxNrOfMembers := 2; @@ -10898,12 +10916,15 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); } - } // end group g_CSE_GMG_BV_014 + } // end group g_CSE_GMG_UPD_007 - // Test objective: Check that the IUT detects when the value provided for maxNrOfMembers attribute is less than the value of the currentNrOfMembers attribute. - group g_CSE_GMG_BV_015 { + group g_CSE_GMG_UPD_008 { - testcase TC_CSE_GMG_BV_015() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT detects when the value provided for maxNrOfMembers attribute is less than the value of the currentNrOfMembers attribute. + * + */ + testcase TC_CSE_GMG_UPD_008() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); @@ -10959,11 +10980,15 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); } - } // end group g_CSE_GMG_BV_015 + } // end group g_CSE_GMG_UPD_008 - group g_CSE_GMG_BV_016 { - // Test objective: Check that the IUT handles validation of the resource type during an UPDATE of the <group> resource when memberIDs contains a sub-group on a temporarily unreachable Hosting CSE. - testcase TC_CSE_GMG_BV_016() runs on CseTester system CseSystem + group g_CSE_GMG_UPD_009 { + + /** + * @desc Check that the IUT handles validation of the resource type during an UPDATE of the <group> resource when memberIDs contains a sub-group on a temporarily unreachable Hosting CSE. + * + */ + testcase TC_CSE_GMG_UPD_009() runs on CseTester system CseSystem { //Local constants const ResourceType c_ResourceTypeGroup := int9; @@ -11056,11 +11081,15 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); } - } // end group g_CSE_GMG_BV_016 + } // end group g_CSE_GMG_UPD_009 - group g_CSE_GMG_BV_017 { - // Test objective: Check that the IUT handles validation of the resource type during an UPDATE of the <group> resource when memberIDs contains a sub-group on a a previously unreachable Hosting CSE that has become reachable - testcase TC_CSE_GMG_BV_017() runs on CseTester system CseSystem + group g_CSE_GMG_UPD_010 { + + /** + * @desc Check that the IUT handles validation of the resource type during an UPDATE of the group resource when memberIDs contains a sub-group on a a previously unreachable Hosting CSE that has become reachable + * @verdict + */ + testcase TC_CSE_GMG_UPD_010() runs on CseTester system CseSystem { //Local constants const ResourceType c_ResourceTypeGroup := int9; @@ -11142,31 +11171,35 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); } - } // end group g_CSE_GMG_BV_017 + } // end group g_CSE_GMG_UPD_010 - group g_CSE_GMG_BV_018 { + group g_CSE_GMG_003 { - testcase TC_CSE_GMG_BV_018_01() runs on CseTester system CseSystem { //Create - f_CSE_GMG_BV_018(m_createContainerBase); - }//end TC_CSE_GMG_BV_018_01 - - testcase TC_CSE_GMG_BV_018_02() runs on CseTester system CseSystem { //Update + /** + * @desc Check that the IUT allows a <group>/fanoutPoint OPERATION when the Originator has OPERATION_PERMISSION specified in accessControlPolicyIDs and the membersAccessControlPolicyIDs is empty in the <group> resource. + * @verdict + */ + testcase TC_CSE_GMG_003_CRE() runs on CseTester system CseSystem { //Create + f_CSE_GMG_003(m_createContainerBase); + }//end TC_CSE_GMG_003_CRE + + testcase TC_CSE_GMG_003_UPD() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateContainerBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.container.labels := v_labels_1; - f_CSE_GMG_BV_018(v_updateRequest); - }//end TC_CSE_GMG_BV_018_02 + f_CSE_GMG_003(v_updateRequest); + }//end TC_CSE_GMG_003_UPD - testcase TC_CSE_GMG_BV_018_03() runs on CseTester system CseSystem { //Retrieve - f_CSE_GMG_BV_018(m_retrieveResource("Temporary", "Temporary")); - }//end TC_CSE_GMG_BV_018_03 + testcase TC_CSE_GMG_003_RET() runs on CseTester system CseSystem { //Retrieve + f_CSE_GMG_003(m_retrieveResource("Temporary", "Temporary")); + }//end TC_CSE_GMG_003_RET - testcase TC_CSE_GMG_BV_018_04() runs on CseTester system CseSystem { //Delete - f_CSE_GMG_BV_018(m_deleteRequest("Temporary")); - }//end TC_CSE_GMG_BV_018_04 + testcase TC_CSE_GMG_003_DEL() runs on CseTester system CseSystem { //Delete + f_CSE_GMG_003(m_deleteRequest("Temporary")); + }//end TC_CSE_GMG_003_DEL - function f_CSE_GMG_BV_018(template RequestPrimitive p_requestPrimitive) runs on CseTester { + function f_CSE_GMG_003(template RequestPrimitive p_requestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -11237,32 +11270,36 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); - } // end f_CSE_GMG_BV_018 + } // end f_CSE_GMG_003 - } // end group g_CSE_GMG_BV_018 + } // end group g_CSE_GMG_003 - group g_CSE_GMG_BO_019 { + group g_CSE_GMG_002 { - testcase TC_CSE_GMG_BO_019_01() runs on CseTester system CseSystem { //Create - f_CSE_GMG_BO_019(m_createContainerBase, int62); //c_RUDNDi - }//end TC_CSE_GMG_BO_019_01 - - testcase TC_CSE_GMG_BO_019_02() runs on CseTester system CseSystem { //Update + /** + * @desc Check that IUT denies a <group>/fanOutPoint OPERATION when the Originator does not have OPERATION_PERMISSION specified in membersAccessControlPolicyIDs in the group resource. + * + */ + testcase TC_CSE_GMG_002_CRE() runs on CseTester system CseSystem { //Create + f_CSE_GMG_002(m_createContainerBase, int62); //c_RUDNDi + }//end TC_CSE_GMG_002_CRE + + testcase TC_CSE_GMG_002_UPD() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateContainerBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.container.labels := v_labels_1; - f_CSE_GMG_BO_019(v_updateRequest, int59);//c_CRDNDi - }//end TC_CSE_GMG_BO_019_02 + f_CSE_GMG_002(v_updateRequest, int59);//c_CRDNDi + }//end TC_CSE_GMG_002_UPD - testcase TC_CSE_GMG_BO_019_03() runs on CseTester system CseSystem { //Retrieve - f_CSE_GMG_BO_019(m_retrieveResource("Temporary", "Temporary"), int61);//c_CUDNDi - }//end TC_CSE_GMG_BO_019_03 + testcase TC_CSE_GMG_002_RET() runs on CseTester system CseSystem { //Retrieve + f_CSE_GMG_002(m_retrieveResource("Temporary", "Temporary"), int61);//c_CUDNDi + }//end TC_CSE_GMG_002_RET - testcase TC_CSE_GMG_BO_019_04() runs on CseTester system CseSystem { //Delete - f_CSE_GMG_BO_019(m_deleteRequest("Temporary"), int55); //c_CRUNDi - }//end TC_CSE_GMG_BO_019_04 + testcase TC_CSE_GMG_002_DEL() runs on CseTester system CseSystem { //Delete + f_CSE_GMG_002(m_deleteRequest("Temporary"), int55); //c_CRUNDi + }//end TC_CSE_GMG_002_DEL - function f_CSE_GMG_BO_019(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_accessControlOperations) runs on CseTester { + function f_CSE_GMG_002(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_accessControlOperations) runs on CseTester { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -11329,32 +11366,36 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); - } // end f_CSE_GMG_BO_019 + } // end f_CSE_GMG_002 - } // end group g_CSE_GMG_BO_019 + } // end group g_CSE_GMG_002 - group g_CSE_GMG_BV_020 { + group g_CSE_GMG_001 { - testcase TC_CSE_GMG_BV_020_01() runs on CseTester system CseSystem { //Create - f_CSE_GMG_BV_020(m_createContainerBase); - }//end TC_CSE_GMG_BV_020_01 - - testcase TC_CSE_GMG_BV_020_02() runs on CseTester system CseSystem { //Update + /** + * @desc Check that the IUT allows a <group>/fanoutPoint OPERATION when the Originator has OPERATION_PERMISSION specified in membersAccessControlPolicyIDs attribute in the group resource. + * + */ + testcase TC_CSE_GMG_001_CRE() runs on CseTester system CseSystem { //Create + f_CSE_GMG_001(m_createContainerBase); + }//end TC_CSE_GMG_001_CRE + + testcase TC_CSE_GMG_001_UPD() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateContainerBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.container.labels := v_labels_1; - f_CSE_GMG_BV_020(v_updateRequest); - }//end TC_CSE_GMG_BV_020_02 + f_CSE_GMG_001(v_updateRequest); + }//end TC_CSE_GMG_001_UPD - testcase TC_CSE_GMG_BV_020_03() runs on CseTester system CseSystem { //Retrieve - f_CSE_GMG_BV_020(m_retrieveResource("Temporary", "Temporary")); - }//end TC_CSE_GMG_BV_020_03 + testcase TC_CSE_GMG_001_RET() runs on CseTester system CseSystem { //Retrieve + f_CSE_GMG_001(m_retrieveResource("Temporary", "Temporary")); + }//end TC_CSE_GMG_001_RET - testcase TC_CSE_GMG_BV_020_04() runs on CseTester system CseSystem { //Delete - f_CSE_GMG_BV_020(m_deleteRequest("Temporary")); - }//end TC_CSE_GMG_BV_020_04 + testcase TC_CSE_GMG_001_DEL() runs on CseTester system CseSystem { //Delete + f_CSE_GMG_001(m_deleteRequest("Temporary")); + }//end TC_CSE_GMG_001_DEL - function f_CSE_GMG_BV_020(template RequestPrimitive p_requestPrimitive) runs on CseTester { + function f_CSE_GMG_001(template RequestPrimitive p_requestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -11425,32 +11466,36 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); - } // end f_CSE_GMG_BV_020 + } // end f_CSE_GMG_001 - } // end group g_CSE_GMG_BV_020 + } // end group g_CSE_GMG_001 - group g_CSE_GMG_BO_021 { + group g_CSE_GMG_004 { - testcase TC_CSE_GMG_BO_021_01() runs on CseTester system CseSystem { //Create - f_CSE_GMG_BO_021(m_createContainerBase, int62); //c_RUDNDi - }//end TC_CSE_GMG_BO_021_01 - - testcase TC_CSE_GMG_BO_021_02() runs on CseTester system CseSystem { //Update + /** + * @desc Check that IUT rejects a <group>/fanOutPoint OPERATION when the Originator does not have OPERATION_PERMISSION specified in accessControlPolicyIDs and the membersAccessControlPolicyIDs is empty in the group resource. + * + */ + testcase TC_CSE_GMG_004_CRE() runs on CseTester system CseSystem { //Create + f_CSE_GMG_004(m_createContainerBase, int62); //c_RUDNDi + }//end TC_CSE_GMG_004_CRE + + testcase TC_CSE_GMG_004_UPD() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateContainerBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.container.labels := v_labels_1; - f_CSE_GMG_BO_021(v_updateRequest, int59);//c_CRDNDi - }//end TC_CSE_GMG_BO_021_02 + f_CSE_GMG_004(v_updateRequest, int59);//c_CRDNDi + }//end TC_CSE_GMG_004_UPD - testcase TC_CSE_GMG_BO_021_03() runs on CseTester system CseSystem { //Retrieve - f_CSE_GMG_BO_021(m_retrieveResource("Temporary", "Temporary"), int61);//c_CUDNDi - }//end TC_CSE_GMG_BO_021_03 + testcase TC_CSE_GMG_004_RET() runs on CseTester system CseSystem { //Retrieve + f_CSE_GMG_004(m_retrieveResource("Temporary", "Temporary"), int61);//c_CUDNDi + }//end TC_CSE_GMG_004_RET - testcase TC_CSE_GMG_BO_021_04() runs on CseTester system CseSystem { //Delete - f_CSE_GMG_BO_021(m_deleteRequest("Temporary"), int55); //c_CRUNDi - }//end TC_CSE_GMG_BO_021_04 + testcase TC_CSE_GMG_004_DEL() runs on CseTester system CseSystem { //Delete + f_CSE_GMG_004(m_deleteRequest("Temporary"), int55); //c_CRUNDi + }//end TC_CSE_GMG_004_DEL - function f_CSE_GMG_BO_021(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_accessControlOperations) runs on CseTester { + function f_CSE_GMG_004(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_accessControlOperations) runs on CseTester { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -11517,20 +11562,24 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); - } // end f_CSE_GMG_BO_021 + } // end f_CSE_GMG_004 - } // end group g_CSE_GMG_BO_021 + } // end group g_CSE_GMG_004 - group g_CSE_GMG_BV_022 { + group g_CSE_GMG_CRE_008 { - testcase TC_CSE_GMG_BV_022_01() runs on CseTester system CseSystem { //Create + /** + * @desc Check that IUT generates a request primitive for each resource in memberIDs with no relative address appended to it. + * + */ + testcase TC_CSE_GMG_CRE_008_CRE() runs on CseTester system CseSystem { //Create var template PrimitiveContent v_contentResponse; v_contentResponse.container := mw_contentContainer_rc1; - f_CSE_GMG_BV_022(m_createContainerBase, v_contentResponse); - }//end TC_CSE_GMG_BV_022_01 + f_CSE_GMG_CRE_008(m_createContainerBase, v_contentResponse); + }//end TC_CSE_GMG_CRE_008_CRE - testcase TC_CSE_GMG_BV_022_02() runs on CseTester system CseSystem { //Update + testcase TC_CSE_GMG_CRE_008_UPD() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateAeBase; var template PrimitiveContent v_contentResponse; var Labels v_labels_1:= {"VALUE_1"}; @@ -11538,24 +11587,24 @@ module OneM2M_Testcases { v_contentResponse.aE.labels := ?; v_updateRequest.primitiveContent.aE.labels := v_labels_1; - f_CSE_GMG_BV_022(v_updateRequest, v_contentResponse); - }//end TC_CSE_GMG_BV_022_02 + f_CSE_GMG_CRE_008(v_updateRequest, v_contentResponse); + }//end TC_CSE_GMG_CRE_008_UPD - testcase TC_CSE_GMG_BV_022_03() runs on CseTester system CseSystem { //Retrieve + testcase TC_CSE_GMG_CRE_008_RET() runs on CseTester system CseSystem { //Retrieve var template PrimitiveContent v_contentResponse; v_contentResponse.aE := mw_contentAeBase; - f_CSE_GMG_BV_022(m_retrieveResource("Temporary", "Temporary"), v_contentResponse); - }//end TC_CSE_GMG_BV_022_03 + f_CSE_GMG_CRE_008(m_retrieveResource("Temporary", "Temporary"), v_contentResponse); + }//end TC_CSE_GMG_CRE_008_RET - testcase TC_CSE_GMG_BV_022_04() runs on CseTester system CseSystem { //Delete + testcase TC_CSE_GMG_CRE_008_DEL() runs on CseTester system CseSystem { //Delete var template PrimitiveContent v_contentResponse; v_contentResponse.aE := mw_contentAeBase;// TODO see with wath should it be matched - f_CSE_GMG_BV_022(m_deleteRequest("Temporary"), v_contentResponse); - }//end TC_CSE_GMG_BV_022_04 + f_CSE_GMG_CRE_008(m_deleteRequest("Temporary"), v_contentResponse); + }//end TC_CSE_GMG_CRE_008_DEL - function f_CSE_GMG_BV_022(template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { + function f_CSE_GMG_CRE_008(template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { //Local constants const integer c_numberOfResponsePrimitive := 2; @@ -11623,13 +11672,17 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); - } // end f_CSE_GMG_BV_022 + } // end f_CSE_GMG_CRE_008 - } // end group g_CSE_GMG_BV_022 + } // end group g_CSE_GMG_CRE_008 - group g_CSE_GMG_BV_023 { + group g_CSE_GMG_CRE_009 { - testcase TC_CSE_GMG_BV_023() runs on CseTester system CseSystem { + /** + * @desc Check that IUT generates a request primitive for each resource in memberIDs with a relative address appended to it. + * + */ + testcase TC_CSE_GMG_CRE_009() runs on CseTester system CseSystem { //Local constants const integer c_numberOfResponsePrimitive := 2; @@ -11709,13 +11762,17 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); - } // end f_CSE_GMG_BV_023 + } // end f_CSE_GMG_CRE_009 - } // end group g_CSE_GMG_BV_023 + } // end group g_CSE_GMG_CRE_009 - group g_CSE_GMG_BV_024 { + group g_CSE_GMG_RET_001 { - testcase TC_CSE_GMG_BV_024() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT generates a request primitive for each resource in memberIDs with a relative address appended to fanOutPoint that includes a virtual resource. + * + */ + testcase TC_CSE_GMG_RET_001() runs on CseTester system CseSystem { //Local constants const integer c_numberOfResponsePrimitive := 2; @@ -11793,9 +11850,9 @@ module OneM2M_Testcases { // Tear down f_cf01Down(); - } // end f_CSE_GMG_BV_024 + } // end f_CSE_GMG_RET_001 - } // end group g_CSE_GMG_BV_024 + } // end group g_CSE_GMG_RET_001 } // end group Group_Managment @@ -12142,8 +12199,13 @@ module OneM2M_Testcases { group Subscription_And_Notification { - group g_CSE_SUB_BV_001{ - testcase TC_CSE_SUB_BV_001_01() runs on CseTester system CseSystem { + group g_CSE_SUB_CRE_001{ + + /** + * @desc Check that the IUT rejects the creation of the <subscription> resource when the target subscribed-to RESOURCE_TYPE resource is not subscribable. + * + */ + testcase TC_CSE_SUB_CRE_001_SUB() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -12196,9 +12258,9 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_001_01 + } // end TC_CSE_SUB_CRE_001_SUB - testcase TC_CSE_SUB_BV_001_02() runs on CseTester system CseSystem { + testcase TC_CSE_SUB_CRE_001_CIN() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -12251,13 +12313,17 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_001_02 + } // end TC_CSE_SUB_CRE_001_CIN - }//end group g_CSE_SUB_BV_001 + }//end group g_CSE_SUB_CRE_001 - group g_CSE_SUB_BV_002 { + group g_CSE_SUB_CRE_002 { - testcase TC_CSE_SUB_BV_002() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT rejects the creation of the <subscription> resource when the originator does not have privileges for retrieving the subscribed-to resource. + * + */ + testcase TC_CSE_SUB_CRE_002() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -12310,13 +12376,17 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_002 + } // end TC_CSE_SUB_CRE_002 - }//end group g_CSE_SUB_BV_002 + }//end group g_CSE_SUB_CRE_002 - group g_CSE_SUB_BV_003 { + group g_CSE_SUB_CRE_003 { - testcase TC_CSE_SUB_BV_003() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT rejects the creation of the <subscription> resource when the notificationURI is not the originator and the IUT cannot send the Notify request to the notificationURI + * + */ + testcase TC_CSE_SUB_CRE_003() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -12331,10 +12401,10 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - v_aeIndex := f_cse_preamble_registerAe();//c_CUDNDi); + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription - //v_request.primitiveContent.subscription.notificationURI := {"Not Initialized"}; + v_request.primitiveContent.subscription.notificationURI := {"NotReachableNotificationURI"}; // Test Body mcaPort.send(m_request(v_request)); @@ -12363,19 +12433,23 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_003 + } // end TC_CSE_SUB_CRE_003 - }//end group g_CSE_SUB_BV_003 + }//end group g_CSE_SUB_CRE_003 - group g_CSE_SUB_BV_004 { + group g_CSE_SUB_NTF_001{ - testcase TC_CSE_SUB_BV_004() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT rejects the creation of the <subscription> resource when the notificationURI is not the originator and the IUT have received the Notify response containing Response Status Code indicating SUBSCRIPTION_CREATOR_HAS_NO_PRIVILEGE + * + */ + testcase TC_CSE_SUB_NTF_001() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var RequestPrimitive v_request; - var CseTester notifyHandler := CseTester.create("NotifyHandler"); + var template RequestPrimitive v_request; + var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control @@ -12387,15 +12461,13 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe(omit,omit);//c_CUDNDi); - v_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE2_ID_STEM, "MyAe2", {f_getAnnouncementTargetPoA("HTTP", PX_AE2_ADDRESS, "")}), -1); + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23, int4101); + + // Test Body v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription - v_request.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_ae2Index)}; - notifyHandler.start(f_subscriptionVerificationHandler(f_getResourceAddress(v_aeIndex), int4101)); - - // Test Body - mcaPort.send(m_request(v_request)); + mcaPort.send(m_request(valueof(v_request))); tc_ac.start; alt { @@ -12422,19 +12494,23 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_004 + } // end TC_CSE_SUB_NTF_001 - }//end group g_CSE_SUB_BV_004 + }//end group g_CSE_SUB_NTF_001 - group g_CSE_SUB_BV_005 { + group g_CSE_SUB_NTF_002 { - testcase TC_CSE_SUB_BV_005() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT rejects the creation of the <subscription> resource when the notificationURI is not the originator and the IUT have received the Notify response containing Response Status Code indicating SUBSCRIPTION_HOST_HAS_NO_PRIVILEGE + * + */ + testcase TC_CSE_SUB_NTF_002() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var RequestPrimitive v_request; - var CseTester notifyHandler := CseTester.create("NotifyHandler"); + var template RequestPrimitive v_request; + var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control @@ -12445,16 +12521,14 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - v_aeIndex := f_cse_preamble_registerAe(omit,omit);//c_CUDNDi); // set poa to MTC adress - v_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE2_ID_STEM, "MyAe2", {f_getAnnouncementTargetPoA("HTTP", PX_AE2_ADDRESS, "")})); + v_aeIndex := f_cse_preamble_registerAe(omit,omit);//c_CUDNDi); + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23, int5205); + + // Test Body v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription - v_request.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_ae2Index)}; - notifyHandler.start(f_subscriptionVerificationHandler(f_getResourceAddress(v_aeIndex), int5205)); - - // Test Body - mcaPort.send(m_request(v_request)); + mcaPort.send(m_request(valueof(v_request))); tc_ac.start; alt { @@ -12481,13 +12555,17 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_005 + } // end TC_CSE_SUB_NTF_002 - }//end group g_CSE_SUB_BV_005 + }//end group g_CSE_SUB_NTF_002 - group g_CSE_SUB_BV_006 { + group g_CSE_SUB_UPD_001 { - testcase TC_CSE_SUB_BV_006() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT sends Notify request to the subscriber resource when an update operation has been performed on the subscribed-to resource + * + */ + testcase TC_CSE_SUB_UPD_001() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var Labels v_labels_1:= {"VALUE_1"}; @@ -12498,10 +12576,7 @@ module OneM2M_Testcases { var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var CseTester v_notifyHandler; - var integer v_ae2Index := -1; - - v_updateRequest.primitiveContent.aE.labels := v_labels_1; - v_contentResponse.aE := mw_contentAeBase; // all attributes expected + var integer v_ae2Index := -1; // Test control @@ -12517,15 +12592,18 @@ module OneM2M_Testcases { v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request - if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body + v_contentResponse.aE := mw_contentAeBase; // all attributes expected + v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs + v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request + v_updateRequest.primitiveContent.aE.labels := v_labels_1; + mcaPort.send(m_request(v_request)); tc_ac.start; alt { @@ -12554,25 +12632,28 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_006 + } // end TC_CSE_SUB_UPD_001 - }//end group g_CSE_SUB_BV_006 + }//end group g_CSE_SUB_UPD_001 - group g_CSE_SUB_BV_007{ + group g_CSE_SUB_CRE_007{ - testcase TC_CSE_SUB_BV_007() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT sends a Notify request to the subscriber resource when eventType attribute is set to "Create_of_Direct_Child_Resource" and an create operation has been performed on the subscribed-to resource + * + */ + testcase TC_CSE_SUB_CRE_007() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_createRequest := omit; - var template PrimitiveContent v_contentResponse; + var template PrimitiveContent v_contentNotification := {container := mw_contentContainer_rc1};// all attributes expected var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; - v_contentResponse.container := mw_contentContainer_rc1; // all attributes expected // Test control // Test component configuration @@ -12583,20 +12664,20 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); - f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); - v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int3}, -)); + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); + v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription - v_request:= f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex); - if(v_notifyHandler.running) { v_notifyHandler.stop; }; - + // Test Body - v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs + v_request:= f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex); + + v_notifyHandler.start(f_cse_notifyProcedure(v_contentNotification)); // check if the notification is well received and if its content matchs mcaPort.send(m_request(v_request)); tc_ac.start; @@ -12625,25 +12706,27 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_007 + } // end TC_CSE_SUB_CRE_007 - }//end group g_CSE_SUB_BV_007 + }//end group g_CSE_SUB_CRE_007 - group g_CSE_SUB_BV_008 { + group g_CSE_SUB_DEL_008 { - testcase TC_CSE_SUB_BV_008() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT sends a Notify request to the subscriber resource when eventType attribute is set to "Delete_of_Resource" and an delete operation has been performed the subscribed-to resource + * + */ + testcase TC_CSE_SUB_DEL_008() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_subscriptionResourceIndex := -1; var template RequestPrimitive v_createRequest := omit; - var template PrimitiveContent v_contentResponse; + var template PrimitiveContent v_contentNotification := {aE:= mw_contentAeBase}; // all attributes expected; var RequestPrimitive v_deleteRequest; var CseTester v_notifyHandler; var integer v_ae2Index := -1; - - v_contentResponse.aE := mw_contentAeBase; // all attributes expected - + // Test control // Test component configuration @@ -12654,26 +12737,28 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); - f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); - v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int2}, -)); + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); + v_subscriptionResourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex );//Subscription - - v_deleteRequest:= valueof(m_deleteRequest(f_getResourceAddress(v_aeIndex))); // Ae delete request if(v_notifyHandler.running) { v_notifyHandler.stop; }; //Test Body - v_notifyHandler.start(f_CSE_SUB_BV_008(v_contentResponse)); // check if the notification is well received and if its content matchs + v_notifyHandler.start(f_cse_notifyProcedure_subscriptionDeletion(v_contentNotification)); // check if the notification is well received and if its content matchs + + v_deleteRequest:= valueof(m_deleteRequest(f_getResourceAddress(v_aeIndex))); // Ae delete request mcaPort.send(m_request(v_deleteRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; + //Update vc_resourcesIndexToBeDeleted + f_removeElementFromList (vc_resourcesIndexToBeDeleted, v_aeIndex); setverdict(pass, testcasename() & ": resource type int2 (AE) deleted successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { @@ -12697,49 +12782,17 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_008 - - function f_CSE_SUB_BV_008( template PrimitiveContent p_primitiveContent) runs on CseTester { - var MsgIn v_response; - - map(self:mcaPort, system:mcaPort); - map(self:acPort, system:acPort); + } // end TC_CSE_SUB_DEL_008 - tc_ac.start; - alt { - [] mcaPort.receive(mw_request(mw_notify(mw_contentNotification(?)))) -> value v_response { - tc_ac.stop; - if(not(match(v_response.primitive.requestPrimitive.primitiveContent.notification.subscriptionDeletion, true))) { - setverdict(fail, testcasename() & ": subscriptionDeletion attribute have to be set to TRUE"); - } - if(f_check_notificationContent(v_response.primitive.requestPrimitive, p_primitiveContent)){ - setverdict(pass, testcasename() & ": Notification received"); - } - else{ - setverdict(fail, testcasename() & ": Notification received but the content doesn't match"); - } - } - [] mcaPort.receive{ - tc_ac.stop; - setverdict(fail, testcasename() & ": Error, unexpected message received"); - } - [] tc_ac.timeout { - setverdict(inconc, testcasename() & ": No notification received"); - } - } - - mcaPort.send(m_response(valueof(m_responseNotification(int2001)))); - - unmap(self:mcaPort, system:mcaPort); - unmap(self:acPort, system:acPort); - - } //end f_CSE_SUB_BV_008 - - }//end group g_CSE_SUB_BV_008 + }//end group g_CSE_SUB_DEL_008 - group g_CSE_SUB_BV_009 { + group g_CSE_SUB_DEL_009 { - testcase TC_CSE_SUB_BV_009() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT sends a Notify request to the subscriber resource when eventType attribute is set to "Delete_of_Direct_Child_Resource" and an delete operation has been performed on a child resource of the subscribed-to resource + * + */ + testcase TC_CSE_SUB_DEL_009() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -12747,12 +12800,10 @@ module OneM2M_Testcases { var integer v_containerResourceIndex := -1; var template RequestPrimitive v_createRequest := omit; var RequestPrimitive v_deleteRequest; - var template PrimitiveContent v_contentResponse; + var template PrimitiveContent v_contentNotification := {container := mw_contentContainer_rc1}; // all attributes expected in notification; var CseTester v_notifyHandler; var integer v_ae2Index := -1; - v_contentResponse.container := mw_contentContainer_rc1; // all attributes expected in notification - // Test component configuration f_cf01Up(); @@ -12760,22 +12811,23 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi; + v_containerResourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);//Container - f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); - v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int4}, -)); - v_subscriptionResourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription (with name attribute omitted) - - v_deleteRequest := valueof(m_deleteRequest(f_getResourceAddress(v_containerResourceIndex)));// Container deletion request + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); + + v_subscriptionResourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription (with name attribute omitted) if(v_notifyHandler.running) { v_notifyHandler.stop; }; //Test Body - v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs + v_notifyHandler.start(f_cse_notifyProcedure(v_contentNotification)); // check if the notification is well received and if its content matchs + + v_deleteRequest := valueof(m_deleteRequest(f_getResourceAddress(v_containerResourceIndex)));// Container deletion request mcaPort.send(m_request(v_deleteRequest)); tc_ac.start; @@ -12805,37 +12857,72 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_009 + } // end TC_CSE_SUB_DEL_009 - }//end group g_CSE_SUB_BV_009 + }//end group g_CSE_SUB_DEL_009 + + group g_CSE_SUB_CRE_010 { + + /** + * @desc Check that the IUT stores Originator ID in the notification creator attribute when a <SUBSCRIPTION> creation request which needs verification is received and the notificationURI is not the Originator. + * + */ + testcase TC_CSE_SUB_CRE_010() runs on CseTester system CseSystem { + //Local variables + var MsgIn v_response; + var template RequestPrimitive v_request := m_createSubscriptionBase; + var integer v_aeIndex := -1; + var CseTester v_notifyHandler; + var integer v_ae2Index := -1; + + // Test control - group g_CSE_SUB_BV_010 { + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_request, int23); - testcase TC_CSE_SUB_BV_010() runs on CseTester system CseSystem { + // Test Body + v_request := f_getCreateRequestPrimitive(int23, m_createSubscriptionBase, v_aeIndex); + + mcaPort.send(m_request(valueof(v_request))); - } // end TC_CSE_SUB_BV_010 + f_is_component_done(v_notifyHandler); + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + } // end TC_CSE_SUB_CRE_010 - }//end group g_CSE_SUB_BV_010 + }//end group g_CSE_SUB_CRE_010 - group g_CSE_SUB_BV_011 { + group g_CSE_SUB_UPD_011 { - testcase TC_CSE_SUB_BV_011() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT sends a Notify request to the subscriber resource when the notificationContentType attribute is set to “modified attributes†and an update operation has been performed on the subscribed-to resource + * + */ + testcase TC_CSE_SUB_UPD_011() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var Labels v_labels_1:= {"VALUE_1"}; - var template PrimitiveContent v_contentResponse; + var template PrimitiveContent v_contentResponse := {aE := m_contentAe_allOmit}; var template RequestPrimitive v_createRequest := omit; var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; - v_updateRequest.primitiveContent.aE.labels := v_labels_1; - v_contentResponse.aE := m_contentAe_allOmit; // only modified attribute expected - v_contentResponse.aE.labels := ?; - // Test control // Test component configuration @@ -12846,20 +12933,25 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); - f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); - v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, omit, omit, omit, omit, int2); //notificationContentType ="modified attributes" + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); + v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex); //Subscription - v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); - if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body + //TODO Use f_getTemplateFromPrimitiveContent() which needs to be modified to receive the template in which the output template will be built upon + v_contentResponse.aE.labels := ?;// only modified attribute expected + v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs + + v_updateRequest.primitiveContent.aE.labels := v_labels_1; + + v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -12890,12 +12982,16 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_011 - }//end group g_CSE_SUB_BV_011 + } // end TC_CSE_SUB_UPD_011 + }//end group g_CSE_SUB_UPD_011 - group g_CSE_SUB_BV_012 { + group g_CSE_SUB_UPD_012 { - testcase TC_CSE_SUB_BV_012() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT sends a Notify request to the subscriber resource when the notificationContentType attribute is set to “ResourceID†and an update operation has been performed on the subscribed-to resource + * + */ + testcase TC_CSE_SUB_UPD_012() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -12961,11 +13057,16 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_012 - }//end group g_CSE_SUB_BV_012 + } // end TC_CSE_SUB_UPD_012 + }//end group g_CSE_SUB_UPD_012 - group g_CSE_SUB_BV_013 { - testcase TC_CSE_SUB_BV_013() runs on CseTester system CseSystem { + group g_CSE_SUB_UPD_013 { + + /** + * @desc Check that the IUT decreases the expirationCounter attribute of a subscription resource when the Hosting CSE of the subscribed-to resource successfully sends the notification request to subscriber resource(s) + * + */ + testcase TC_CSE_SUB_UPD_013() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -13046,13 +13147,17 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_013 + } // end TC_CSE_SUB_UPD_013 - }//end group g_CSE_SUB_BV_013 + }//end group g_CSE_SUB_UPD_013 - group g_CSE_SUB_BV_014 { + group g_CSE_SUB_UPD_014 { - testcase TC_CSE_SUB_BV_014() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT deletes the subscription resource when the the expirationCounter meets zero + * + */ + testcase TC_CSE_SUB_UPD_014() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -13125,13 +13230,17 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_014 + } // end TC_CSE_SUB_UPD_014 - }//end of group g_CSE_SUB_BV_014 + }//end of group g_CSE_SUB_UPD_014 - group g_CSE_SUB_BV_015 { + group g_CSE_SUB_UPD_015 { - testcase TC_CSE_SUB_BV_015() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT sends a Notify request to the subscriber resource when the “attribute†condition tag of eventNotificationCriteria attribute is set to ATTRIBUTE_NAME and an update operation has been performed on the subscribed-to resource + * + */ + testcase TC_CSE_SUB_UPD_015() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var Labels v_labels_1:= {"VALUE_1"}; @@ -13201,13 +13310,17 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_015 + } // end TC_CSE_SUB_UPD_015 - }//end group g_CSE_SUB_BV_015 + }//end group g_CSE_SUB_UPD_015 - group g_CSE_SUB_BV_016 { + group g_CSE_SUB_UPD_016 { - testcase TC_CSE_SUB_BV_016() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT doesn’t send a Notify request to the subscriber resource when the “attribute†condition tag of eventNotificationCriteria attribute is set to LIST_OF_ATTRIBUTE and doesn’t contain the ATTRIBUTE_NAME attribute updated. + * + */ + testcase TC_CSE_SUB_UPD_016() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var Labels v_labels_1:= {"VALUE_1"}; @@ -13245,7 +13358,7 @@ module OneM2M_Testcases { }; // Test Body - v_notifyHandler.start(f_CSE_SUB_BV_016()); // check that no notification is received + v_notifyHandler.start(f_CSE_SUB_UPD_016()); // check that no notification is received mcaPort.send(m_request(v_request)); tc_ac.start; @@ -13271,9 +13384,9 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_016 + } // end TC_CSE_SUB_UPD_016 - function f_CSE_SUB_BV_016() runs on CseTester { + function f_CSE_SUB_UPD_016() runs on CseTester { // Local variables var MsgIn v_response; @@ -13294,12 +13407,17 @@ module OneM2M_Testcases { unmap(self:mcaPort, system:mcaPort); unmap(self:acPort, system:acPort); - } //end f_CSE_SUB_BV_016 + } //end f_CSE_SUB_UPD_016 - }//end group g_CSE_SUB_BV_016 + }//end group g_CSE_SUB_UPD_016 - group g_CSE_SUB_BV_017{ - testcase TC_CSE_SUB_BV_017() runs on CseTester system CseSystem { + group g_CSE_SUB_DEL_001{ + + /** + * @desc Check that the IUT sends a Notify request to the AE2_RESOURCE_ADDRESS of the subscriberURI attribute when the SUBSCRIPTION_RESOURCE_ADDRESS <subscription> resource is deleted + * + */ + testcase TC_CSE_SUB_DEL_001() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; @@ -13332,7 +13450,7 @@ module OneM2M_Testcases { }; // Test Body - v_notifyHandler.start(f_CSE_SUB_BV_017(f_getResourceAddress(v_resourceIndex))); // check that no notification is received + v_notifyHandler.start(f_CSE_SUB_DEL_001(f_getResourceAddress(v_resourceIndex))); // check that no notification is received mcaPort.send(m_request(v_request)); alt { @@ -13361,9 +13479,9 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_017 + } // end TC_CSE_SUB_DEL_001 - function f_CSE_SUB_BV_017(in XSD.AnyURI p_subscriptionReference) runs on CseTester { + function f_CSE_SUB_DEL_001(in XSD.AnyURI p_subscriptionReference) runs on CseTester { // Local variables var MsgIn v_response; var template Notification v_notificationRequest := mw_contentNotificationBase; @@ -13393,14 +13511,18 @@ module OneM2M_Testcases { unmap(self:mcaPort, system:mcaPort); unmap(self:acPort, system:acPort); - } //end f_CSE_SUB_BV_017 + } //end f_CSE_SUB_DEL_001 - }//end group g_CSE_SUB_BV_017 + }//end group g_CSE_SUB_DEL_001 - group g_CSE_SUB_BV_018 { + group g_CSE_SUB_UPD_018 { - testcase TC_CSE_SUB_BV_018() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT sends aggregated notification to the subscriber resource when the number value of the batchNotify attribute is set to GROUP_LIMIT and when this number have been reached + * + */ + testcase TC_CSE_SUB_UPD_018() runs on CseTester system CseSystem { // Local variables const integer numberOfAggregatedNotification := 3; var MsgIn v_response; @@ -13439,7 +13561,7 @@ module OneM2M_Testcases { }; // Test Body - v_notifyHandler.start(f_CSE_SUB_BV_018(v_contentResponse, numberOfAggregatedNotification)); // check that no notification is received + v_notifyHandler.start(f_CSE_SUB_UPD_018(v_contentResponse, numberOfAggregatedNotification)); // check that no notification is received v_updateRequest.primitiveContent.aE.labels := v_labels_1; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 @@ -13461,9 +13583,9 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_018 + } // end TC_CSE_SUB_UPD_018 - function f_CSE_SUB_BV_018(template PrimitiveContent p_primitiveContent,in integer p_numberOfAggregatedNotification) runs on CseTester { + function f_CSE_SUB_UPD_018(template PrimitiveContent p_primitiveContent,in integer p_numberOfAggregatedNotification) runs on CseTester { // Local variables var MsgIn v_response; @@ -13498,13 +13620,17 @@ module OneM2M_Testcases { unmap(self:mcaPort, system:mcaPort); unmap(self:acPort, system:acPort); - } //end f_CSE_SUB_BV_018 + } //end f_CSE_SUB_UPD_018 - }//end group g_CSE_SUB_BV_018 + }//end group g_CSE_SUB_UPD_018 - group g_CSE_SUB_BV_019 { + group g_CSE_SUB_NTF_003 { - testcase TC_CSE_SUB_BV_019() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT sends aggregated notification to the subscriber resource when the duration value of the batchNotify attribute is set to TIME_LIMIT and when this timer expires + * + */ + testcase TC_CSE_SUB_NTF_003() runs on CseTester system CseSystem { // Local variables const integer numberOfAggregatedNotification := 3; var MsgIn v_response; @@ -13542,7 +13668,7 @@ module OneM2M_Testcases { }; // Test Body - v_notifyHandler.start(f_CSE_SUB_BV_018(v_contentResponse, 2)); // check that no notification is received + v_notifyHandler.start(f_CSE_SUB_UPD_018(v_contentResponse, 2)); // check that no notification is received v_updateRequest.primitiveContent.aE.labels := v_labels_1; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 @@ -13560,13 +13686,17 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_019 + } // end TC_CSE_SUB_NTF_003 - }//end group g_CSE_SUB_BV_019 + }//end group g_CSE_SUB_NTF_003 - group g_CSE_SUB_BV_020 { + group g_CSE_SUB_UPD_020 { - testcase TC_CSE_SUB_BV_020() runs on CseTester system CseSystem { + /** + * @desc Check that the IUT sends the latest notification to the subscriber resource when latestNotify is set to TRUE, the number value of the batchNotify attribute is set to GROUP_LIMIT and when this number have been reached + * + */ + testcase TC_CSE_SUB_UPD_020() runs on CseTester system CseSystem { // Local variables const integer numberOfAggregatedNotification := 3; var MsgIn v_response; @@ -13631,9 +13761,9 @@ module OneM2M_Testcases { //Tear down f_cf01Down(); - } // end TC_CSE_SUB_BV_020 + } // end TC_CSE_SUB_UPD_020 - }//end group g_CSE_SUB_BV_020 + }//end group g_CSE_SUB_UPD_020 }//end group Subscription_And_Notification -- GitLab