diff --git a/LibCommon/LibCommon_AbstractData.ttcn b/LibCommon/LibCommon_AbstractData.ttcn index 111d87ab4f8921f7b6b539a2803c6b41d5be2824..0710c439314c31512bbf24d39fe9d45996f82d3b 100644 --- a/LibCommon/LibCommon_AbstractData.ttcn +++ b/LibCommon/LibCommon_AbstractData.ttcn @@ -1,6 +1,6 @@ /** * @author ETSI - * @version $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_AbstractData.ttcn $ + * @version $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_AbstractData.ttcn $ * $Id: LibCommon_AbstractData.ttcn 64 2016-12-14 15:09:43Z berge $ * @desc A collection of functions for abstract data types which may be * useful in the implementation of any TTCN-3 test suite. diff --git a/LibCommon/LibCommon_BasicTypesAndValues.ttcn b/LibCommon/LibCommon_BasicTypesAndValues.ttcn index b2796484ae8b0e82ce16f1b3c2469d7bf76a9e74..318a1933e105835f437f0ad9bec0538b9d458dc3 100644 --- a/LibCommon/LibCommon_BasicTypesAndValues.ttcn +++ b/LibCommon/LibCommon_BasicTypesAndValues.ttcn @@ -1,6 +1,6 @@ /** * @author ETSI - * @version $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_BasicTypesAndValues.ttcn $ + * @version $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_BasicTypesAndValues.ttcn $ * $Id: LibCommon_BasicTypesAndValues.ttcn 64 2016-12-14 15:09:43Z berge $ * @desc A collection of basic type and value definitions which may be * useful in the implementation of any TTCN-3 test suite. <br><br> diff --git a/LibCommon/LibCommon_DataStrings.ttcn b/LibCommon/LibCommon_DataStrings.ttcn index 39f7a0e2522aa07f5518bd8a9cbcfd007dbe7707..ac6e63da04653db9bb8a684c6873a98139bb9232 100644 --- a/LibCommon/LibCommon_DataStrings.ttcn +++ b/LibCommon/LibCommon_DataStrings.ttcn @@ -1,7 +1,7 @@ /** * * @author ETSI - * @version $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_DataStrings.ttcn $ + * @version $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_DataStrings.ttcn $ * $Id: LibCommon_DataStrings.ttcn 64 2016-12-14 15:09:43Z berge $ * @desc A collection of data string type and value definitions which * may be useful in the implementation of any TTCN-3 test diff --git a/LibCommon/LibCommon_Sync.ttcn b/LibCommon/LibCommon_Sync.ttcn index cdd786d20c41d13bca7d456ceed795ad1a613706..38e29df924fe40e808448a50008ad62ccc765d27 100644 --- a/LibCommon/LibCommon_Sync.ttcn +++ b/LibCommon/LibCommon_Sync.ttcn @@ -1,6 +1,6 @@ /** * @author ETSI - * @version $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_Sync.ttcn $ + * @version $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_Sync.ttcn $ * $Id: LibCommon_Sync.ttcn 66 2017-03-06 09:59:41Z filatov $ * @desc This module implements _one_ generic synchronization mechanism * for TTCN-3 test cases with one or more test components. diff --git a/LibCommon/LibCommon_TextStrings.ttcn b/LibCommon/LibCommon_TextStrings.ttcn index db3dc6439a53d5fb9e3b37a2a2d3c01de084e4d1..213e85c1e5f90ac5afbeed7f247477f33ba0d575 100644 --- a/LibCommon/LibCommon_TextStrings.ttcn +++ b/LibCommon/LibCommon_TextStrings.ttcn @@ -1,6 +1,6 @@ /** * @author ETSI - * @version $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_TextStrings.ttcn $ + * @version $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_TextStrings.ttcn $ * $Id: LibCommon_TextStrings.ttcn 64 2016-12-14 15:09:43Z berge $ * @desc A collection of text string type and value definitions which * may be useful in the implementation of any TTCN-3 test diff --git a/LibCommon/LibCommon_Time.ttcn b/LibCommon/LibCommon_Time.ttcn index 7664296a496f4401e5d221941a451633d4d4d38a..6efbb847d1b826366b332df7742bc6a472812f4e 100644 --- a/LibCommon/LibCommon_Time.ttcn +++ b/LibCommon/LibCommon_Time.ttcn @@ -1,6 +1,6 @@ /** * @author ETSI - * @version $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_Time.ttcn $ + * @version $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_Time.ttcn $ * $Id: LibCommon_Time.ttcn 64 2016-12-14 15:09:43Z berge $ * @desc A collection of time handling functions which may be useful in * the implementation of any TTCN-3 test suite. diff --git a/LibCommon/LibCommon_VerdictControl.ttcn b/LibCommon/LibCommon_VerdictControl.ttcn index 4c693569943bac3b4cc5f4695d4117d504ddbe63..e71c7b89d68c5753552bc12219d09360cc5af3e5 100644 --- a/LibCommon/LibCommon_VerdictControl.ttcn +++ b/LibCommon/LibCommon_VerdictControl.ttcn @@ -1,6 +1,6 @@ /** * @author ETSI - * @version $URL: https://forge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_VerdictControl.ttcn $ + * @version $URL: https://oldforge.etsi.org/svn/LibCommon/tags/v1.4.0/ttcn/LibCommon_VerdictControl.ttcn $ * $Id: LibCommon_VerdictControl.ttcn 64 2016-12-14 15:09:43Z berge $ * @desc Contains generic functions which set test component verdicts * based on generic function return codes according to established diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 3138f585b33864616533fcda01e86aab701d6cc9..bacfc8472ce24825992283bdf30ca767a50eacb0 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -6,8 +6,8 @@ * All rights reserved. * * @author oneM2M - * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $ - * $Id: OneM2M_Functions.ttcn 296 2017-06-02 13:16:50Z reinaortega $ + * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $ + * $Id: OneM2M_Functions.ttcn 299 2017-06-20 12:36:36Z reinaortega $ * @desc Module containing functions for oneM2M * */ @@ -867,7 +867,97 @@ module OneM2M_Functions { unmap(self:acPort, system:acPort); } //end f_cse_notifyProcedure + + /** + * @desc It determines whether the addressing method of the given address is non-hierarchical. Not valid for CSE-Base as target + * @param p_resourceAddress + * @return boolean + */ + function f_isNonHierarchical(XSD.ID p_resourceAddress) runs on Tester return boolean { + var integer i; + var integer v_nbOfSlashes:= 0; + + for (i := 0; i < lengthof(p_resourceAddress); i:= i+1){ + if(match (p_resourceAddress[i], "/")){ + v_nbOfSlashes:= v_nbOfSlashes+1; + } + } + + if(f_isScopeCseRelative(p_resourceAddress)) { + if(v_nbOfSlashes == 0 ) { + return true; + } else { + return false; + } + + } else if (f_isScopeSpRelative(p_resourceAddress)){ + if(v_nbOfSlashes == 2 ) { + return true; + } else { + return false; + } + } else if (f_isScopeAbsolute(p_resourceAddress)){ + if(v_nbOfSlashes == 4 ) { + return true; + } else { + return false; + } + } else { + return false; + } + } + + /** + * @desc It determines whether the addressing method of the given address is hierarchical. Not valid for CSE-Base as target + * @param p_resourceAddress + * @return boolean + */ + function f_isHierarchical(XSD.ID p_resourceAddress) runs on Tester return boolean { + if(f_isNonHierarchical(p_resourceAddress)) { + return false; + } else { + return true; + } + } + /** + * @desc It determines whether the primitive scope of the given address is CSE-Relative + * @param p_resourceAddress + * @return boolean + */ + function f_isScopeCseRelative(XSD.ID p_resourceAddress) runs on Tester return boolean { + if (p_resourceAddress[0] != "/") { + return true; + } else { + return false; + } + } + + /** + * @desc It determines whether the primitive scope of the given address is SP-Relative + * @param p_resourceAddress + * @return boolean + */ + function f_isScopeSpRelative(XSD.ID p_resourceAddress) runs on Tester return boolean { + if ((p_resourceAddress[0] == "/") and (p_resourceAddress[1] != "/")){ + return true; + } else { + return false; + } + } + + /** + * @desc It determines whether the primitive scope of the given address is Absolute + * @param p_resourceAddress + * @return boolean + */ + function f_isScopeAbsolute(XSD.ID p_resourceAddress) runs on Tester return boolean { + if ((p_resourceAddress[0] == "/") and (p_resourceAddress[1] == "/")) { + return true; + } else { + return false; + } + } }//end group helpingFunctions @@ -1400,9 +1490,9 @@ module OneM2M_Functions { function f_getResourceAddress(integer p_targetResourceIndex := -1) runs on Tester return XSD.ID { var XSD.ID v_resourceAddress; - if(PX_ADDRESSING_FORMAT == e_cseRelative) { + if(vc_primitiveScope == e_cseRelative) { - if(PX_UNSTRUCTURED) { + if(vc_addressingMethod == e_nonHierarchical) { if(p_targetResourceIndex == -1) { return PX_CSE_RESOURCE_ID; } else { @@ -1417,8 +1507,8 @@ module OneM2M_Functions { } } - } else if (PX_ADDRESSING_FORMAT == e_spRelative) { - if(PX_UNSTRUCTURED) { + } else if (vc_primitiveScope == e_spRelative) { + if(vc_addressingMethod == e_nonHierarchical) { if(p_targetResourceIndex == -1) { return "/" & PX_CSE_ID; } else { @@ -1433,8 +1523,8 @@ module OneM2M_Functions { return v_resourceAddress; } } - } else if (PX_ADDRESSING_FORMAT == e_absolute) { - if(PX_UNSTRUCTURED) { + } else if (vc_primitiveScope == e_absolute) { + if(vc_addressingMethod == e_nonHierarchical) { if(p_targetResourceIndex == -1) { return "//" &"SpId" & "/" & PX_CSE_ID; } else { diff --git a/LibOneM2M/OneM2M_Pixits.ttcn b/LibOneM2M/OneM2M_Pixits.ttcn index 7fa2d172c41675d5530d927e0374f633f6ccda35..da172fcf0ec453a51f84e237c65d84562462f048 100644 --- a/LibOneM2M/OneM2M_Pixits.ttcn +++ b/LibOneM2M/OneM2M_Pixits.ttcn @@ -6,8 +6,8 @@ * All rights reserved. * * @author oneM2M - * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Pixits.ttcn $ - * $Id: OneM2M_Pixits.ttcn 288 2017-05-19 07:18:08Z reinaortega $ + * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Pixits.ttcn $ + * $Id: OneM2M_Pixits.ttcn 298 2017-06-14 07:11:13Z reinaortega $ * @desc Module containing Pixits for oneM2M * */ @@ -40,8 +40,6 @@ module OneM2M_Pixits { modulepar XSD.ID PX_CSE_RESOURCE_ID := "cseResourceId"; - modulepar boolean PX_UNSTRUCTURED := false; - modulepar XSD.ID PX_AE1_ID_STEM := ""; modulepar XSD.ID PX_AE2_ID_STEM := ""; @@ -54,7 +52,9 @@ module OneM2M_Pixits { modulepar ListOfURIs PX_ACOR := {"*"}; - modulepar AddressingFormat PX_ADDRESSING_FORMAT := e_cseRelative; + modulepar AddressingMethod PX_ADDRESSING_METHOD := e_hierarchical; + + modulepar PrimitiveScope PX_PRIMITIVE_SCOPE := e_cseRelative; modulepar charstring PX_SERIALIZATION := "XML"; diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index de47aa076b2479135f03b942d7b6550767cfd48a..7f7c449b70b63d419513dda2444ec74a96c9a4ca 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -6,8 +6,8 @@ * All rights reserved. * * @author oneM2M - * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $ - * $Id: OneM2M_Templates.ttcn 297 2017-06-02 14:21:45Z reinaortega $ + * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $ + * $Id: OneM2M_Templates.ttcn 299 2017-06-20 12:36:36Z reinaortega $ * @desc Module containing templates for oneM2M * */ @@ -198,10 +198,28 @@ module OneM2M_Templates { template (value) RequestPrimitive m_retrieveResourceFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage) modifies m_retrieveResource := { requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000), filterCriteria := { - contentType_list := {}, - attribute_list := {}, + createdBefore := omit, + createdAfter := omit, + modifiedSince := omit, + unmodifiedSince := omit, + stateTagSmaller := omit, + stateTagBigger := omit, + expireBefore := omit, + expireAfter := omit, + labels := omit, + resourceType := omit, + sizeAbove := omit, + sizeBelow := omit, + contentType_list := {}, + attribute_list := {}, filterUsage := p_filterUsage, - semanticsFilter_list := {} + limit := omit, + semanticsFilter_list := {}, + filterOperation := omit, + contentFilterSyntax := omit, + contentFilterQuery := omit, + level := omit, + offset := omit } }; @@ -214,10 +232,28 @@ module OneM2M_Templates { template (value) RequestPrimitive m_retrieveResourceDiscResTypeFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) DiscResType p_discResType, in template (value) FilterUsage p_filterUsage) modifies m_retrieveResource := { requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000), filterCriteria := { - contentType_list := {}, - attribute_list := {}, + createdBefore := omit, + createdAfter := omit, + modifiedSince := omit, + unmodifiedSince := omit, + stateTagSmaller := omit, + stateTagBigger := omit, + expireBefore := omit, + expireAfter := omit, + labels := omit, + resourceType := omit, + sizeAbove := omit, + sizeBelow := omit, + contentType_list := {}, + attribute_list := {}, filterUsage := p_filterUsage, - semanticsFilter_list := {} + limit := omit, + semanticsFilter_list := {}, + filterOperation := omit, + contentFilterSyntax := omit, + contentFilterQuery := omit, + level := omit, + offset := omit }, discoveryResultType := p_discResType }; @@ -231,10 +267,28 @@ module OneM2M_Templates { template (value) RequestPrimitive m_retrieveResourceInvalidFormatOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) modifies m_retrieveResource := { requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000), filterCriteria := { - contentType_list := {}, - attribute_list := {}, + createdBefore := omit, + createdAfter := omit, + modifiedSince := omit, + unmodifiedSince := omit, + stateTagSmaller := omit, + stateTagBigger := omit, + expireBefore := omit, + expireAfter := omit, + labels := omit, + resourceType := omit, + sizeAbove := omit, + sizeBelow := omit, + contentType_list := {}, + attribute_list := {}, filterUsage := omit, - semanticsFilter_list := {} + limit := omit, + semanticsFilter_list := {}, + filterOperation := omit, + contentFilterSyntax := omit, + contentFilterQuery := omit, + level := omit, + offset := omit } }; @@ -629,7 +683,7 @@ module OneM2M_Templates { primitiveContent := {groupAnnc_optional := mw_contentCreateGroupAnncBase} }; - /** + /** * @desc Base CREATE request primitive for MgmtCmd resource */ template (value) RequestPrimitive m_createMgmtCmdBase modifies m_create := { @@ -990,8 +1044,8 @@ module OneM2M_Templates { labels := p_labels,//O accessControlPolicyIDs := p_accessControlPolicyIds,//O expirationTime := omit,//O - dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation link := omit,//M TODO Put the right value + dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation appName := omit,//O app_ID := p_appId,//M aE_ID := omit,//NP @@ -1021,8 +1075,8 @@ module OneM2M_Templates { labels := p_labels,//MA accessControlPolicyIDs := p_accessControlPolicyIds,//MA expirationTime := ?,//MA M - dynamicAuthorizationConsultationIDs := omit, //OA - link := ?,//M + link := ?,//M + dynamicAuthorizationConsultationIDs := omit, //OA appName := omit,//OA app_ID := omit,//OA aE_ID := omit,//OA @@ -2969,6 +3023,21 @@ module OneM2M_Templates { tokenRequestInformation := * }; + template ResponsePrimitive mw_responseDiscovery := { + responseStatusCode := int2000, + requestIdentifier := ?, + primitiveContent := {uRIList := ?}, + to_ := *, + from_ := *, + originatingTimestamp := *, + resultExpirationTimestamp := *, + eventCategory := *, + contentStatus := *, + contentOffset := *, + assignedTokenIdentifiers := *, + tokenRequestInformation := * + }; + template ResponsePrimitive m_responseNotification(ResponseStatusCode p_statusCode, in template(omit) PrimitiveContent p_notification := omit) := { responseStatusCode := p_statusCode, requestIdentifier := testcasename() & "-m_responseNotification" & f_rnd(1, 1000000), diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn index cfd14808641a01dec793b025812aa0e58893119b..c0abf03c7dcca33dad452d4771dc8ee2fb49ff66 100644 --- a/LibOneM2M/OneM2M_TestSystem.ttcn +++ b/LibOneM2M/OneM2M_TestSystem.ttcn @@ -6,8 +6,8 @@ * All rights reserved. * * @author oneM2M - * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_TestSystem.ttcn $ - * $Id: OneM2M_TestSystem.ttcn 234 2017-03-20 16:37:29Z reinaortega $ + * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_TestSystem.ttcn $ + * $Id: OneM2M_TestSystem.ttcn 298 2017-06-14 07:11:13Z reinaortega $ * @desc Test System module for oneM2M * */ @@ -17,6 +17,7 @@ module OneM2M_TestSystem { import from OneM2M_TypesAndValues all; import from LibCommon_Time {modulepar all}; import from OneM2M_Ports all; + import from OneM2M_Pixits all; /* *************************************** * Test System Components @@ -31,6 +32,8 @@ module OneM2M_TestSystem { var Configurations vc_config; var MyResourcesList vc_resourcesList; var IntegerList vc_resourcesIndexToBeDeleted := {}; + var PrimitiveScope vc_primitiveScope := PX_PRIMITIVE_SCOPE; + var AddressingMethod vc_addressingMethod := PX_ADDRESSING_METHOD; } type component CseTester extends Tester { diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn index e1b33b97651ff840312cb5ee980e061c9f02896d..1c457afc31abeb257e3f48c7dff8545703fd52bf 100644 --- a/LibOneM2M/OneM2M_Types.ttcn +++ b/LibOneM2M/OneM2M_Types.ttcn @@ -6,8 +6,8 @@ * All rights reserved. * * @author oneM2M - * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Types.ttcn $ - * $Id: OneM2M_Types.ttcn 297 2017-06-02 14:21:45Z reinaortega $ + * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Types.ttcn $ + * $Id: OneM2M_Types.ttcn 298 2017-06-14 07:11:13Z reinaortega $ * @desc OneM2M data types module * */ @@ -7734,11 +7734,16 @@ group InvalidTypes { type record of integer IntegerList; - type enumerated AddressingFormat { + type enumerated PrimitiveScope { e_cseRelative, e_spRelative, e_absolute } + + type enumerated AddressingMethod { + e_nonHierarchical, + e_hierarchical + } } } @@ -7746,5 +7751,5 @@ 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'"; - 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, MgmtObj_optional, MgmtObjAnnc_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, FlexContainer_optional, GenericInterworkingOperationInstance_optional" + 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 5f23afed323e688ea103e21f31833b867a77ce55..0b2cad97effd0804d9ac0df12eb66eeea7a45e12 100644 --- a/OneM2M_TestControl.ttcn +++ b/OneM2M_TestControl.ttcn @@ -6,8 +6,8 @@ * All rights reserved. * * @author oneM2M - * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_TestControl.ttcn $ - * $Id: OneM2M_TestControl.ttcn 254 2017-05-02 15:55:08Z reinaortega $ + * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_TestControl.ttcn $ + * $Id: OneM2M_TestControl.ttcn 299 2017-06-20 12:36:36Z reinaortega $ * @desc Test control module for oneM2M * */ @@ -244,6 +244,11 @@ module OneM2M_TestControl { execute(TC_CSE_GMG_BV_022_03()); execute(TC_CSE_GMG_BV_022_04()); execute(TC_CSE_DIS_BV_001()); + execute(TC_CSE_DIS_BV_003()); + execute(TC_CSE_DIS_BV_004()); + execute(TC_CSE_DIS_BO_005()); + execute(TC_CSE_DIS_BO_006()); + execute(TC_CSE_DIS_BI_007()); execute(TC_CSE_SUB_BV_001_01()); execute(TC_CSE_SUB_BV_001_02()); execute(TC_CSE_SUB_BV_002()); diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index d6cea887e2c51aa35b9fc42e05c3a02d3722c195..74eeba57b16edbab8f2665e6a50dbcff6e008df8 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -6,8 +6,8 @@ * All rights reserved. * * @author oneM2M - * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $ - * $Id: OneM2M_Testcases.ttcn 297 2017-06-02 14:21:45Z reinaortega $ + * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $ + * $Id: OneM2M_Testcases.ttcn 299 2017-06-20 12:36:36Z reinaortega $ * @desc Module containing test cases for oneM2M * */ @@ -3694,7 +3694,9 @@ module OneM2M_Testcases { var RequestPrimitive v_request; var integer v_aeIndex := -1; - var XSD.ID v_resourceId := "nonexisting"; + var XSD.ID v_resourceId := "nonExistingId"; + var XSD.ID v_resourceName := "nonExistingName"; + var XSD.ID v_targetResourceAddress; // Test control @@ -3707,11 +3709,15 @@ module OneM2M_Testcases { v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); // Test Body - if(PX_UNSTRUCTURED and (PX_ADDRESSING_FORMAT == e_cseRelative)) { - mcaPort.send(m_request(m_retrieveResource(v_resourceId, f_getOriginator(v_aeIndex)))); + if((vc_addressingMethod == e_nonHierarchical) and (vc_primitiveScope == e_cseRelative)) { + v_targetResourceAddress := v_resourceId; + } else if (vc_addressingMethod == e_nonHierarchical) { + v_targetResourceAddress := f_getResourceAddress() & "/" & v_resourceId; } else { - mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_aeIndex) & "/" & v_resourceId, f_getOriginator(v_aeIndex)))); + v_targetResourceAddress := f_getResourceAddress(v_aeIndex) & "/" & v_resourceName; } + + mcaPort.send(m_request(m_retrieveResource(v_targetResourceAddress, f_getOriginator(v_aeIndex)))); tc_ac.start; alt { @@ -10537,12 +10543,19 @@ module OneM2M_Testcases { group g_CSE_DIS_BV_001{ testcase TC_CSE_DIS_BV_001() runs on CseTester system CseSystem { // Local variables +<<<<<<< HEAD var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; +======= + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + var integer v_childResourceIndex := -1; +>>>>>>> master const ResourceType c_containerResourceType := int3; // Test control @@ -10556,11 +10569,16 @@ module OneM2M_Testcases { v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); +<<<<<<< HEAD +======= + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); +>>>>>>> master v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1)); mcaPort.send(m_request(v_request)); tc_ac.start; alt { +<<<<<<< HEAD [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response { tc_ac.stop; if(not ischosen(v_response.primitive.responsePrimitive.primitiveContent.uRIList)){ @@ -10570,6 +10588,15 @@ module OneM2M_Testcases { { setverdict(pass, testcasename() & ": URI List Representation available"); } +======= + [] mcaPort.receive(mw_response(mw_responseDiscovery)){ + tc_ac.stop; + setverdict(pass, testcasename() & ": URI List Representation available"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong responseStatusCode while retrieving resource"); +>>>>>>> master } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; @@ -10597,8 +10624,12 @@ module OneM2M_Testcases { var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var RequestPrimitive v_request; +<<<<<<< HEAD var CseTester v_notifyHandler; var integer v_ae2Index := -1; +======= + var integer v_childResourceIndex := -1; +>>>>>>> master const ResourceType c_containerResourceType := int3; // Test control @@ -10612,21 +10643,41 @@ module OneM2M_Testcases { v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); +<<<<<<< HEAD +======= + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); +>>>>>>> master v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1)); mcaPort.send(m_request(v_request)); tc_ac.start; alt { +<<<<<<< HEAD [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response { tc_ac.stop; if(not ischosen(v_response.primitive.responsePrimitive.primitiveContent.uRIList)){ +======= + [] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value v_response { + tc_ac.stop; + if(sizeof(v_response.primitive.responsePrimitive.primitiveContent.uRIList) == 0){ +>>>>>>> master setverdict(pass, testcasename() & ": No Content is present"); } else { +<<<<<<< HEAD setverdict(fail, testcasename() & ": Content available"); } } +======= + setverdict(fail, testcasename() & ": Wrong content available in URIList element"); + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong responseStatusCode while retrieving resource"); + } +>>>>>>> master [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); @@ -10652,8 +10703,12 @@ module OneM2M_Testcases { var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var RequestPrimitive v_request; +<<<<<<< HEAD var CseTester v_notifyHandler; var integer v_ae2Index := -1; +======= + var integer v_childResourceIndex := -1; +>>>>>>> master const ResourceType c_containerResourceType := int3; // Test control @@ -10667,11 +10722,16 @@ module OneM2M_Testcases { v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); +<<<<<<< HEAD +======= + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); +>>>>>>> master v_request := valueof(m_retrieveResourceDiscResTypeFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int2, int1)); mcaPort.send(m_request(v_request)); tc_ac.start; alt { +<<<<<<< HEAD [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value v_response { tc_ac.stop; if(not ischosen(v_response.primitive.responsePrimitive.primitiveContent.uRIList)){ @@ -10682,6 +10742,20 @@ module OneM2M_Testcases { setverdict(pass, testcasename() & ": URI List Representation containing unstructured addresses available"); } } +======= + [] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value v_response { + tc_ac.stop; + if (f_isNonHierarchical(v_response.primitive.responsePrimitive.primitiveContent.uRIList[0])) { + setverdict(pass, testcasename() & ": Non-hierarchical address form present in URIList element"); + } else { + setverdict(fail, testcasename() & ": Non-hierarchical address form absent in URIList representation"); + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong responseStatusCode while retrieving resource"); + } +>>>>>>> master [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); @@ -10700,6 +10774,67 @@ module OneM2M_Testcases { } //end group g_CSE_DIS_BV_004 +<<<<<<< HEAD +======= + group g_CSE_DIS_BO_005{ + testcase TC_CSE_DIS_BO_005() runs on CseTester system CseSystem { + // Local variables + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + var integer v_childResourceIndex := -1; + var integer v_acpAuxIndex := -1; + const ResourceType c_containerResourceType := int3; + + // Test control + if(not(PICS_ACP_SUPPORT)) { + log(testcasename() & ":AccessControlPolicy support is required for executing this test case"); + stop; + } + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_acpAuxIndex := f_cse_preamble_createAcpAux(-, int31);//c_CRUDN) + + v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)});//AE1 is registred; + + v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); + v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1)); + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) { + tc_ac.stop; + setverdict(pass, testcasename() & ": Access denied to discovery operation for resource " & f_getResourceAddress(v_resourceIndex)); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong response status code while discovering " & f_getResourceAddress(v_resourceIndex) & " without having privileges"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Discovering " & f_getResourceAddress(v_resourceIndex) & " without having privileges"); + } + [] tc_ac.timeout { + setverdict(fail, testcasename() & ": No answer while discovering resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + } // end TC_CSE_DIS_BO_005 + + } //end group g_CSE_DIS_BO_005 + +>>>>>>> master group g_CSE_DIS_BO_006 { testcase TC_CSE_DIS_BO_006() runs on CseTester system CseSystem { @@ -10708,9 +10843,14 @@ module OneM2M_Testcases { var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var RequestPrimitive v_request; +<<<<<<< HEAD var CseTester v_notifyHandler; var integer v_ae2Index := -1; const ResourceType c_containerResourceType := int3; +======= + const ResourceType c_containerResourceType := int3; + var XSD.ID v_resourceId := "nonexisting"; +>>>>>>> master // Test control @@ -10721,8 +10861,18 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; +<<<<<<< HEAD v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1)); +======= + + if(PX_ADDRESSING_METHOD == e_nonHierarchical and (PX_PRIMITIVE_SCOPE == e_cseRelative)) { + v_request := valueof(m_retrieveResourceFilterUsageOption(v_resourceId, f_getOriginator(v_aeIndex), int1)); + } else { + v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_aeIndex) & "/" & v_resourceId, f_getOriginator(v_resourceIndex), int1)); + } + +>>>>>>> master mcaPort.send(m_request(v_request)); tc_ac.start; alt { @@ -10733,7 +10883,15 @@ module OneM2M_Testcases { } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; +<<<<<<< HEAD setverdict(fail, testcasename() & ": Error while retrieving resource"); +======= + setverdict(fail, testcasename() & ": Wrong response status code while retrieving resource"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong response while retrieving resource"); +>>>>>>> master } [] tc_ac.timeout { setverdict(fail, testcasename() & ": No answer while retrieving resource"); @@ -10759,6 +10917,10 @@ module OneM2M_Testcases { var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; +<<<<<<< HEAD +======= + var integer v_childResourceIndex := -1; +>>>>>>> master const ResourceType c_containerResourceType := int3; // Test control @@ -10771,7 +10933,12 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; +<<<<<<< HEAD v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); +======= + v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); + v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); +>>>>>>> master v_request := valueof(m_retrieveResourceInvalidFormatOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -10783,7 +10950,15 @@ module OneM2M_Testcases { } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; +<<<<<<< HEAD setverdict(fail, testcasename() & ": Error while retrieving resource"); +======= + setverdict(fail, testcasename() & ": Wrong response status code while retrieving resource"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Wrong response while retrieving resource"); +>>>>>>> master } [] tc_ac.timeout { setverdict(fail, testcasename() & ": No answer while retrieving resource");