Definitions of needed test suites and test cases 97/51397/11
authorTomas Janciga <tjanciga@cisco.com>
Fri, 3 Feb 2017 13:24:50 +0000 (05:24 -0800)
committerJamo Luhrsen <jluhrsen@redhat.com>
Tue, 7 Mar 2017 22:28:22 +0000 (22:28 +0000)
Change-Id: Iefcbad17a22f2287a332bed1069dcbce0280e697
Signed-off-by: Tomas Janciga <tjanciga@cisco.com>
26 files changed:
csit/libraries/IoTDM/IoTDMKeywords.robot [new file with mode: 0644]
csit/libraries/IoTDM/ciotdm.py [moved from csit/libraries/ciotdm.py with 100% similarity]
csit/libraries/IoTDM/criotdm.py [moved from csit/libraries/criotdm.py with 100% similarity]
csit/libraries/IoTDM/iotdm.py [moved from csit/libraries/iotdm.py with 100% similarity]
csit/libraries/IoTDM/riotdm.py [moved from csit/libraries/riotdm.py with 100% similarity]
csit/suites/iotdm/basic/000_IoTDMSecurityNoAuthTable.txt [new file with mode: 0644]
csit/suites/iotdm/basic/000_ResourceAttributesNotes.txt [new file with mode: 0644]
csit/suites/iotdm/basic/010_PrimitveParameters.robot
csit/suites/iotdm/basic/020_ResourceAttributesCseBase.robot [new file with mode: 0644]
csit/suites/iotdm/basic/021_ResourceAttributesContainer.robot
csit/suites/iotdm/basic/022_ResourceAttributesContentInstance.robot
csit/suites/iotdm/basic/023_ResourceAttributesAE.robot
csit/suites/iotdm/basic/024_ResourceAttributesACP.robot
csit/suites/iotdm/basic/025_ResourceAttributesNode.robot
csit/suites/iotdm/basic/026_ResourceAttributesGroup.robot [new file with mode: 0644]
csit/suites/iotdm/basic/090_ResourceHierarchyAddressing.robot [new file with mode: 0644]
csit/suites/iotdm/basic/091_ResourceHierarchyDelete.robot
csit/suites/iotdm/basic/092_ResourceHierarchyAE_CNT_CIN.robot
csit/suites/iotdm/basic/093_ResourceHierarchyChildResources.robot [new file with mode: 0644]
csit/suites/iotdm/basic/094_ResourceHierarchyPersistence.robot [new file with mode: 0644]
csit/suites/iotdm/basic/101_ProceduresLatestOldest.robot [new file with mode: 0644]
csit/suites/iotdm/basic/102_ProceduresContent.robot [new file with mode: 0644]
csit/suites/iotdm/basic/103_ProceduresGroupMgmt.robot [new file with mode: 0644]
csit/suites/iotdm/basic/104_ProceduresACP.robot [new file with mode: 0644]
csit/suites/iotdm/basic/105_ProceduresRegistration.robot [new file with mode: 0644]
csit/suites/iotdm/basic/210_IoTDMSecurityNoAuth.robot [new file with mode: 0644]

diff --git a/csit/libraries/IoTDM/IoTDMKeywords.robot b/csit/libraries/IoTDM/IoTDMKeywords.robot
new file mode 100644 (file)
index 0000000..d1f9952
--- /dev/null
@@ -0,0 +1,12 @@
+*** Settings ***
+Documentation     Keywords specific for IoTDM test suites.
+Library           ./criotdm.py
+
+*** Variables ***
+
+*** Keywords ***
+IOTDM Basic Suite Setup
+    [Arguments]    ${odl_ip_address}    ${odl_user_name}    ${odl_password}
+    [Documentation]    Set up basic test suite
+    ${iserver} =    Connect To Iotdm    ${odl_ip_address}    ${odl_user_name}    ${odl_password}    http
+    Set Suite Variable    ${iserver}
diff --git a/csit/suites/iotdm/basic/000_IoTDMSecurityNoAuthTable.txt b/csit/suites/iotdm/basic/000_IoTDMSecurityNoAuthTable.txt
new file mode 100644 (file)
index 0000000..21b4a1f
--- /dev/null
@@ -0,0 +1,106 @@
+# Important: It seems that data driven approach is much more appropriate for implementation
+# of TCs described by tables in this file.
+
+# TODO implement negative and positive TCs for L0 security level
+# TODO according to this table
+# TODO There are described correct reasons of failures which needs to be verified in TCs
+
+#  --------------------------------------------------------------------------------------------------------------------
+# | Table 1: security level L0 configured at IoTDM core AND used OneM2M protocol provider module
+#  --------------------------------------------------------------------------------------------------------------------
+# | TC  | Target CSE    | Originator    | Originator    | Registration  | Result    | Notes
+# |     |               | entity type   | is registered | of entity     |           |
+# ---------------------------------------------------------------------------------------------------------------------
+# |     | Local         | AE            | No            | -             | Pass      |
+# |     | Local         | AE            | No            | AE            | Pass      |
+# |     | Local         | AE            | No            | another AE    | Pass      |
+# |     | Local         | AE            | No            | CSE           | Pass      | IoTDM doesn't know if it's AE or not
+# |     | Local         | AE            | Yes           | -             | Pass      |
+# |     | Local         | AE            | Yes           | AE            | Fail      | already registered
+# |     | Local         | AE            | Yes           | another AE    | Pass      |
+# |     | Local         | AE            | Yes           | CSE           | Fail      | AE can't register CSE
+# |     | Local         | CSE           | No            | -             | Pass      |
+# |     | Local         | CSE           | No            | AE            | Pass      | IoTDM doesn't know if it's CSE or not
+# |     | Local         | CSE           | No            | CSE           | Pass      |
+# |     | Local         | CSE           | No            | another CSE   | Pass      | IoTDM doesn't know right CSE-ID
+# |     | Local         | CSE           | Yes           | -             | Pass      |
+# |     | Local         | CSE           | Yes           | AE            | Fail      | CSE can't register AE
+# |     | Local         | CSE           | Yes           | another CSE   | Fail      | CSE can't register another CSE
+# |     | Local         | CSE           | Yes           | CSE           | Fail      | already registered
+# |     | Remote        | AE, C-AE-ID   | No            | -             | Pass      | IoTDM doesn't know if it's AE or not
+# |     | Remote        | AE, C-AE-ID   | No            | AE            | Fail      | registration can't be forwarded
+# |     | Remote        | AE, C-AE-ID   | No            | another AE    | Fail      | registration can't be forwarded
+# |     | Remote        | AE, C-AE-ID   | No            | CSE           | Fail      | registration can't be forwarded
+# |     | Remote        | AE, C-AE-ID   | Yes           | -             | Fail      | request with originator set to C-AE-ID must not be forwarded
+# |     | Remote        | AE, C-AE-ID   | Yes           | AE            | Fail      | registration can't be forwarded
+# |     | Remote        | AE, C-AE-ID   | Yes           | another AE    | Fail      | registration can't be forwarded
+# |     | Remote        | AE, C-AE-ID   | Yes           | CSE           | Fail      | registration can't be forwarded
+# |     | Remote        | AE            | No            | -             | Pass      |
+# |     | Remote        | AE            | No            | AE            | Fail      | registration can't be forwarded
+# |     | Remote        | AE            | No            | another AE    | Fail      | registration can't be forwarded
+# |     | Remote        | AE            | No            | CSE           | Fail      | registration can't be forwarded
+# |     | Remote        | AE            | Yes           | -             | Pass      |
+# |     | Remote        | AE            | Yes           | AE            | Fail      | registration can't be forwarded
+# |     | Remote        | AE            | Yes           | another AE    | Fail      | registration can't be forwarded
+# |     | Remote        | AE            | Yes           | CSE           | Fail      | registration can't be forwarded
+# |     | Remote        | CSE           | No            | -             | Pass      |
+# |     | Remote        | CSE           | No            | AE            | Fail      | registration can't be forwarded
+# |     | Remote        | CSE           | No            | CSE           | Fail      | registration can't be forwarded
+# |     | Remote        | CSE           | No            | another CSE   | Fail      | registration can't be forwarded
+# |     | Remote        | CSE           | Yes           | -             | Pass      |
+# |     | Remote        | CSE           | Yes           | AE            | Fail      | registration can't be forwarded
+# |     | Remote        | CSE           | Yes           | CSE           | Fail      | registration can't be forwarded
+# |     | Remote        | CSE           | Yes           | another CSE   | Fail      | registration can't be forwarded
+
+
+# TODO implement negative and positive TCs for L1 security level configured
+# TODO at IoTDM core and at protocol provider modules
+# TODO according to this table
+# TODO There are described correct reasons of failures which needs to be verified in TCs
+
+#  --------------------------------------------------------------------------------------------------------------------
+# | Table 2: security level L1 configured at IoTDM core OR used OneM2M protocol provider module (need to test both cases)
+#  --------------------------------------------------------------------------------------------------------------------
+# | TC  | Target CSE    | Originator    | Originator    | Registration  | Result    | Notes
+# |     |               | entity type   | is registered | of entity     |           |
+# ---------------------------------------------------------------------------------------------------------------------
+# |     | Local         | AE            | No            | -             | Fail      | originator not registered
+# |     | Local         | AE            | No            | AE            | Pass      |
+# |     | Local         | AE            | No            | another AE    | Pass      |
+# |     | Local         | AE            | No            | CSE           | Pass      | IoTDM doesn't know if it's AE or not
+# |     | Local         | AE            | Yes           | -             | Pass      |
+# |     | Local         | AE            | Yes           | AE            | Fail      | already registered
+# |     | Local         | AE            | Yes           | another AE    | Pass      |
+# |     | Local         | AE            | Yes           | CSE           | Fail      | AE can't register CSE
+# |     | Local         | CSE           | No            | -             | Fail      | originator not registered
+# |     | Local         | CSE           | No            | AE            | Pass      | IoTDM doesn't know if it's CSE or not
+# |     | Local         | CSE           | No            | CSE           | Pass      |
+# |     | Local         | CSE           | No            | another CSE   | Pass      | IoTDM doesn't know right CSE-ID
+# |     | Local         | CSE           | Yes           | -             | Pass      |
+# |     | Local         | CSE           | Yes           | AE            | Fail      | CSE can't register AE
+# |     | Local         | CSE           | Yes           | another CSE   | Fail      | CSE can't register another CSE
+# |     | Local         | CSE           | Yes           | CSE           | Fail      | already registered
+# |     | Remote        | AE, C-AE-ID   | No            | -             | Fail      | originator not registered
+# |     | Remote        | AE, C-AE-ID   | No            | AE            | Fail      | registration can't be forwarded
+# |     | Remote        | AE, C-AE-ID   | No            | another AE    | Fail      | registration can't be forwarded
+# |     | Remote        | AE, C-AE-ID   | No            | CSE           | Fail      | registration can't be forwarded
+# |     | Remote        | AE, C-AE-ID   | Yes           | -             | Fail      | request with originator set to C-AE-ID must not be forwarded
+# |     | Remote        | AE, C-AE-ID   | Yes           | AE            | Fail      | registration can't be forwarded
+# |     | Remote        | AE, C-AE-ID   | Yes           | another AE    | Fail      | registration can't be forwarded
+# |     | Remote        | AE, C-AE-ID   | Yes           | CSE           | Fail      | registration can't be forwarded
+# |     | Remote        | AE            | No            | -             | Fail      | originator not registered
+# |     | Remote        | AE            | No            | AE            | Fail      | registration can't be forwarded
+# |     | Remote        | AE            | No            | another AE    | Fail      | registration can't be forwarded
+# |     | Remote        | AE            | No            | CSE           | Fail      | registration can't be forwarded
+# |     | Remote        | AE            | Yes           | -             | Pass      |
+# |     | Remote        | AE            | Yes           | AE            | Fail      | registration can't be forwarded
+# |     | Remote        | AE            | Yes           | another AE    | Fail      | registration can't be forwarded
+# |     | Remote        | AE            | Yes           | CSE           | Fail      | registration can't be forwarded
+# |     | Remote        | CSE           | No            | -             | Fail      | originator not registered
+# |     | Remote        | CSE           | No            | AE            | Fail      | registration can't be forwarded
+# |     | Remote        | CSE           | No            | CSE           | Fail      | registration can't be forwarded
+# |     | Remote        | CSE           | No            | another CSE   | Fail      | registration can't be forwarded
+# |     | Remote        | CSE           | Yes           | -             | Pass      |
+# |     | Remote        | CSE           | Yes           | AE            | Fail      | registration can't be forwarded
+# |     | Remote        | CSE           | Yes           | CSE           | Fail      | registration can't be forwarded
+# |     | Remote        | CSE           | Yes           | another CSE   | Fail      | registration can't be forwarded
diff --git a/csit/suites/iotdm/basic/000_ResourceAttributesNotes.txt b/csit/suites/iotdm/basic/000_ResourceAttributesNotes.txt
new file mode 100644 (file)
index 0000000..c61e5cb
--- /dev/null
@@ -0,0 +1,86 @@
+Each TC testing common or specific resouce attribute should follow these steps.
+Such TCs can be split into multiple TCs if needed.
+
+Resource attributes:
+Test CRUD operations with resource with the attribute set. Result codes are verified
+for positive and negative TCs and error message is checked for negative TCs. Retrieve operation is
+performed after each TC in order to verify whether the negative or positive TC resulted with
+created resouce or non-created resource respectively.
+
+
+Attribute elements:
+Apply the same approach as in case of resource attributes also to attribute elements.
+
+
+TCs for resource attributes and attribute elements:
+
+    ...     C/R positive: Create with valid value
+    ...     C/R negative: Create with invalid value
+    ...     C/R negative: Create with multiple attributes/elements
+    ...     C/R negative: Create with attribute set to null
+
+    ...     U(add)/R positive: Update with valid value
+    ...     U(add)/R negative: Update with invalid value
+    ...     U(add)/R negative: Update with multiple valid values
+    ...     U(add)/R negative: Update with one valid and one invalid value
+
+    ...     U(modify)/R positive: Update with valid value
+    ...     U(modify)/R negative: Update with invalid value
+    ...     U(modify)/R negative: Update with multiple valid values
+    ...     U(modify)/R negative: Update with one valid and one invalid value
+
+    ...     U(delete)/R positive: Update with setting value to null i.e. delete attribute
+    ...     U(delete)/R negative: Update non-existing attribute to null
+    ...     U(delete)/R negative: Update with two attributes set to null
+    ...     U(delete)/R negative: Update with one attribute set to null and one to valid value
+
+    ...     D/R positive: Delete resouce with attribute set
+
+
+TCs specific to resource attributes only:
+    ...     TODO: We need to test also operations targetted to the attribute
+
+TCs testing non-existing attributes and elements:
+    ...     C/R negative: Create with non-existing attribute/element
+    ...     U(add)/R negative: Update with non-existing attribute/element
+    ...     U(delete)/R negative: Update with non-existing attribute/element
+
+
+Test suites testing resource attributes and their elements should be structured according to this
+template:
+    1. Mandatory common/specific attributes only
+        -> C/R (positive)
+        -> D/R (positive)
+
+    2. TCs for single common attribute
+        note: some attributes can't be C/U at all
+        a. valid resource operations
+            -> C/R
+            -> U(add)/R
+            -> U(modify)/R
+            -> U(delete)/R
+            -> D/R
+        b. valid resource attribute operations
+            TODO: need to check if supported
+
+        c. invalid resource cases:
+            -> all operations with resources which are NP (not permitted)
+            -> C/R - invalid value
+            -> C/R - multiple ocurrences
+            -> U(add)/R - invalid value
+            -> U(add)/R - multiple occurrences
+            -> U(modify)/R - invalid value
+            -> U(modify)/R - multiple occurrences
+            -> U(delete)/R - multiple occurrences
+
+        d. invalid resource attribute operations
+            TODO: need to check if supported
+
+    3. TCs for single specific attribute
+        Like in case of 2.
+
+    4. All attribute TCs
+        a. all common, all specific
+        b. negative: try to create/update with non-existing attribute
+
+    5. Test C/R/U/D with all valid RCN values with resource with all common and all specific attributes set
index eb20f246ad9f5f18c8a08d918b0b1e4644cb7218..915d5c7f87a9fad5c6c061fc11e59faaf18583af 100644 (file)
@@ -1,37 +1,90 @@
 *** Settings ***
 Documentation     Testing of request and response primitives parameters
-Suite Setup       Connect And Create The Tree
-Suite Teardown    Kill The Tree    ${ODL_SYSTEM_IP}    InCSE1    admin    admin
+...               Check specifications for more details:
+...               Request primitive parameters: TS-0004: 7.2.1.1 Request primitive format
+...               Response primitive parameters: TS-0004: 7.2.1.2 Response primitive format
+...               This test suite should be executed for all supported protocols, communication methods and
+...               content types and so it should cover all scenarios resulting in protocol specific processing.
+Suite Setup       Setup Suite
+Suite Teardown    Kill The Tree    ${ODL_SYSTEM_1_IP}    InCSE1    admin    admin
 Resource          ../../../libraries/SubStrings.robot
-Library           ../../../libraries/criotdm.py
+Library           ../../../libraries/IoTDM/criotdm.py
 Library           Collections
+Resource          ../../../variables/Variables.robot
+Resource          ../../../libraries/IoTDM/IoTDMKeywords.robot
 
 *** Variables ***
-${httphost}       ${ODL_SYSTEM_IP}
-${httpuser}       admin
-${httppass}       admin
 ${rt_ae}          2
 ${rt_container}    3
 ${rt_contentInstance}    4
 
 *** Test Cases ***
-Set Suite Variable
-    ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
-    Set Suite Variable    ${iserver}
-    #==================================================
-    #    ResultContent(rcn) Test
-    #==================================================
-
-1.1 rcn is legal in create
-    [Documentation]    rcn=1, 2, 3, 0 is legal
+1.00 REQ: Create: With mandatory parameters only
+    [Documentation]    Tests Create REQ with mandatory parameters only.
+    ...    Note: Multiple variations of positive and negative scenarios should be tested.
+    ...    E.g.: Test all possible addressing formats for target
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01 REQ: Create: Missing mandatory parameters
+    [Documentation]    NEGATIVE: Tests multiple cases of Create REQ with some mandatory parameter(s) missing.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02 REQ: Create: With not permitted parameters
+    [Documentation]    NEGATIVE: Tests multiple cases of Create REQ with not permitted parameter(s).
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03 REQ: Create: With Role IDs parameter
+    [Documentation]    Tests Create REQ with Role IDs parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.04 REQ: Create: With Originating Timestamp parameter
+    [Documentation]    Tests Create REQ with Originating Timestamp parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.05 REQ: Create: With Request Expiration Timestamp parametr
+    [Documentation]    Tests Create REQ with Request Expiration Timestamp parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.06 REQ: Create: With Result Expiration Time parameter
+    [Documentation]    Tests Create REQ with Result Expiration Time parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.07 REQ: Create: With Operation Execution Time parameter
+    [Documentation]    Tests Create REQ with Operation Execution Time parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.08 REQ: Create: With Response Type parameter
+    [Documentation]    Tests Create REQ with Response Type parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.09 REQ: Create: With Result Persistence parameter
+    [Documentation]    Tests Create REQ with Result Persistence parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.10.1 REQ: Create: With Result Content parameter - legal
+    [Documentation]    Tests Create REQ with Result Content parameter set to legal values.
+    ...    rcn=1, 2, 3, 0 is legal
+    # TODO: check with TS-0004: 7.5.2 Elements contained in the Content primitive parameter
     ${attr} =    Set Variable    "api":"jb","apn":"jb2","or":"http://hey/you","rr":true
     : FOR    ${rcn}    IN    \    1    2    3
     ...    0
     \    ${r} =    Create Resource With Command    ${iserver}    InCSE1    ${rt_ae}    rcn=${rcn}
     \    ...    ${attr}
 
-1.2 rcn is illegal in create
-    [Documentation]    rcn=4, 5, 6, 7 is illegal
+1.10.2 REQ: Create: With Result Content parameter - illegal
+    [Documentation]    NEGATIVE: Tests Create REQ with Result Content parameter set to illegal values.
+    ...    rcn=4, 5, 6, 7 is illegal
+    # TODO: check with TS-0004: 7.5.2 Elements contained in the Content primitive parameter
     ${attr} =    Set Variable    "api":"jb","apn":"jb2","or":"http://hey/you","rr":true
     : FOR    ${rcn}    IN    4    5    6    7
     \    ${error} =    Run Keyword And Expect Error    *    Create Resource With Command    ${iserver}    InCSE1
@@ -39,48 +92,142 @@ Set Suite Variable
     \    Should Start with    ${error}    Cannot create this resource [400]
     \    Should Contain    ${error}    rcn
 
-2.1 rcn is legal in update
-    [Documentation]    rcn=1, 0/ null is legal
-    ${attr} =    Set Variable    "or":"http://hey/you"
-    : FOR    ${rcn}    IN    \    0    1    5
-    ...    6
-    \    ${r} =    Update Resource With Command    ${iserver}    InCSE1/AE1    ${rt_ae}    rcn=${rcn}
-    \    ...    ${attr}
+1.11 REQ: Create: With Event Category parameter
+    [Documentation]    Tests Create REQ with Event Category parameter
+    [Tags]    not-implemented    exclude
+    TODO
 
-2.2 rcn is illegal in update
-    [Documentation]    rcn=2, 3, 7 is illegal
-    ${attr} =    Set Variable    "or":"http://hey/you"
-    : FOR    ${rcn}    IN    2    3    4    7
-    \    ${error} =    Run Keyword And Expect Error    *    Update Resource With Command    ${iserver}    InCSE1/AE1
-    \    ...    ${rt_ae}    rcn=${rcn}    ${attr}
-    \    Should Start with    ${error}    Cannot update this resource [400]
-    \    Should Contain    ${error}    rcn
+1.12 REQ: Create: With Delivery Aggregation parameter
+    [Documentation]    Tests Create REQ with Delivery Aggregation parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.13 REQ: Create: With Group Request Identifier parameter
+    [Documentation]    Tests Create REQ with Group Request Identifier parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.14 REQ: Create: With Tokens parameter
+    [Documentation]    Tests Create REQ with Tokens parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.15 REQ: Create: With Token IDs parameter
+    [Documentation]    Tests Create REQ with Event Category parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.99 REQ: Create: With all optional parameters set
+    [Documentation]    Tests Create REQ with all mandatory and optional parameters set
+    [Tags]    not-implemented    exclude
+    TODO
 
-3.1 rcn is legal in retrieve
-    [Documentation]    rcn=1, 4, 5, 6 null is legal
+2.00 REQ: Retrieve: With mandatory parameters only
+    [Documentation]    Tests Retrieve REQ with mandatory parameters only.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.01 REQ: Retrieve: Missing mandatory parameters
+    [Documentation]    NEGATIVE: Tests multiple cases of Retrieve REQ with some mandatory parameter(s) missing.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.02 REQ: Retrieve: With not permitted parameters
+    [Documentation]    NEGATIVE: Tests multiple cases of Retrieve REQ with not permitted parameter(s).
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.03 REQ: Retrieve: With Role IDs parameter
+    [Documentation]    Tests Retrieve REQ with Role IDs parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.04 REQ: Retrieve: With Originating Timestamp parameter
+    [Documentation]    Tests Retrieve REQ with Originating Timestamp parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.05 REQ: Retrieve: With Request Expiration Timestamp parametr
+    [Documentation]    Tests Retrieve REQ with Request Expiration Timestamp parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.06 REQ: Retrieve: With Result Expiration Time parameter
+    [Documentation]    Tests Retrieve REQ with Result Expiration Time parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.07 REQ: Retrieve: With Operation Execution Time parameter
+    [Documentation]    Tests Retrieve REQ with Operation Execution Time parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.08 REQ: Retrieve: With Response Type parameter
+    [Documentation]    Tests Retrieve REQ with Response Type parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.09 REQ: Retrieve: With Result Persistence parameter
+    [Documentation]    Tests Retrieve REQ with Result Persistence parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.10.1 REQ: Retrieve: With Result Content parameter - legal
+    [Documentation]    Tests Retrieve REQ with Result Content parameter set to legal values.
+    ...    rcn=1, 4, 5, 6 null is legal
+    # TODO: check with TS-0004: 7.5.2 Elements contained in the Content primitive parameter
     : FOR    ${rcn}    IN    \    1    4    5
     ...    6
     \    ${r} =    Retrieve Resource With Command    ${iserver}    InCSE1/AE1    rcn=${rcn}
     # when rcn=7 can be retrieved
 
-3.2 rcn is illegal in retrieve
-    [Documentation]    rcn=0, 2, 3 is illegal
+2.10.2 REQ: Retrieve: With Result Content parameter - illegal
+    [Documentation]    NEGATIVE: Tests Retrieve REQ with Result Content parameter set to illegal values.
+    ...    rcn=0, 2, 3 is illegal
+    # TODO: check with TS-0004: 7.5.2 Elements contained in the Content primitive parameter
     : FOR    ${rcn}    IN    0    2    3
     \    ${error} =    Run Keyword And Expect Error    *    Retrieve Resource With Command    ${iserver}    InCSE1/AE1
     \    ...    rcn=${rcn}
     \    Should Start with    ${error}    Cannot retrieve this resource [400]
     \    Should Contain    ${error}    rcn
 
-4.2 rcn is illegal in delete
-    [Documentation]    rcn=2, 3, 4, 5, 6, 7 is illegal
-    ${attr} =    Set Variable    "or":"http://hey/you"
-    : FOR    ${rcn}    IN    2    3    4    7
-    \    ${error} =    Run Keyword And Expect Error    *    Delete Resource With Command    ${iserver}    InCSE1/AE1
-    \    ...    rcn=${rcn}
-    \    Should Start with    ${error}    Cannot delete this resource [400]
-    \    Should Contain    ${error}    rcn
+2.11 REQ: Retrieve: With Event Category parameter
+    [Documentation]    Tests Retrieve REQ with Event Category parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.12 REQ: Retrieve: With Delivery Aggregation parameter
+    [Documentation]    Tests Retrieve REQ with Delivery Aggregation parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.13 REQ: Retrieve: With Group Request Identifier parameter
+    [Documentation]    Tests Retrieve REQ with Group Request Identifier parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.14 REQ: Retrieve: With Tokens parameter
+    [Documentation]    Tests Retrieve REQ with Tokens parameter
+    [Tags]    not-implemented    exclude
+    TODO
 
-1. createdBefore
+2.15 REQ: Retrieve: With Token IDs parameter
+    [Documentation]    Tests Retrieve REQ with Event Category parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.16 REQ: Retrieve: With Content parameter
+    [Documentation]    Tests Retrieve REQ with Content parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.17 REQ: Retrieve: With Discovery Result Type parameter
+    [Documentation]    Tests Retrieve REQ with Discovery Result Type parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.01 REQ: Retrieve: With Filter Criteria parameter - element createdBefore
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with createdBefore element.
     # need to sleep at least one second becase we are checking if resource was created before resource time and if
     # this test and test before was created in the same second then this test will fail.
     Sleep    1
@@ -100,7 +247,8 @@ Set Suite Variable
     Should Be Equal As Integers    ${count}    2
     Should Contain All Sub Strings    '${rs}'    Container2    Container1
 
-2. createdAfter
+2.18.02 REQ: Retrieve: With Filter Criteria parameter - element createdAfter
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with createdAfter element.
     ${r} =    Retrieve Resource With Command    ${iserver}    InCSE1/AE1    rcn=4&cra=20150612T033748
     Log    ${r.text}
     ${rs} =    Child Resource    ${r}
@@ -108,7 +256,8 @@ Set Suite Variable
     Should Be Equal As Integers    ${count}    2
     Should Contain All Sub Strings    '${rs}'    Container2    Container1
 
-3. modifiedSince
+2.18.03 REQ: Retrieve: With Filter Criteria parameter - element modifiedSince
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with modifiedSince element.
     ${r} =    Retrieve Resource With Command    ${iserver}    InCSE1/AE1    rcn=4&ms=20150612T033748
     Log    ${r.text}
     ${rs} =    Child Resource    ${r}
@@ -116,7 +265,8 @@ Set Suite Variable
     Should Be Equal As Integers    ${count}    2
     Should Contain All Sub Strings    '${rs}'    Container2    Container1
 
-4. unmodifiedSince
+2.18.04 REQ: Retrieve: With Filter Criteria parameter - element unmodifiedSince
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with unmodifiedSince element.
     ${r} =    Retrieve Resource With Command    ${iserver}    InCSE1/AE1    rcn=4&us=${ts}
     Log    ${r.text}
     ${rs} =    Child Resource    ${r}
@@ -124,7 +274,8 @@ Set Suite Variable
     Should Be Equal As Integers    ${count}    2
     Should Contain All Sub Strings    '${rs}'    Container2    Container1
 
-5. stateTagSmaller
+2.18.05 REQ: Retrieve: With Filter Criteria parameter - element stateTagSmaller
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with stateTagSmaller element.
     ${r} =    Retrieve Resource With Command    ${iserver}    InCSE1/Container3    rcn=4&sts=3
     Log    ${r.text}
     ${rs} =    Child Resource First    ${r}
@@ -132,26 +283,45 @@ Set Suite Variable
     Should Be Equal As Integers    ${count}    5
     Should Contain All Sub Strings    '${rs}'    Container7    Container8    Container9    conIn3    conIn4
 
-6. stateTagBigger
+2.18.06 REQ: Retrieve: With Filter Criteria parameter - element stateTagBigger
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with stateTagBigger element.
     ${r} =    Retrieve Resource With Command    ${iserver}    InCSE1/Container3    rcn=4&stb=1
     Log    ${r.text}
     ${rs} =    Child Resource    ${r}
     ${count} =    Get Length    ${rs}
     Should Be Equal As Integers    ${count}    2
     Should Contain All Sub Strings    '${rs}'    conIn5    conIn4
-    # 7. expireBefore
-    # 8. expireAfter
 
-9. labels
+2.18.07 REQ: Retrieve: With Filter Criteria parameter - element expireBefore
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with expireBefore element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.08 REQ: Retrieve: With Filter Criteria parameter - element expireAfter
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with expireAfter element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.09.01 REQ: Retrieve: With Filter Criteria parameter - element labels (one)
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with one labels element.
     ${r} =    Retrieve Resource With Command    ${iserver}    InCSE1/Container3    rcn=4&sts=3&lbl=contentInstanceUnderContainerContainer
     Log    ${r.text}
     ${rs} =    Child Resource First    ${r}
     ${count} =    Get Length    ${rs}
     Should Be Equal As Integers    ${count}    2
     Should Contain All Sub Strings    '${rs}'    conIn3    conIn4
-    # 2 labels test
 
-10. resourceType
+2.18.09.02 REQ: Retrieve: With Filter Criteria parameter - element labels (two)
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with two labels elements.
+    ${r} =    Retrieve Resource With Command    ${iserver}    InCSE1    fu=1&rcn=4&sts=4&lbl=contentInstanceUnderContainerContainer&lbl=underCSE
+    Log    ${r.text}
+    ${count} =    Get Length    ${r.json()}
+    Should Be Equal As Integers    ${count}    6
+    Should Contain All Sub Strings    ${r.text}    Container3    Container4    Container5    conIn3    conIn4
+    ...    conIn5
+
+2.18.10 REQ: Retrieve: With Filter Criteria parameter - element resourceType
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with resourceType element.
     ${r} =    Retrieve Resource With Command    ${iserver}    InCSE1    rcn=4&rty=3
     Log    ${r.text}
     ${rs} =    Child Resource First    ${r}
@@ -159,7 +329,8 @@ Set Suite Variable
     Should Be Equal As Integers    ${count}    3
     Should Contain All Sub Strings    '${rs}'    Container3    Container4    Container5
 
-11. sizeAbove
+2.18.11 REQ: Retrieve: With Filter Criteria parameter - element sizeAbove
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with sizeAbove element.
     ${r} =    Retrieve Resource With Command    ${iserver}    InCSE1    rcn=4&rty=3&sza=5
     Log    ${r.text}
     ${rs} =    Child Resource First    ${r}
@@ -167,7 +338,8 @@ Set Suite Variable
     Should Be Equal As Integers    ${count}    2
     Should Contain All Sub Strings    '${rs}'    Container3    Container4
 
-12. sizeBelow
+2.18.12 REQ: Retrieve: With Filter Criteria parameter - element sizeBelow
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with sizeBelow element.
     ${r} =    Retrieve Resource With Command    ${iserver}    InCSE1    rcn=4&rty=3&szb=5
     Log    ${r.text}
     ${rs} =    Child Resource First    ${r}
@@ -175,18 +347,632 @@ Set Suite Variable
     Should Be Equal As Integers    ${count}    1
     Should Contain All Sub Strings    '${rs}'    Container5
 
-2.1 And Test - labels
-    ${r} =    Retrieve Resource With Command    ${iserver}    InCSE1    fu=1&rcn=4&sts=4&lbl=contentInstanceUnderContainerContainer&lbl=underCSE
-    Log    ${r.text}
-    ${count} =    Get Length    ${r.json()}
-    Should Be Equal As Integers    ${count}    6
-    Should Contain All Sub Strings    ${r.text}    Container3    Container4    Container5    conIn3    conIn4
-    ...    conIn5
+2.18.13.01 REQ: Retrieve: With Filter Criteria parameter - element contentType (one)
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with one contentType element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.13.02 REQ: Retrieve: With Filter Criteria parameter - element contentType (two)
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with two contentType elements.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.14.01 REQ: Retrieve: With Filter Criteria parameter - element attribute (one)
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with one attribute element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.14.02 REQ: Retrieve: With Filter Criteria parameter - element attribute (two)
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with two attribute elements.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.15 REQ: Retrieve: With Filter Criteria parameter - element filterUsage
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with filterUsage element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.16 REQ: Retrieve: With Filter Criteria parameter - element limit
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with limit element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.17.01 REQ: Retrieve: With Filter Criteria parameter - element semanticsFilter (one)
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with one semanticsFilter element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.17.02 REQ: Retrieve: With Filter Criteria parameter - element semanticsFilter (two)
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with two semanticsFilter element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.18 REQ: Retrieve: With Filter Criteria parameter - element filterOperation
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with filterOperation element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.19 REQ: Retrieve: With Filter Criteria parameter - element contentFilterSyntax
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with contentFilterSyntax element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.20 REQ: Retrieve: With Filter Criteria parameter - element contentFilterQuery
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with contentFilterQuery element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.21 REQ: Retrieve: With Filter Criteria parameter - element level
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with level element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.18.22 REQ: Retrieve: With Filter Criteria parameter - element offset
+    [Documentation]    Tests Retrieve REQ with Filter Criteria parameter with offset element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.99 REQ: Retrieve: With all optional parameters set
+    [Documentation]    Tests Retrieve REQ with all mandatory and optional parameters set
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.00 REQ: Update: With mandatory parameters only
+    [Documentation]    Tests Update REQ with mandatory parameters only.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.01 REQ: Update: Missing mandatory parameters
+    [Documentation]    NEGATIVE: Tests multiple cases of Update REQ with some mandatory parameter(s) missing.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.02 REQ: Update: With not permitted parameters
+    [Documentation]    NEGATIVE: Tests multiple cases of Update REQ with not permitted parameter(s).
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03 REQ: Update: With Role IDs parameter
+    [Documentation]    Tests Update REQ with Role IDs parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.04 REQ: Update: With Originating Timestamp parameter
+    [Documentation]    Tests Update REQ with Originating Timestamp parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.05 REQ: Update: With Request Expiration Timestamp parametr
+    [Documentation]    Tests Update REQ with Request Expiration Timestamp parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.06 REQ: Update: With Result Expiration Time parameter
+    [Documentation]    Tests Update REQ with Result Expiration Time parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.07 REQ: Update: With Operation Execution Time parameter
+    [Documentation]    Tests Update REQ with Operation Execution Time parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.08 REQ: Update: With Response Type parameter
+    [Documentation]    Tests Update REQ with Response Type parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.09 REQ: Update: With Result Persistence parameter
+    [Documentation]    Tests Update REQ with Result Persistence parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.10.1 REQ: Update: With Result Content parameter - legal
+    [Documentation]    Tests Update REQ with Result Content parameter set to legal values.
+    ...    rcn=1, 0/ null is legal
+    # TODO: check with TS-0004: 7.5.2 Elements contained in the Content primitive parameter
+    ${attr} =    Set Variable    "or":"http://hey/you"
+    : FOR    ${rcn}    IN    \    0    1    5
+    ...    6
+    \    ${r} =    Update Resource With Command    ${iserver}    InCSE1/AE1    ${rt_ae}    rcn=${rcn}
+    \    ...    ${attr}
+
+3.10.2 REQ: Update: With Result Content parameter - illegal
+    [Documentation]    NEGATIVE: Tests Update REQ with Result Content parameter set to illegal values.
+    ...    rcn=2, 3, 7 is illegal
+    # TODO: check with TS-0004: 7.5.2 Elements contained in the Content primitive parameter
+    ${attr} =    Set Variable    "or":"http://hey/you"
+    : FOR    ${rcn}    IN    2    3    4    7
+    \    ${error} =    Run Keyword And Expect Error    *    Update Resource With Command    ${iserver}    InCSE1/AE1
+    \    ...    ${rt_ae}    rcn=${rcn}    ${attr}
+    \    Should Start with    ${error}    Cannot update this resource [400]
+    \    Should Contain    ${error}    rcn
+
+3.11 REQ: Update: With Event Category parameter
+    [Documentation]    Tests Update REQ with Event Category parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.12 REQ: Update: With Delivery Aggregation parameter
+    [Documentation]    Tests Update REQ with Delivery Aggregation parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.13 REQ: Update: With Group Request Identifier parameter
+    [Documentation]    Tests Update REQ with Group Request Identifier parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.14 REQ: Update: With Tokens parameter
+    [Documentation]    Tests Update REQ with Tokens parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.15 REQ: Update: With Token IDs parameter
+    [Documentation]    Tests Update REQ with Event Category parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.01 REQ: Update: With Filter Criteria parameter - element createdBefore
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with createdBefore element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.02 REQ: Update: With Filter Criteria parameter - element createdAfter
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with createdAfter element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.03 REQ: Update: With Filter Criteria parameter - element modifiedSince
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with modifiedSince element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.04 REQ: Update: With Filter Criteria parameter - element unmodifiedSince
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with unmodifiedSince element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.05 REQ: Update: With Filter Criteria parameter - element stateTagSmaller
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with stateTagSmaller element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.06 REQ: Update: With Filter Criteria parameter - element stateTagBigger
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with stateTagBigger element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.07 REQ: Update: With Filter Criteria parameter - element expireBefore
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with expireBefore element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.08 REQ: Update: With Filter Criteria parameter - element expireAfter
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with expireAfter element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.09.01 REQ: Update: With Filter Criteria parameter - element labels (one)
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with one labels element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.09.02 REQ: Update: With Filter Criteria parameter - element labels (two)
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with two labels elements.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.10 REQ: Update: With Filter Criteria parameter - element resourceType
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with resourceType element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.11 REQ: Update: With Filter Criteria parameter - element sizeAbove
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with sizeAbove element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.12 REQ: Update: With Filter Criteria parameter - element sizeBelow
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with sizeBelow element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.13.01 REQ: Update: With Filter Criteria parameter - element contentType (one)
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with one contentType element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.13.02 REQ: Update: With Filter Criteria parameter - element contentType (two)
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with two contentType elements.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.14.01 REQ: Update: With Filter Criteria parameter - element attribute (one)
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with one attribute element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.14.02 REQ: Update: With Filter Criteria parameter - element attribute (two)
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with two attribute elements.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.15 REQ: Update: With Filter Criteria parameter - element filterUsage
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with filterUsage element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.16 REQ: Update: With Filter Criteria parameter - element limit
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with limit element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.17.01 REQ: Update: With Filter Criteria parameter - element semanticsFilter (one)
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with one semanticsFilter element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.17.02 REQ: Update: With Filter Criteria parameter - element semanticsFilter (two)
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with two semanticsFilter element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.18 REQ: Update: With Filter Criteria parameter - element filterOperation
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with filterOperation element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.19 REQ: Update: With Filter Criteria parameter - element contentFilterSyntax
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with contentFilterSyntax element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.20 REQ: Update: With Filter Criteria parameter - element contentFilterQuery
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with contentFilterQuery element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.21 REQ: Update: With Filter Criteria parameter - element level
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with level element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.16.22 REQ: Update: With Filter Criteria parameter - element offset
+    [Documentation]    Tests Update REQ with Filter Criteria parameter with offset element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.99 REQ: Update: With all optional parameters set
+    [Documentation]    Tests Update REQ with all mandatory and optional parameters set
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.00 REQ: Delete: With mandatory parameters only
+    [Documentation]    Tests Delete REQ with mandatory parameters only.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.01 REQ: Delete: Missing mandatory parameters
+    [Documentation]    NEGATIVE: Tests multiple cases of Delete REQ with some mandatory parameter(s) missing.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.02 REQ: Delete: With not permitted parameters
+    [Documentation]    NEGATIVE: Tests multiple cases of Delete REQ with not permitted parameter(s).
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.03 REQ: Delete: With Role IDs parameter
+    [Documentation]    Tests Delete REQ with Role IDs parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.04 REQ: Delete: With Originating Timestamp parameter
+    [Documentation]    Tests Delete REQ with Originating Timestamp parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.05 REQ: Delete: With Request Expiration Timestamp parametr
+    [Documentation]    Tests Delete REQ with Request Expiration Timestamp parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.06 REQ: Delete: With Result Expiration Time parameter
+    [Documentation]    Tests Delete REQ with Result Expiration Time parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.07 REQ: Delete: With Operation Execution Time parameter
+    [Documentation]    Tests Delete REQ with Operation Execution Time parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.08 REQ: Delete: With Response Type parameter
+    [Documentation]    Tests Delete REQ with Response Type parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.09 REQ: Delete: With Result Persistence parameter
+    [Documentation]    Tests Delete REQ with Result Persistence parameter.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.10.1 REQ: Delete: With Result Content parameter - legal
+    [Documentation]    Tests Delete REQ with Result Content parameter set to legal values.
+    ...    rcn=2, 3, 4, 5, 6, 7 is illegal
+    # TODO: check with TS-0004: 7.5.2 Elements contained in the Content primitive parameter
+    ${attr} =    Set Variable    "or":"http://hey/you"
+    : FOR    ${rcn}    IN    2    3    4    7
+    \    ${error} =    Run Keyword And Expect Error    *    Delete Resource With Command    ${iserver}    InCSE1/AE1
+    \    ...    rcn=${rcn}
+    \    Should Start with    ${error}    Cannot delete this resource [400]
+    \    Should Contain    ${error}    rcn
+
+4.10.2 REQ: Delete: With Result Content parameter - illegal
+    [Documentation]    NEGATIVE: Tests Delete REQ with Result Content parameter set to illegal values.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.11 REQ: Delete: With Event Category parameter
+    [Documentation]    Tests Delete REQ with Event Category parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.12 REQ: Delete: With Delivery Aggregation parameter
+    [Documentation]    Tests Delete REQ with Delivery Aggregation parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.13 REQ: Delete: With Group Request Identifier parameter
+    [Documentation]    Tests Delete REQ with Group Request Identifier parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.14 REQ: Delete: With Tokens parameter
+    [Documentation]    Tests Delete REQ with Tokens parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.15 REQ: Delete: With Token IDs parameter
+    [Documentation]    Tests Delete REQ with Event Category parameter
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.01 REQ: Delete: With Filter Criteria parameter - element createdBefore
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with createdBefore element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.02 REQ: Delete: With Filter Criteria parameter - element createdAfter
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with createdAfter element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.03 REQ: Delete: With Filter Criteria parameter - element modifiedSince
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with modifiedSince element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.04 REQ: Delete: With Filter Criteria parameter - element unmodifiedSince
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with unmodifiedSince element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.05 REQ: Delete: With Filter Criteria parameter - element stateTagSmaller
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with stateTagSmaller element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.06 REQ: Delete: With Filter Criteria parameter - element stateTagBigger
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with stateTagBigger element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.07 REQ: Delete: With Filter Criteria parameter - element expireBefore
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with expireBefore element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.08 REQ: Delete: With Filter Criteria parameter - element expireAfter
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with expireAfter element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.09.01 REQ: Delete: With Filter Criteria parameter - element labels (one)
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with one labels element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.09.02 REQ: Delete: With Filter Criteria parameter - element labels (two)
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with two labels elements.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.10 REQ: Delete: With Filter Criteria parameter - element resourceType
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with resourceType element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.11 REQ: Delete: With Filter Criteria parameter - element sizeAbove
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with sizeAbove element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.12 REQ: Delete: With Filter Criteria parameter - element sizeBelow
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with sizeBelow element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.13.01 REQ: Delete: With Filter Criteria parameter - element contentType (one)
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with one contentType element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.13.02 REQ: Delete: With Filter Criteria parameter - element contentType (two)
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with two contentType elements.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.14.01 REQ: Delete: With Filter Criteria parameter - element attribute (one)
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with one attribute element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.14.02 REQ: Delete: With Filter Criteria parameter - element attribute (two)
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with two attribute elements.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.15 REQ: Delete: With Filter Criteria parameter - element filterUsage
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with filterUsage element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.16 REQ: Delete: With Filter Criteria parameter - element limit
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with limit element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.17.01 REQ: Delete: With Filter Criteria parameter - element semanticsFilter (one)
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with one semanticsFilter element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.17.02 REQ: Delete: With Filter Criteria parameter - element semanticsFilter (two)
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with two semanticsFilter element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.18 REQ: Delete: With Filter Criteria parameter - element filterOperation
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with filterOperation element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.19 REQ: Delete: With Filter Criteria parameter - element contentFilterSyntax
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with contentFilterSyntax element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.20 REQ: Delete: With Filter Criteria parameter - element contentFilterQuery
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with contentFilterQuery element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.21 REQ: Delete: With Filter Criteria parameter - element level
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with level element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.16.22 REQ: Delete: With Filter Criteria parameter - element offset
+    [Documentation]    Tests Delete REQ with Filter Criteria parameter with offset element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.99 REQ: Delete: With all optional parameters set
+    [Documentation]    Tests Delete REQ with all mandatory and optional parameters set.
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.01 RSP: Create OK: With mandatory parameters only
+    [Documentation]    Sends such Create request which results with successful response with mandatory parameters only.
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.02 RSP: Create OK: With optional parameters
+    [Documentation]    Sends such Create request which results with successful response with
+    ...    optional parameters set.
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.03 RSP: Retrieve OK: With mandatory parameters only
+    [Documentation]    Sends such Retrieve request which results with successful response with mandatory
+    ...    parameters only.
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.04 RSP: Retrieve OK: With optional parameters
+    [Documentation]    Sends such Retrieve request which results with successful response with
+    ...    optional parameters set.
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.05 RSP: Update OK: With mandatory parameters only
+    [Documentation]    Sends such Update request which results with successful response with mandatory
+    ...    parameters only.
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.06 RSP: Update OK: With optional parameters
+    [Documentation]    Sends such Update request which results with successful response with
+    ...    optional parameters set.
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.07 RSP: Delete OK: With mandatory parameters only
+    [Documentation]    Sends such Delete request which results with successful response with mandatory
+    ...    parameters only.
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.08 RSP: Delete OK: With optional parameters
+    [Documentation]    Sends such Delete request which results with successful response with
+    ...    optional parameters set.
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.01 RSP: Create ERROR: With mandatory parameters only
+    [Documentation]    Sends such Create request which results with error response with mandatory
+    ...    parameters only.
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.02 RSP: Create ERROR: With optional parameters
+    [Documentation]    Sends such Create request which results with error response with
+    ...    optional parameters set.
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.03 RSP: Retrieve ERROR: With mandatory parameters only
+    [Documentation]    Sends such Retrieve request which results with error response with mandatory
+    ...    parameters only.
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.04 RSP: Retrieve ERROR: With optional parameters
+    [Documentation]    Sends such Retrieve request which results with error response with
+    ...    optional parameters set.
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.05 RSP: Update ERROR: With mandatory parameters only
+    [Documentation]    Sends such Update request which results with error response with mandatory
+    ...    parameters only.
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.06 RSP: Update ERROR: With optional parameters
+    [Documentation]    Sends such Update request which results with error response with
+    ...    optional parameters set.
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.07 RSP: Delete ERROR: With mandatory parameters only
+    [Documentation]    Sends such Delete request which results with error response with mandatory
+    ...    parameters only.
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.08 RSP: Delete ERROR: With optional parameters
+    [Documentation]    Sends such Delete request which results with error response with
+    ...    optional parameters set.
+    [Tags]    not-implemented    exclude
+    TODO
 
 *** Keywords ***
 Connect And Create The Tree
     [Documentation]    Create a tree that contain AE/ container / contentInstance in different layers
-    ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
+    ${iserver} =    Connect To Iotdm    ${ODL_SYSTEM_1_IP}    ${ODL_RESTCONF_USER}    ${ODL_RESTCONF_PASSWORD}    http
     ${attr} =    Set Variable    "api":"jb","apn":"jb2","or":"http://hey/you","rr":true
     Create Resource    ${iserver}    InCSE1    ${rt_ae}    ${attr},"rn":"AE1"
     Create Resource    ${iserver}    InCSE1    ${rt_ae}    ${attr},"rn":"AE2"
@@ -214,3 +1000,11 @@ Connect And Create The Tree
     Create Resource    ${iserver}    InCSE1/Container4    ${rt_contentInstance}    ${attr},"rn":"conIn6"
     Create Resource    ${iserver}    InCSE1/Container4    ${rt_contentInstance}    ${attr},"rn":"conIn7"
     Create Resource    ${iserver}    InCSE1/Container4    ${rt_contentInstance}    ${attr},"rn":"conIn8"
+
+Setup Suite
+    [Documentation]    Connect to IoTDM and prepare testing resource tree
+    IOTDM Basic Suite Setup    ${ODL_SYSTEM_1_IP}    ${ODL_RESTCONF_USER}    ${ODL_RESTCONF_PASSWORD}
+    Connect And Create The Tree
+
+TODO
+    Fail    "Not implemented"
diff --git a/csit/suites/iotdm/basic/020_ResourceAttributesCseBase.robot b/csit/suites/iotdm/basic/020_ResourceAttributesCseBase.robot
new file mode 100644 (file)
index 0000000..c4bff52
--- /dev/null
@@ -0,0 +1,34 @@
+*** Settings ***
+Documentation     Test suite tests CRUD operations with cseBase resource attributes
+...               CseBase resource must not be CRUD-able through OneM2M API so this test suite
+...               implements also negative TCs which makes attemts to CRUD cseBase and its attributes
+...               through OneM2M API.
+...               TODO: implement TCs according to 000_ResourceAttributesNotes.txt
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           RequestsLibrary
+Library           ../../../libraries/Common.py
+Resource          ../../../libraries/Utils.robot
+Resource          ../../../variables/Variables.robot
+
+*** Variables ***
+
+*** Test Cases ***
+1.00 Add Test Cases
+    [Documentation]    no test cases defined
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.00 Add Test Cases using IoTDM's core RESTCONF call
+    [Documentation]    CRUD cseBase resouce by IoTDM's RESTCONF call
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.00 Test OneM2M API CRUD operations with cseBase
+    [Documentation]    CRUD operations with cseBase using OneM2M API must be dropped. Verify each failed operation by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+*** Keywords ***
+TODO
+    Fail    "Not implemented"
index ad2a3959c77c516fae0a81d17ff6225f6cd0b032..74a7019fdb91d6477ebed8017e24a4fe03ce9b80 100644 (file)
@@ -1,30 +1,31 @@
 *** Settings ***
 Documentation     Tests for Container resource attributes
-Suite Teardown    Kill The Tree    ${ODL_SYSTEM_IP}    InCSE1    admin    admin
+Suite Setup       IOTDM Basic Suite Setup    ${ODL_SYSTEM_1_IP}    ${ODL_RESTCONF_USER}    ${ODL_RESTCONF_PASSWORD}
+Suite Teardown    Kill The Tree    ${ODL_SYSTEM_1_IP}    InCSE1    admin    admin
 Resource          ../../../libraries/SubStrings.robot
-Library           ../../../libraries/criotdm.py
+Library           ../../../libraries/IoTDM/criotdm.py
 Library           Collections
+Resource          ../../../variables/Variables.robot
+Resource          ../../../libraries/IoTDM/IoTDMKeywords.robot
 
 *** Variables ***
-${httphost}       ${ODL_SYSTEM_IP}
-${httpuser}       admin
-${httppass}       admin
 ${rt_ae}          2
 ${rt_container}    3
 ${rt_contentInstance}    4
 
 *** Test Cases ***
-Set Suite Variable
-    [Documentation]    set a suite variable ${iserver}
-    ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
-    Set Suite Variable    ${iserver}
+TODO Refactor test suite and implement TCs
+    [Documentation]    Refactor this test suite and implement next TCs according to 000_ResourceAttributesNotes.txt03.
+    ...    Example of changes is in 024_ResourceAttributesAE.robot
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.1 After Created, test whether all the mandatory attribtues are exist.
+    [Documentation]    After Created, test whether all the mandatory attribtues are exist.
     #==================================================
     #    Container Mandatory Attribute Test
     #==================================================
     # For Creation, there are no mandatory input attribute
-
-1.1 After Created, test whether all the mandatory attribtues are exist.
-    [Documentation]    After Created, test whether all the mandatory attribtues are exist.
     ${attr} =    Set Variable    "rn":"Container1"
     ${r}=    Create Resource With Command    ${iserver}    InCSE1    ${rt_container}    rcn=3    ${attr}
     ${container} =    Location    ${r}
@@ -34,14 +35,14 @@ Set Suite Variable
     Should Contain All Sub Strings    ${text}    "ri":    "rn":    "cni"    "lt":    "pi":
     ...    "st":    "ct":    "ty":3    "cbs"
     Should Not Contain Any Sub Strings    ${text}    "lbl"    "creator"    "or"
+
+2.11 maxNumberofInstance (mni) can be added when create
+    [Documentation]    maxNumberofInstance (mni) can be added when create
     #==================================================
     #    Container Optional Attribute Test (Allowed)
     #==================================================
     #    create--> delete
     #    update(create)--> update(modified)-->update (delete)
-
-2.11 maxNumberofInstance (mni) can be added when create
-    [Documentation]    maxNumberofInstance (mni) can be added when create
     ${attr} =    Set Variable    "mni":3,"rn":"Container2"
     ${r}=    Create Resource    ${iserver}    InCSE1    ${rt_container}    ${attr}
     ${text} =    Check Response and Retrieve Resource    ${r}
@@ -786,3 +787,6 @@ Update Container Expect Cannot Update Error
     ${error} =    Run Keyword And Expect Error    Cannot update this resource [400]*    Update Resource    ${iserver}    InCSE1/Container1    ${rt_container}
     ...    ${attr}
     [Return]    ${error}
+
+TODO
+    Fail    "Not implemented"
index 6a81b38b851d533b7529e4c7c175f6482fefa110..c9c8055c313754b23ce50bc4be09ac950fd0c58d 100644 (file)
@@ -1,32 +1,24 @@
 *** Settings ***
 Documentation     Tests for Content Instance resource attributes
-Suite Teardown    Kill The Tree    ${ODL_SYSTEM_IP}    InCSE1    admin    admin
+Suite Setup       IOTDM Basic Suite Setup    ${ODL_SYSTEM_1_IP}    ${ODL_RESTCONF_USER}    ${ODL_RESTCONF_PASSWORD}
+Suite Teardown    Kill The Tree    ${ODL_SYSTEM_1_IP}    InCSE1    admin    admin
 Resource          ../../../libraries/SubStrings.robot
-Library           ../../../libraries/criotdm.py
+Library           ../../../libraries/IoTDM/criotdm.py
 Library           Collections
+Resource          ../../../variables/Variables.robot
+Resource          ../../../libraries/IoTDM/IoTDMKeywords.robot
 
 *** Variables ***
-${httphost}       ${ODL_SYSTEM_IP}
-${httpuser}       admin
-${httppass}       admin
 ${rt_ae}          2
 ${rt_container}    3
 ${rt_contentInstance}    4
 
 *** Test Cases ***
-Set Suite Variable
-    [Documentation]    set a suite variable ${iserver}
-    #==================================================
-    #    Container Mandatory Attribute Test
-    #==================================================
-    # mandatory attribute: content
-    # cse
-    #    |
-    #    ---Container1
-    #    |
-    #    ----conIn1
-    ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
-    Set Suite Variable    ${iserver}
+TODO Refactor test suite and implement TCs
+    [Documentation]    Refactor this test suite and implement next TCs according to 000_ResourceAttributesNotes.txt03.
+    ...    Example of changes is in 024_ResourceAttributesAE.robot
+    [Tags]    not-implemented    exclude
+    TODO
 
 1.1 After Created, test whether all the mandatory attribtues are exist.
     [Documentation]    create 1 conIn test whether all the mandatory attribtues are exist
@@ -266,3 +258,6 @@ Latest Con Test
     Create Resource    ${iserver}    ${resourceURI}    ${rt_contentInstance}    ${attr}
     ${latestCon} =    Get Latest    ${resourceURI}
     Should Be Equal As Strings    ${random}    ${latestCon}
+
+TODO
+    Fail    "Not implemented"
index e439c26ad70e5903782b4fde0e00aff2665b8292..50cba795718686f47e357ae52a8c7192cdb57c18 100644 (file)
@@ -1,27 +1,24 @@
 *** Settings ***
 Documentation     Tests for Application Entity (AE) resource attributes
-Suite Teardown    Kill The Tree    ${ODL_SYSTEM_IP}    InCSE1    admin    admin
+Suite Setup       IOTDM Basic Suite Setup    ${ODL_SYSTEM_1_IP}    ${ODL_RESTCONF_USER}    ${ODL_RESTCONF_PASSWORD}
+Suite Teardown    Kill The Tree    ${ODL_SYSTEM_1_IP}    InCSE1    admin    admin
 Resource          ../../../libraries/SubStrings.robot
-Library           ../../../libraries/criotdm.py
+Library           ../../../libraries/IoTDM/criotdm.py
 Library           Collections
+Resource          ../../../variables/Variables.robot
+Resource          ../../../libraries/IoTDM/IoTDMKeywords.robot
 
 *** Variables ***
-${httphost}       ${ODL_SYSTEM_IP}
-${httpuser}       admin
-${httppass}       admin
 ${rt_ae}          2
 ${rt_container}    3
 ${rt_contentInstance}    4
 
 *** Test Cases ***
-Set Suite Variable
-    [Documentation]    set a suite variable ${iserver}
-    ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
-    Set Suite Variable    ${iserver}
-    #==================================================
-    #    AE Mandatory Attribute Test
-    #==================================================
-    # For Creation, there are only 2 mandatory attribute: App-ID(api), AE-ID(aei)
+TODO Refactor test suite and implement TCs
+    [Documentation]    Refactor this test suite and implement next TCs according to 000_ResourceAttributesNotes.txt03.
+    ...    Example of changes is in 024_ResourceAttributesAE.robot
+    [Tags]    not-implemented    exclude
+    TODO
 
 1.11 If include AE-ID should return error
     [Documentation]    when create AE, AE-ID should not be included
@@ -282,3 +279,6 @@ Update AE Expect Cannot Update Error
     ${error} =    Run Keyword And Expect Error    Cannot update this resource [400]*    Update Resource    ${iserver}    InCSE1/AE1    ${rt_ae}
     ...    ${attr}
     [Return]    ${error}
+
+TODO
+    Fail    "Not implemented"
index 7a1116f40be7e795668edf8d0df7623339dfe97f..b5511b3c790bc7a58e16c77cc8b9a9824e7a26c5 100644 (file)
@@ -1,30 +1,21 @@
 *** Settings ***
 Documentation     Tests for Access Control Policy (ACP) resource attributes
-Suite Teardown    Kill The Tree    ${ODL_SYSTEM_IP}    InCSE1    admin    admin
+Suite Setup       IOTDM Basic Suite Setup    ${ODL_SYSTEM_1_IP}    ${ODL_RESTCONF_USER}    ${ODL_RESTCONF_PASSWORD}
+Suite Teardown    Kill The Tree    ${ODL_SYSTEM_1_IP}    InCSE1    admin    admin
 Resource          ../../../libraries/SubStrings.robot
-Library           ../../../libraries/criotdm.py
+Library           ../../../libraries/IoTDM/criotdm.py
 Library           Collections
+Resource          ../../../variables/Variables.robot
+Resource          ../../../libraries/IoTDM/IoTDMKeywords.robot
 
 *** Variables ***
-${httphost}       ${ODL_SYSTEM_IP}
-${httpuser}       admin
-${httppass}       admin
 ${rt_ae}          2
 ${rt_container}    3
 ${rt_contentInstance}    4
 ${rt_acp}         1
 
 *** Test Cases ***
-Set Suite Variable
-    [Documentation]    set a suite variable ${iserver}
-    ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
-    Set Suite Variable    ${iserver}
-    #==================================================
-    #    Container Mandatory Attribute Test
-    #==================================================
-    # For Creation, there are no mandatory input attribute
-
-1.0 Test whether default ACP exist
+1.0.0 Test whether default ACP exist
     Modify Headers Origin    ${iserver}    admin
     ${r} =    Retrieve Resource    ${iserver}    InCSE1/_defaultACP
     ${text} =    Text    ${r}
@@ -32,17 +23,105 @@ Set Suite Variable
     ${status_code} =    Status Code    ${r}
     Should Be True    199 < ${status_code} < 299
 
-1.1 Create ACP without context, test whether all the reponse mandatory attribtues exist.
+1.0.1 ACP C/R resource with mandatory common and specific attributes only
     [Documentation]    After Created, test whether all the mandatory attribtues exist.
-    ${attr} =    Set Variable    "pv":{"acr":[{"acor" : ["111","222"],"acop":35},{"acor" : ["111","222"],"acop":35}]},"pvs":{"acr":[{"acor" : ["111","222"],"acop":7},{"acor" : ["111","222"],"acop":9}]},"rn":"Acp1"
+    ${attr} =    Set Variable    "pv":{"acr":[{"acor" : ["111","222"],"acop":35}, {"acor" : ["111","222"],"acop":35}]}, "pvs":{"acr":[{"acor" : ["111","222"],"acop":7}, {"acor" : ["111","222"],"acop":9}]}, "rn":"Acp1"
     ${r}=    Create Resource    ${iserver}    InCSE1    ${rt_acp}    ${attr}
     ${status_code} =    Status Code    ${r}
     Should Be Equal As Integers    ${status_code}    201
     ${text} =    Convert To String    ${r.text}
     Should Contain All Sub Strings    ${text}    "ct":    "lt":    "ty"    "ri":    "pi":
 
-1.2 Create ACP with valid acip(ipv4)
-    [Documentation]    After Created, test whether all the mandatory attribtues are exist.
+1.0.2 ACP D/R: resource with mandatory common and specific attributes only
+    [Tags]    not-implemented    exclude
+    TODO
+
+2 ACP common attributes
+    [Documentation]    (TODO remove when implemented), next TCs verifies particular common attribute of ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.01 ACP common attribute: resourceName
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.02 ACP common attribute: resourceType
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.03 ACP common attribute: resourceID
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.04 ACP common attribute: parentID
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.05 ACP common attribute: expirationTime
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.06 ACP common attribute: labels
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.07 ACP common attribute: creationTime
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.08 ACP common attribute: lastModifiedTime
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.09 ACP common attribute: announceTo
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.10 ACP common attribute: announcedAttribute
+    [Tags]    not-implemented    exclude
+    TODO
+
+3 ACP specific attributes
+    [Documentation]    (TODO remove when implemented), next TCs verifies particular specific attribute of ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.01 ACP specific attributes: priviliges, selfPrivileges
+    [Tags]    not-implemented    exclude
+    # TODO TCs here should implement all sub-cases as described in the help file
+    # TODO next TC definities just shows subset of TCs and how it could be done
+    TODO
+
+3.01.01 ACP U/R: priviliges attribute: Update priviliges attribute only
+    [Documentation]    Update only priviliges attribute of ACP and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.01.02 ACP U/R: selfPriviliges attribute: Update selfPriviliges attribute only
+    [Documentation]    Update only selfPriviliges attribute of ACP and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.01.03 ACP U/R: priviliges attribute: Delete priviliges attribute only
+    [Documentation]    NEGATIVE: Use Update operation to set priviliges attribute to null. Verify error message and
+    ...    verify original ACP resource by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.01.04 ACP U/R: selfPriviliges attribute: Delete selfPriviliges attribute only
+    [Documentation]    NEGATIVE: Use Update operation to set selfPriviliges attribute to null. Verify error message and
+    ...    verify original ACP resource by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.02 ACP elements of specific attributes: priviliges, selfPrivileges
+    [Tags]    not-implemented    exclude
+    # TODO TCs here should implement all sub-cases as described in the help file
+    # TODO next TC definities just shows subset of TCs and how it could be done
+    TODO
+
+3.02.01 ACP C/R: priviliges, selfPrivileges attributes: With valid IPv4 acip element
+    [Documentation]    After Created, test whether all the mandatory elements exist.
     ${attr} =    Set Variable    "pv":{"acr":[{"acor" : ["111","222"],"acop":35,"acco":[{"acip":{"ipv4":["127.0.0.1"]}}]},{"acor" : ["111","222"],"acop":35}]},"pvs":{"acr":[{"acor" : ["111","222"],"acop":7},{"acor" : ["111","222"],"acop":9}]},"rn":"Acp2"
     ${r}=    Create Resource    ${iserver}    InCSE1    ${rt_acp}    ${attr}
     ${status_code} =    Status Code    ${r}
@@ -50,35 +129,229 @@ Set Suite Variable
     ${text} =    Convert To String    ${r.text}
     Should Contain All Sub Strings    ${text}    "ct":    "lt":    "ty"    "ri":    "pi":
 
-1.3 Create ACP with invalid acip(ipv4)
-    [Documentation]    input a invalid ipv4 address and expect error
+3.02.02 ACP U/R: priviliges, selfPrivileges attributes: With valid IPv4 acip element
+    [Documentation]    After Updated, test whether all the mandatory elements exist.
+    ...    Update resources with/without tested element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.02.03 ACP D/R: priviliges, selfPrivileges attributes: With valid IPv4 acip element
+    [Documentation]    After Deleted, verify by Retrieve operation. Delete resources with/without tested element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.02.04 ACP C/R: priviliges, selfPrivileges attributes: With invalid IPv4 acip element
+    [Documentation]    NEGATIVE: Create with invalid ipv4 address, check error message and verify by Retrieve operation.
     ${attr} =    Set Variable    "pv":{"acr":[{"acor" : ["111","222"],"acop":35,"acco":[{"acip":{"ipv4":["127.0.01"]}}]},{"acor" : ["111","222"],"acop":35}]},"pvs":{"acr":[{"acor" : ["111","222"],"acop":7},{"acor" : ["111","222"],"acop":9}]},"rn":"Acp3"
     ${error}=    Run Keyword And Expect Error    *    Create Resource    ${iserver}    InCSE1    ${rt_acp}
     ...    ${attr}
     Should Start with    ${error}    Cannot create this resource [400]
     Should Contain    ${error}    not a valid Ipv4 address
+    # TODO Verify by Retrieve no operation
 
-1.4 Create ACP with valid acip(ipv6)
-    [Documentation]    After Created, test whether all the mandatory attribtues are exist.
+3.02.05 ACP U/R: priviliges, selfPrivileges attributes: With invalid IPv4 acip element
+    [Documentation]    NEGATIVE: Update with invalid ipv4 address, check error message and verify by Retrieve operation.
+    ...    Update resources with/without tested element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.02.06 ACP C/R: priviliges, selfPrivileges attributes: With valid IPv6 acip element
+    [Documentation]    After Created, test whether all the mandatory elements exist.
     ${attr} =    Set Variable    "pv":{"acr":[{"acor" : ["111","222"],"acop":35,"acco":[{"acip":{"ipv6":["2001:db8:0:0:0:ff00:42:8329"]}}]},{"acor" : ["111","222"],"acop":35}]},"pvs":{"acr":[{"acor" : ["111","222"],"acop":7},{"acor" : ["111","222"],"acop":9}]},"rn":"Acp4"
     ${r}=    Create Resource    ${iserver}    InCSE1    ${rt_acp}    ${attr}
     ${status_code} =    Status Code    ${r}
     Should Be Equal As Integers    ${status_code}    201
     ${text} =    Convert To String    ${r.text}
     Should Contain All Sub Strings    ${text}    "ct":    "lt":    "ty"    "ri":    "pi":
+    # TODO verify by Retrieve operation
+
+3.02.07 ACP U/R: priviliges, selfPrivileges attributes: With valid IPv6 acip element
+    [Documentation]    After Updated, test whether all the mandatory elements exist. Update ACP resources with/without
+    ...    tested element.
+    [Tags]    not-implemented    exclude
+    TODO
 
-1.5 Create ACP with invalid acip(ipv6)
-    [Documentation]    input a invalid Ipv6 address and expect error
+3.02.08 ACP D/R: priviliges, selfPrivileges attributes: With valid IPv6 acip element
+    [Documentation]    After Deleted, test whether all the mandatory elements exist. Delete ACP resources with/without
+    ...    tested element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.02.09 ACP C/R: priviliges, selfPrivileges attributes: With invalid IPv6 acip element
+    [Documentation]    NEGATIVE: Create with invalid ipv6 address, check error message and verify by Retrieve operation.
     ${attr} =    Set Variable    "pv":{"acr":[{"acor" : ["111","222"],"acop":35,"acco":[{"acip":{"ipv6":["2001:db8:0:0:0:ff00:42"]}}]},{"acor" : ["111","222"],"acop":35}]},"pvs":{"acr":[{"acor" : ["111","222"],"acop":7},{"acor" : ["111","222"],"acop":9}]},"rn":"Acp3"
     ${error}=    Run Keyword And Expect Error    *    Create Resource    ${iserver}    InCSE1    ${rt_acp}
     ...    ${attr}
     Should Start with    ${error}    Cannot create this resource [400]
     Should Contain    ${error}    not a valid Ipv6 address
+    # TODO: verify by retrieve operation
+
+3.02.10 ACP U/R: priviliges, selfPrivileges attributes: With invalid IPv6 acip element
+    [Documentation]    NEGATIVE: Update with invalid ipv6 address, check error message and verify by Retrieve operation.
+    ...    Update resources with/without tested element.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.01 ACP C/R: priviliges, selfPrivileges attributes: With accessControlWindow element
+    [Documentation]    Create ACP with accessControlWindow element and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.02 ACP U/R: priviliges, selfPrivileges attributes: With accessControlWindow element
+    [Documentation]    Update the accessControlWindow element of ACP resources with/without tested element and verify
+    ...    by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.03 ACP D/R: priviliges, selfPrivileges attributes: With accessControlWindow element
+    [Documentation]    Delete ACP with accessControlWindow element and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.04 ACP C/R: priviliges, selfPrivileges attributes: With invalid accessControlWindow element
+    [Documentation]    NEGTIVE: Create ACP with invalid accessControlWindow element and check error message and
+    ...    verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.05 ACP U/R: priviliges, selfPrivileges attributes: With invalid accessControlWindow element
+    [Documentation]    Update the invalid value of accessControlWindow element of ACP resources with/without tested
+    ...    element and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.06 ACP C/R: priviliges, selfPrivileges attributes: With multiple accessControlWindow elements
+    [Documentation]    Create ACP with multiple accessControlWindow elements and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.07 ACP U/R: priviliges, selfPrivileges attributes: With multiple accessControlWindow elements
+    [Documentation]    Update multiple accessControlWindow elements of ACP resources with/without tested elements and verify
+    ...    by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.08 ACP D/R: priviliges, selfPrivileges attributes: With multiple accessControlWindow elements
+    [Documentation]    Delete ACP with multiple accessControlWindow elements and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.09 ACP C/R: priviliges, selfPrivileges attributes: With multiple invalid accessControlWindow elements
+    [Documentation]    NEGTIVE: Create ACP with multiple invalid accessControlWindow elements and check error message and
+    ...    verify by Retrieve operation.
+    ...    Test also combinations of valid and invalid elements.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.10 ACP U/R: priviliges, selfPrivileges attributes: With multiple invalid accessControlWindow elements
+    [Documentation]    Update the invalid value of accessControlWindow element of ACP resources with/without tested
+    ...    element and verify by Retrieve operation.
+    ...    Test also combinations of valid and invalid elements.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.11 ACP C/R: priviliges, selfPrivileges attributes: With accessControlLocationRegions element
+    [Documentation]    Create ACP with accessControlLocationRegions element and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.12 ACP U/R: priviliges, selfPrivileges attributes: With accessControlLocationRegions element
+    [Documentation]    Update the accessControlLocationRegions element of ACP resources with/without tested element and verify
+    ...    by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.13 ACP D/R: priviliges, selfPrivileges attributes: With accessControlLocationRegions element
+    [Documentation]    Delete ACP with accessControlLocationRegions element and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.14 ACP C/R: priviliges, selfPrivileges attributes: With invalid accessControlLocationRegions element
+    [Documentation]    NEGTIVE: Create ACP with invalid accessControlLocationRegions element and check error message and
+    ...    verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.15 ACP U/R: priviliges, selfPrivileges attributes: With invalid accessControlLocationRegions element
+    [Documentation]    Update the invalid value of accessControlLocationRegions element of ACP resources with/without tested
+    ...    element and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.16 ACP C/R: priviliges, selfPrivileges attributes: With accessControlAuthenticationFlag element
+    [Documentation]    Create ACP with accessControlAuthenticationFlag element and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.17 ACP U/R: priviliges, selfPrivileges attributes: With accessControlAuthenticationFlag element
+    [Documentation]    Update the accessControlAuthenticationFlag element of ACP resources with/without tested element and verify
+    ...    by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.18 ACP D/R: priviliges, selfPrivileges attributes: With accessControlAuthenticationFlag element
+    [Documentation]    Delete ACP with accessControlAuthenticationFlag element and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.19 ACP C/R: priviliges, selfPrivileges attributes: With invalid accessControlAuthenticationFlag element
+    [Documentation]    NEGTIVE: Create ACP with invalid accessControlAuthenticationFlag element and check error message and
+    ...    verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.20 ACP U/R: priviliges, selfPrivileges attributes: With invalid accessControlAuthenticationFlag element
+    [Documentation]    Update the invalid value of accessControlAuthenticationFlag element of ACP resources with/without tested
+    ...    element and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.21 ACP C/R: priviliges, selfPrivileges attributes: With multiple accessControlContext (acco) elements
+    [Documentation]    Create ACP with multiple accessControlContext elements and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.22 ACP U/R: priviliges, selfPrivileges attributes: With multiple accessControlContext (acco) elements
+    [Documentation]    Update ACP with multiple accessControlContext elements and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.23 ACP D/R: priviliges, selfPrivileges attributes: With multiple accessControlContext (acco) elements
+    [Documentation]    Delete ACP with multiple accessControlContext elements and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03.24 ACP C/R: priviliges, selfPrivileges attributes: With multiple accessControlRules elements
+    [Documentation]    Create ACP with multiple accessControlRules element and verify by Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.01 ACP C/R: With all mandatory and optional common and specific attributes
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.02 ACP U(modify)/R: With all mandatory and optional common and specific attributes
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.03 ACP D/R: With all mandatory and optional common and specific attributes
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.04 ACP Test Create and Update operations with non-existing attributes and elements
+    [Tags]    not-implemented    exclude
+    # TODO use the approach described in the help file
+    TODO
+
+5.00 ACP CRUD with all valid RCN values
+    [Documentation]    CRUD operations with all mandatory and optiona common and specific attributes, test all RCN values
+    [Tags]    not-implemented    exclude
+    TODO
 
 *** Keywords ***
 Connect And Create Resource
     [Arguments]    ${targetURI}    ${resoutceType}    ${attr}    ${resourceName}=${EMPTY}
-    ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
+    ${iserver} =    Connect To Iotdm    ${ODL_SYSTEM_1_IP}    ${ODL_RESTCONF_USER}    ${ODL_RESTCONF_PASSWORD}    http
     ${r} =    Create Resource    ${iserver}    ${targetURI}    ${resoutceType}    ${attr}    ${resourceName}
     ${status_code} =    Status Code    ${r}
     Should Be Equal As Integers    ${status_code}    201
@@ -91,3 +364,6 @@ Response Is Correct
     LOG    ${json}
     ${status_code} =    Status Code    ${r}
     Should Be True    199 < ${status_code} < 299
+
+TODO
+    Fail    "Not implemented"
index abc2cdc267a69662fb4b68fccdc2088487b066f7..5073844530f54d164642e02b46fedfb5af67f205 100644 (file)
@@ -1,14 +1,14 @@
 *** Settings ***
 Documentation     Tests for Node resource attributes
-Suite Teardown    Kill The Tree    ${ODL_SYSTEM_IP}    InCSE1    admin    admin
+Suite Setup       IOTDM Basic Suite Setup    ${ODL_SYSTEM_1_IP}    ${ODL_RESTCONF_USER}    ${ODL_RESTCONF_PASSWORD}
+Suite Teardown    Kill The Tree    ${ODL_SYSTEM_1_IP}    InCSE1    admin    admin
 Resource          ../../../libraries/SubStrings.robot
-Library           ../../../libraries/criotdm.py
+Library           ../../../libraries/IoTDM/criotdm.py
 Library           Collections
+Resource          ../../../variables/Variables.robot
+Resource          ../../../libraries/IoTDM/IoTDMKeywords.robot
 
 *** Variables ***
-${httphost}       ${ODL_SYSTEM_IP}
-${httpuser}       admin
-${httppass}       admin
 ${rt_ae}          2
 ${rt_container}    3
 ${rt_contentInstance}    4
@@ -16,14 +16,11 @@ ${rt_acp}         1
 ${rt_node}        14
 
 *** Test Cases ***
-Set Suite Variable
-    [Documentation]    set a suite variable ${iserver}
-    ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
-    Set Suite Variable    ${iserver}
-    #==================================================
-    #    Container Mandatory Attribute Test
-    #==================================================
-    # For Creation, there are no mandatory input attribute
+TODO Refactor test suite and implement TCs
+    [Documentation]    Refactor this test suite and implement next TCs according to 000_ResourceAttributesNotes.txt
+    ...    Example of changes is in 024_ResourceAttributesAE.robot
+    [Tags]    not-implemented    exclude
+    TODO
 
 1.1 After Created, test whether all the mandatory attribtues exist.
     [Documentation]    After Created, test whether all the mandatory attribtues exist.
@@ -36,3 +33,7 @@ Set Suite Variable
     Should Contain All Sub Strings    ${text}    "ri":    "rn":    "cni"    "lt":    "pi":
     ...    "st":    "ct":    "ty":3    cbs"
     Should Not Contain Any Sub Strings    ${text}    "lbl"    "creator"    "or"
+
+*** Keywords ***
+TODO
+    Fail    "Not implemented"
diff --git a/csit/suites/iotdm/basic/026_ResourceAttributesGroup.robot b/csit/suites/iotdm/basic/026_ResourceAttributesGroup.robot
new file mode 100644 (file)
index 0000000..e7ff8ed
--- /dev/null
@@ -0,0 +1,21 @@
+*** Settings ***
+Documentation     Test suite tests CRUD operations with Group resource and its attributes.
+...               TODO: implement TCs according to 000_ResourceAttributesNotes.txt
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           RequestsLibrary
+Library           ../../../libraries/Common.py
+Resource          ../../../libraries/Utils.robot
+Resource          ../../../variables/Variables.robot
+
+*** Variables ***
+
+*** Test Cases ***
+1.00 Add Test Cases
+    [Documentation]    no test cases defined
+    [Tags]    not-implemented    exclude
+    TODO
+
+*** Keywords ***
+TODO
+    Fail    "Not implemented"
diff --git a/csit/suites/iotdm/basic/090_ResourceHierarchyAddressing.robot b/csit/suites/iotdm/basic/090_ResourceHierarchyAddressing.robot
new file mode 100644 (file)
index 0000000..93668d9
--- /dev/null
@@ -0,0 +1,310 @@
+*** Settings ***
+Documentation     Test suite tests addresing of entities (CSE and AE) and addressing of resources according to:
+...               TS-0001: 7.2 M2M-SP-ID, CSE-ID, App-ID and AE-ID and resource Identifier formats
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           RequestsLibrary
+Library           ../../../libraries/Common.py
+Resource          ../../../libraries/Utils.robot
+Resource          ../../../variables/Variables.robot
+
+*** Variables ***
+
+*** Test Cases ***
+1.01 CRUD cseBase: Target resource ID: Unstructured, CSE-relative
+    [Documentation]    Perform CRUD operations with cseBase resource using unstructured CSE-relative resource ID of the
+    ...    cseBase resource. Format: <resource ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02 CRUD cseBase: Target resource ID: Structured, CSE-relative
+    [Documentation]    Perform CRUD operations with cseBase resource using structured CSE-relative resource ID of the
+    ...    cseBase resource. Format: <resource Name>
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03 CRUD cseBase: Target resource ID: Unstructured, SP-relative
+    [Documentation]    Perform CRUD operations with cseBase resource using unstructured SP-relative resource ID of the
+    ...    cseBase resource. Format: /<CSE-ID>/<resource ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.04 CRUD cseBase: Target resource ID: Strucutred, SP-relative
+    [Documentation]    Perform CRUD operations with cseBase resource using structured SP-relative resource ID of the
+    ...    cseBase resource. Format: /<CSE-ID>/resource name>
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.05 CRUD cseBase: Target resource ID: Unstructured, Absolute
+    [Documentation]    Perform CRUD operations with cseBase resource using unstructured absolute resource ID of the
+    ...    cseBase resource. Format: //<SP FQDN>/<CSE-ID>/<resource ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.06 CRUD cseBase: Target resource ID: Strucutred, Absolute
+    [Documentation]    Perform CRUD operations with cseBase resource using structured absolute resource ID of the
+    ...    cseBase resource. Format: //<SP FQDN>/<CSE-ID>/<resource name>
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.00 Create testing resource hierarchy: cseBase/AE/Container/ContentInstances
+    [Documentation]    Prepare testing resource hierarchy of cseBase/AE/Container/ContentInstances. Next tests will
+    ...    perform operations with the contentInstance resources. cseBase and AE resources must have
+    ...    different values set as: resource ID, resource name, CSE-ID / AE-ID.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.01 CRUD contentInstance: Target resource ID: Unstructured, CSE-relative
+    [Documentation]    Perform CRUD operations with contentInstance resource using unstructured CSE-relative resource ID of the
+    ...    contentInstance resource. Format: <resource ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.01-Negative CRUD contentInstance: Target resource ID: Unstructured, CSE-relative
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid unstructured CSE-relative
+    ...    resource ID of the contentInstance resource. Verify error result in response and use retrieve
+    ...    operation to verify that the resource has not been changed.
+    ...    Test these cases:
+    ...    1. resource name instead of resource ID: Format: <resource Name>
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.02 CRUD contentInstance: Target resource ID: Structured, CSE-relative
+    [Documentation]    Perform CRUD operations with contentInstance resource using structured CSE-relative resource ID of the
+    ...    contentInstance resource. Format: <cseBase name>/<AE name>/<Container name>/<resource name>
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.02-Negative CRUD contentInstance: Target resource ID: Structured, CSE-relative
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid structured CSE-relative
+    ...    resource ID of the contentInstance resource. Verify error result in response and use retrieve
+    ...    operation to verify that the resource has not been changed.
+    ...    Test these cases:
+    ...    1. cseBase resource ID instead of name: Format: <cseBase resource ID>/<AE name>/<Container name>/<resource name>
+    ...    2. cseBase CSE-ID instead of name: Format: <cseBase CSE-ID>/<AE name>/<Container name>/<resource name>
+    ...    3. AE resource ID instead of name: Format: <cseBase name>/<AE resource ID>/<Container name>/<resource name>
+    ...    4. AE AE-ID instead of name: Format: <cseBase name>/<AE AE-ID>/<Container name>/<resource name>
+    ...    5. Container resource ID instead of name: Format: <cseBase name>/<AE name>/<Container resource ID>/<resource name>
+    ...    6. Target resource ID instead of name: Format: <cseBase name>/<AE name>/<Container name>/<resource ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.03 CRUD contentInstance: Target resource ID: Unstructured, SP-relative
+    [Documentation]    Perform CRUD operations with contentInstance resource using unstructured SP-relative resource ID of the
+    ...    contentInstance resource. Format: /<CSE-ID>/<resource ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.03-Negative CRUD contentInstance: Target resource ID: Unstructured, SP-relative
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid unstructured SP-relative
+    ...    resource ID of the contentInstance resource. Verify error result in response and use retrieve
+    ...    operation to verify that the resource has not been changed.
+    ...    Test these cases:
+    ...    1. cseBase resource ID instead of CSE-ID: Format: /<cseBase resource ID>/<resource ID>
+    ...    2. cseBase resource name instead of CSE-ID: Format: /<cseBase resource name>/<resource ID>
+    ...    3. Target resource name instead of ID: Format: /<CSE-ID>/<resource name>
+    ...    4. missing leading slash: Format: <CSE-ID>/<resource ID>
+    ...    5. leading double slash: Format: //<CSE-ID>/<resource ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.04 CRUD contentInstance: Target resource ID: Strucutred, SP-relative
+    [Documentation]    Perform CRUD operations with contentInstance resource using structured SP-relative resource ID of the
+    ...    contentInstance resource. Format: /<CSE-ID>/<cseBase name>/<AE name>/<Container name>/<resource name>
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.04-Negative CRUD contentInstance: Target resource ID: Strucutred, SP-relative
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid structured SP-relative
+    ...    resource ID of the contentInstance resource. Verify error result in response and use retrieve
+    ...    operation to verify that the resource has not been changed.
+    ...    Test these cases:
+    ...    1. missing slash at the begin: Format: <CSE-ID>/<cseBase name>/<AE name>/<Container name>/<resource name>
+    ...    2. cseBase resource ID instead of CSE-ID: Format: /<cseBase resource ID>/<cseBase name>/<AE name>/<Container name>/<resource name>
+    ...    3. cseBase resource name instead of CSE-ID: Format: /<cseBase resource name>/<cseBase name>/<AE name>/<Container name>/<resource name>
+    ...    4. cseBase resource ID instead of name: Format: /<CSE-ID>/<cseBase resource ID>/<AE name>/<Container name>/<resource name>
+    ...    5. cseBase CSE-ID instead of name: Format: /<CSE-ID>/<CSE-ID>/<AE name>/<Container name>/<resource name>
+    ...    6. target resource ID instead of resource name: Format: /<CSE-ID>/<cseBase name>/<AE name>/<Container name>/<resource ID>
+    ...    7. leading double spash: Format: //<CSE-ID>/<cseBase name>/<AE name>/<Container name>/<resource name>
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.05 CRUD contentInstance: Target resource ID: Unstructured, Absolute
+    [Documentation]    Perform CRUD operations with contentInstance resource using unstructured absolute resource ID of the
+    ...    contentInstance resource. Format: //<SP FQDN>/<CSE-ID>/<resource ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.05-Negative CRUD contentInstance: Target resource ID: Unstructured, Absolute
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid unstructured absolute
+    ...    resource ID of the contentInstance resource. Verify error result in response and use retrieve
+    ...    operation to verify that the resource has not been changed.
+    ...    Test these cases:
+    ...    1. missing slash at the begin: Format: /<SP FQDN>/<CSE-ID>/<resource ID>
+    ...    2. missing double slash at the begin: Format: <SP FQDN>/<CSE-ID>/<resource ID>
+    ...    3. invalid SP FQDN: Format: //<Invalid SP FQDN>/<CSE-ID>/<resource ID>
+    ...    4. cseBase resource ID instead of CSE-ID: Format: //<SP FQDN>/<cseBase resource ID>/<resource ID>
+    ...    5. cseBase resource name instead of CSE-ID: Format: //<SP FQDN>/<cseBase resource name>/<resource ID>
+    ...    6. target resource name instead of resource ID: Format: //<SP FQDN>/<CSE-ID>/<resource name>
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.06 CRUD contentInstance: Target resource ID: Strucutred, Absolute
+    [Documentation]    Perform CRUD operations with contentInstance resource using structured absolute resource ID of the
+    ...    contentInstance resource. Format: //<SP FQDN>/<CSE-ID>/<cseBase name>/<AE name>/<Container name>/<resource name>
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.06-Negative CRUD contentInstance: Target resource ID: Strucutred, Absolute
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid structured absolute
+    ...    resource ID of the contentInstance resource. Verify error result in response and use retrieve
+    ...    operation to verify that the resource has not been changed.
+    ...    Test these cases:
+    ...    1. cseBase resource ID instead of name: Format: //<SP FQDN>/<CSE-ID>/<cseBase resource ID>/<AE name>/<Container name>/<resource name>
+    ...    2. cseBase CSE-ID instead of name: Format: //<SP FQDN>/<CSE-ID>/<CSE-ID>/<AE name>/<Container name>/<resource name>
+    ...    3. target resource ID instead of resource name: Format: //<SP FQDN>/<CSE-ID>/<cseBase name>/<AE name>/<Container name>/<resource ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.01 CRUD contentInstance: Originator ID: relative AE-ID-Stem, first character 'C'
+    [Documentation]    Perform CRUD operations with contentInstance resource using relative AE-ID-Stem starting with 'C'
+    ...    set in the originator parameter of requests. Format: <C-AE-ID-Stem>
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.01-Negative CRUD contentInstance: Originator ID: relative AE-ID-Stem, first character 'C'
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid relative AE-ID-Stem starting
+    ...    with 'C' set in the originator parameter of requests. Verify error result in response
+    ...    and use retrieve operation to verify that the resource has not been changed.
+    ...    Test these cases:
+    ...    1. Leading slash: Format: /<C-AE-ID-Stem>
+    ...    2. Leading double slash: Format: //<C-AE-ID-Stem>
+    ...    3. AE resource ID instead of AE-ID: Format: <AE resource ID>
+    ...    4. AE resource name instead of AE-ID: Format: <AE resource name>
+    ...    5. Leading slash and AE resource ID instead of AE-ID: Format: /<AE resource ID>
+    ...    6. Leading slash and AE resource name instead of AE-ID: Format: /<AE resource name>
+    ...    7. Leading double slash and AE resource ID instead of AE-ID: Format: //<AE resource ID>
+    ...    8. Leading double slash AE resource name instead of AE-ID: Format: //<AE resource name>
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.02 CRUD contentInstance: Originator ID: relative AE-ID-Stem, first character 'S'
+    [Documentation]    Perform CRUD operations with contentInstance resource using relative AE-ID-Stem starting with 'S'
+    ...    set in the originator parameter of requests. Format: <S-AE-ID-Stem>
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.02-Negative CRUD contentInstance: Originator ID: relative AE-ID-Stem, first character 'S'
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid relative AE-ID-Stem starting
+    ...    with 'S' set in the originator parameter of requests. Verify error result in response
+    ...    and use retrieve operation to verify that the resource has not been changed.
+    ...    Test these cases (single leading slash is valid case when starting with 'S'):
+    ...    1. Leading double slash: Format: //<S-AE-ID-Stem>
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03 CRUD contentInstance: Originator ID: SP-relative AE-ID, first character 'C'
+    [Documentation]    Perform CRUD operations with contentInstance resource using SP-relative AE-ID-Stem starting with 'C'
+    ...    set in the originator parameter of requests. Format: /<SP-relative-CSE-ID>/<C-AE-ID-Stem>
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03-Negative CRUD contentInstance: Originator ID: SP-relative AE-ID, first character 'C'
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid SP-relative AE-ID-Stem
+    ...    starting with 'C' set in the originator parameter of requests. Verify error result in response
+    ...    and use retrieve operation to verify that the resource has not been changed.
+    ...    Test these cases:
+    ...    1. missing leading slash: Format: <SP-relative-CSE-ID>/<C-AE-ID-Stem>
+    ...    2. cseBase resource name instead of CSE-ID: Format: /<cseBase resource name>/<C-AE-ID-Stem>
+    ...    3. cseBase resource ID instead of CSE-ID: Format: /<cseBase resource ID>/<C-AE-ID-Stem>
+    ...    4. AE resource ID instead of AE-ID: Format: /<SP-relative-CSE-ID>/<AE resource ID>
+    ...    5. AE resource name instead of AE-ID: Format: /<SP-relative-CSE-ID>/<AE resource name>
+    ...    6. leading double slash: Format: //<SP-relative-CSE-ID>/<C-AE-ID-Stem>
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.04 CRUD contentInstance: Originator ID: SP-relative AE-ID, first character 'S'
+    [Documentation]    Perform CRUD operations with contentInstance resource using SP-relative AE-ID-Stem starting with 'S'
+    ...    set in the originator parameter of requests. Format: /<S-AE-ID-Stem>
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.05 CRUD contentInstance: Originator ID: Absolute AE-ID, first character 'C'
+    [Documentation]    Perform CRUD operations with contentInstance resource using Absolute AE-ID starting with 'C'
+    ...    set in the originator parameter of requests. Format: //<SP FQDN>/<SP-relative-CSE-ID>/<C-AE-ID-Stem>
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.05-Negative CRUD contentInstance: Originator ID: Absolute AE-ID, first character 'C'
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid Absolute AE-ID starting with 'C'
+    ...    set in the originator parameter of requests. Verify error result in response
+    ...    and use retrieve operation to verify that the resource has not been changed.
+    ...    Test these cases:
+    ...    1. Missing leading slash: Format: /<SP FQDN>/<SP-relative-CSE-ID>/<C-AE-ID-Stem>
+    ...    2. Missing leading double slash: Format: <SP FQDN>/<SP-relative-CSE-ID>/<C-AE-ID-Stem>
+    ...    3. Invalid SP FQDN: Format: //<Invalid SP FQDN>/<SP-relative-CSE-ID>/<C-AE-ID-Stem>
+    ...    4. cseBase resource name instead of CSE-ID: Format: //<SP FQDN>/<cseBase resource name>/<C-AE-ID-Stem>
+    ...    5. cseBase resource ID instead of CSE-ID: Format: //<SP FQDN>/<cseBase resource ID>/<C-AE-ID-Stem>
+    ...    6. AE resource ID instead of AE-ID: Format: //<SP FQDN>/<SP-relative-CSE-ID>/<AE resource ID>
+    ...    7. AE resource name instead of AE-ID: Format: //<SP FQDN>/<SP-relative-CSE-ID>/<AE resource name>
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.06 CRUD contentInstance: Originator ID: Absolute AE-ID, first character 'S'
+    [Documentation]    Perform CRUD operations with contentInstance resource using Absolute AE-ID starting with 'S'
+    ...    set in the originator parameter of requests. Format: //<SP FQDN>/<S-AE-ID-Stem>
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.06-Negative CRUD contentInstance: Originator ID: Absolute AE-ID, first character 'S'
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid Absolute AE-ID starting with 'S'
+    ...    set in the originator parameter of requests. Verify error result in response
+    ...    and use retrieve operation to verify that the resource has not been changed.
+    ...    Test these cases:
+    ...    1. Missing leading slash: Format: /<SP FQDN>/<S-AE-ID-Stem>
+    ...    2. Missing leading double slash: Format: <SP FQDN>/<S-AE-ID-Stem>
+    ...    3. Invalid SP FQDN: Format: //<Invalid SP FQDN>/<S-AE-ID-Stem>
+    ...    4. AE resource ID instead of AE-ID: Format: //<SP FQDN>/<AE resource ID>
+    ...    5. AE resource name instead of AE-ID: Format: //<SP FQDN>/<AE resource name>
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.01 CRUD contentInstance: Originator ID: SP-relative CSE-ID
+    [Documentation]    Perform CRUD operations with contentInstance resource using SP-relative CSE-ID
+    ...    set in the originator parameter of requests. Format: /<CSE-ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.01-Negative CRUD contentInstance: Originator ID: SP-relative CSE-ID
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid SP-relative CSE-ID
+    ...    set in the originator parameter of requests. Verify error result in response
+    ...    and use retrieve operation to verify that the resource has not been changed.
+    ...    Test these cases:
+    ...    1. missing leading slash: Format: <CSE-ID>
+    ...    2. leading double slash: Format: //<CSE-ID>
+    ...    3. remoteCSE resource name instead of CSE-ID: Format: /<remoteCSE resource name>
+    ...    4. remoteCSE resource id instead of CSE-ID: Format: /<remoteCSE resource ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.02 CRUD contentInstance: Originator ID: Absolute CSE-ID
+    [Documentation]    Perform CRUD operations with contentInstance resource using Absolute CSE-ID
+    ...    set in the originator parameter of requests. Format: //<SP FQDN>/<CSE-ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.02-Negative CRUD contentInstance: Originator ID: Absolute CSE-ID
+    [Documentation]    Perform CRUD operations with contentInstance resource using invalid Absolute CSE-ID
+    ...    set in the originator parameter of requests. Verify error result in response
+    ...    and use retrieve operation to verify that the resource has not been changed.
+    ...    Test these cases:
+    ...    1. missing leading slash: Format: /<SP FQDN>/<CSE-ID>
+    ...    2. missing leading double slash: Format: <SP FQDN>/<CSE-ID>
+    ...    3. remoteCSE resource name instead of CSE-ID: Format: //<SP FQDN>/<remoteCSE resource name>
+    ...    4. remoteCSE resource id instead of CSE-ID: Format: //<SP FQDN>/<remoteCSE resource ID>
+    [Tags]    not-implemented    exclude
+    TODO
+
+*** Keywords ***
+TODO
+    Fail    "Not implemented"
index f4bc7d790ca6a43cac857eecb7227ae1f34c0814..bbe27a604c43f7023b84fa57b01d0e23b617f4e9 100644 (file)
@@ -1,26 +1,18 @@
 *** Settings ***
 Documentation     Tests deleting resources from multiple places in resource tree
-Suite Teardown    Kill The Tree    ${ODL_SYSTEM_IP}    InCSE1    admin    admin
-Library           ../../../libraries/criotdm.py
+Suite Setup       IOTDM Basic Suite Setup    ${ODL_SYSTEM_1_IP}    ${ODL_RESTCONF_USER}    ${ODL_RESTCONF_PASSWORD}
+Suite Teardown    Kill The Tree    ${ODL_SYSTEM_1_IP}    InCSE1    admin    admin
+Library           ../../../libraries/IoTDM/criotdm.py
 Library           Collections
+Resource          ../../../variables/Variables.robot
+Resource          ../../../libraries/IoTDM/IoTDMKeywords.robot
 
 *** Variables ***
-${httphost}       ${ODL_SYSTEM_IP}
-${httpuser}       admin
-${httppass}       admin
 ${rt_ae}          2
 ${rt_container}    3
 ${rt_contentInstance}    4
 
 *** Test Cases ***
-Set Suite Variable
-    [Documentation]    set a suite variable ${iserver}
-    #==================================================
-    #    Delete Test
-    #==================================================
-    ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
-    Set Suite Variable    ${iserver}
-
 4.11 Delete AE without child resource
     [Documentation]    Create AE then delete it
     ${attr} =    Set Variable    "api":"jb","apn":"jb2","or":"http://hey/you","rr":true
index 6a7541691ee86a262c0a5164db5f0ddb8f8a56bc..1c5256f69366932478ccf5177bf347db098854f9 100644 (file)
@@ -1,27 +1,19 @@
 *** Settings ***
 Documentation     Test for hierarchy of resources: AE/CONTAINER/CONTENTINSTANCE
-Suite Teardown    Kill The Tree    ${ODL_SYSTEM_IP}    InCSE1    admin    admin
+Suite Setup       IOTDM Basic Suite Setup    ${ODL_SYSTEM_1_IP}    ${ODL_RESTCONF_USER}    ${ODL_RESTCONF_PASSWORD}
+Suite Teardown    Kill The Tree    ${ODL_SYSTEM_1_IP}    InCSE1    admin    admin
 Resource          ../../../libraries/SubStrings.robot
-Library           ../../../libraries/criotdm.py
+Library           ../../../libraries/IoTDM/criotdm.py
 Library           Collections
+Resource          ../../../variables/Variables.robot
+Resource          ../../../libraries/IoTDM/IoTDMKeywords.robot
 
 *** Variables ***
-${httphost}       ${ODL_SYSTEM_IP}
-${httpuser}       admin
-${httppass}       admin
 ${rt_ae}          2
 ${rt_container}    3
 ${rt_contentInstance}    4
 
 *** Test Cases ***
-Set Suite Variable
-    [Documentation]    set a suite variable ${iserver}
-    #==================================================
-    #    AE Test
-    #==================================================
-    ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
-    Set Suite Variable    ${iserver}
-
 1.11 Valid Input for AE without name
     [Documentation]    Valid Input for AE without name
     ${attr} =    Set Variable    "api":"jb","apn":"jb2","or":"http://hey/you","rr":true
@@ -259,7 +251,7 @@ Delete the Container Under CSEBase
 *** Keywords ***
 Connect And Create Resource
     [Arguments]    ${targetURI}    ${resoutceType}    ${attr}
-    ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
+    ${iserver} =    Connect To Iotdm    ${ODL_SYSTEM_1_IP}    ${ODL_RESTCONF_USER}    ${ODL_RESTCONF_PASSWORD}    http
     ${r} =    Create Resource    ${iserver}    ${targetURI}    ${resoutceType}    ${attr}
     ${container} =    Resid    ${r}
     ${status_code} =    Status Code    ${r}
diff --git a/csit/suites/iotdm/basic/093_ResourceHierarchyChildResources.robot b/csit/suites/iotdm/basic/093_ResourceHierarchyChildResources.robot
new file mode 100644 (file)
index 0000000..3efaf67
--- /dev/null
@@ -0,0 +1,58 @@
+*** Settings ***
+Documentation     Every resource type has defined list of allowed child resources, this test suite tests Create
+...               operations of valid and invalid child resources according to TS-0001 and TS-0004 OneM2M specifications.
+...               TODO: add positive and negative TCs for all resource types
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           RequestsLibrary
+Library           ../../../libraries/Common.py
+Resource          ../../../libraries/Utils.robot
+Resource          ../../../variables/Variables.robot
+
+*** Variables ***
+
+*** Test Cases ***
+1.00 C/R: Negative: All resources as root resource
+    [Documentation]    None root resource can be created using OneM2M API.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.01 C/R: Positive: All valid child resources of accessControlPolicy resource
+    [Documentation]    Test Create operation with all resource types of accessControlPolicy child resources and verify by
+    ...    Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.02 C/R: Negative: All invalid child resources of accessControlPolicy resource
+    [Documentation]    Test Create operation with all invalid resource types of accessControlPolicy child resources and verify by
+    ...    Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.01 C/R: Positive: All valid child resources of cseBase resource
+    [Documentation]    Test Create operation with all resource types of cseBase child resources and verify by
+    ...    Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.02 C/R: Negative: All invalid child resources of cseBase resource
+    [Documentation]    Test Create operation with all invalid resource types of cseBase child resources and verify by
+    ...    Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.01 C/R: Positive: All valid child resources of remoteCSE resource
+    [Documentation]    Test Create operation with all resource types of remoteCSE child resources and verify by
+    ...    Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.02 C/R: Negative: All invalid child resources of remoteCSE resource
+    [Documentation]    Test Create operation with all invalid resource types of remoteCSE child resources and verify by
+    ...    Retrieve operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+*** Keywords ***
+TODO
+    Fail    "Not implemented"
diff --git a/csit/suites/iotdm/basic/094_ResourceHierarchyPersistence.robot b/csit/suites/iotdm/basic/094_ResourceHierarchyPersistence.robot
new file mode 100644 (file)
index 0000000..d93b8d3
--- /dev/null
@@ -0,0 +1,29 @@
+*** Settings ***
+Documentation     This test suite verifies resource tree after restart of IoTDM.
+...               Hierarchy of resources is created first, including: cseBase/AE/Container/ContentInstance
+...               IoTDM is restarted and the hierarchy is verified using Retrieve operation.
+...               New resources are created and verified.
+...               IoTDM is restarted again and resources are verified by Retrieve operation.
+...               Tests creation of new reqsources after the restart.
+...               Some resources are deleted and result is verified also by retrieve operation.
+...               IoTDM is restarted again and data tree is checked if all deleted resources are not present.
+...               Simulates also such state when DAO plugin is not installed and IoTDM is not able to write data
+...               into data store. Verifies error responses of CRUD operations.
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           RequestsLibrary
+Library           ../../../libraries/Common.py
+Resource          ../../../libraries/Utils.robot
+Resource          ../../../variables/Variables.robot
+
+*** Variables ***
+
+*** Test Cases ***
+1.00 Add Test Cases
+    [Documentation]    Define testcases according to test suite documentation above.
+    [Tags]    not-implemented    exclude
+    TODO
+
+*** Keywords ***
+TODO
+    Fail    "Not implemented"
diff --git a/csit/suites/iotdm/basic/101_ProceduresLatestOldest.robot b/csit/suites/iotdm/basic/101_ProceduresLatestOldest.robot
new file mode 100644 (file)
index 0000000..4f90cdb
--- /dev/null
@@ -0,0 +1,67 @@
+*** Settings ***
+Documentation     Test suite tests resource specific operations of the oldest and latest resources according to
+...               OneM2M specifications:
+...               <oldest>: (TS-0001: 10.2.23 <oldest> Resource Procedure; TS-0004: 7.4.28.2 <oldest> Resource Specific Procedure on CRUD Operations)
+...               <latest>: (TS-0001: 10.2.22 <latest> Resource Procedures; TS-0004: 7.4.27.2 <latest> Resource Specific Procedure on CRUD Operations)
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           RequestsLibrary
+Library           ../../../libraries/Common.py
+Resource          ../../../libraries/Utils.robot
+Resource          ../../../variables/Variables.robot
+
+*** Variables ***
+
+*** Test Cases ***
+1.00 Retrieve Oldest and Latest resources
+    [Documentation]    Test retrieve operation of Oldest and Latest resources of containers:
+    ...    1. Container without any content instance.
+    ...    2. Container with single contentInstance, Oldest and Latest resources should be the same.
+    ...    3. Container with more than one contentInstnce, verify that the expected oldest and latest
+    ...    contentInstances has been returned.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01 C/R Oldest and Latest: Verify that Create operation is not allowed
+    [Documentation]    Try to create Oldest and Latest resources of containers with and without contentInstance
+    ...    resources. Verify the error response and check if the container has not been changed.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02 U/R Oldest and Latest: Verify that Update operation is not allowed
+    [Documentation]    Try to update Oldest and Latest resources of containers with and without contentInstance
+    ...    resources. Verify the error response and check if the container has not been changed.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03 Delete Oldest and Latest resources
+    [Documentation]    Delete Oldest and Latest resources of containers:
+    ...    1. Container without any content instance.
+    ...    2. Container with single contentInstance and verify the Oldest, Latest and parent container.
+    ...    3. Container with more than one contentInstance and verify the Oldest, Latest and parent container.
+    ...    Delete util the parent container will include only one contentInstance and verify if the
+    ...    Oldest and Latest are the same.
+    ...    Delete also the last contentInstance and verify Oldest, Latest and parent container.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.01 C/R ContentInstance: Create contentInstance and verify Oldest and Latest
+    [Documentation]    Create contentInstances resource and verify Oldest and Latest in case of one contentInstance and
+    ...    multiple contentInstances.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.02 C/R ContentInstance: Create contentInstance which violates policy - positive
+    [Documentation]    Create such contentInstance resource which trigers delete of Oldest and verify.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.03 C/R ContentInstance: Create contentInstance which violates policy - negative
+    [Documentation]    Create such contentInstance resource which results with NOT_ACCEPTABLE error and verify if
+    ...    Oldest and Latest has not changed.
+    [Tags]    not-implemented    exclude
+    TODO
+
+*** Keywords ***
+TODO
+    Fail    "Not implemented"
diff --git a/csit/suites/iotdm/basic/102_ProceduresContent.robot b/csit/suites/iotdm/basic/102_ProceduresContent.robot
new file mode 100644 (file)
index 0000000..34c7be5
--- /dev/null
@@ -0,0 +1,259 @@
+*** Settings ***
+Documentation     Test suite tests Container and ContentInstance resources according to OneM2M specifications:
+...               <container>: (TS-0001: 10.2.4 <container> Resource Procedures; TS-0004 7.4.6 Resource Type <container>)
+...               <contentInstance>: (TS-0001 10.2.19 <contentInstance> Resource Procedures; TS-0004 7.4.7 Resource Type <contentInstance>)
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           RequestsLibrary
+Library           ../../../libraries/Common.py
+Resource          ../../../libraries/Utils.robot
+Resource          ../../../variables/Variables.robot
+
+*** Variables ***
+
+*** Test Cases ***
+1.00 C/R Container, positive: With valid contentInstance resources
+    [Documentation]    Create container resource with more than one contentInstance child resources.
+    ...    Retrieve the container with all attributes and all child resources by one request and
+    ...    verify the response.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01 C/R Container negative: Without contentInstance resources, without subscription
+    [Documentation]    Create container resource without contentInstance child resources and without subscription
+    ...    resource.
+    ...    Retrieve the container with all attributes and all child resources by one request and
+    ...    verify the error code and error message of the response.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02 C/R Container negative: Without contentInstance resources, with subscription, eventType != E
+    [Documentation]    Create container resource without contentInstance child resources and with subscription resource
+    ...    with eventType attribute set to other value than E.
+    ...    Retrieve the container with all attributes and all child resources by one request and
+    ...    verify the error code and error message of the response.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03 C/R Container positive: Without contentInstance resources, with subscription, eventType == E
+    [Documentation]    Create container resource without contentInstance child resources and with subscription resource
+    ...    with eventType attribute set to value E.
+    ...    Verify this handling scenario from TS-0001, timer will not expire in this case:
+    ...    "There is a subscription on the <container> resource with the eventType 'e)'
+    ...    set (oneM2M TS-0001, table 9.6.8-3) so a notification is triggered, a timer shall be set and the
+    ...    Receiver shall delay the response until a <constentInstance> resource is available in the
+    ...    <container> resource, or until the timer expires; in that last case the Receiver shall respond
+    ...    with an error. If the Result Expiration Timestamp parameter is received from the Originator, the
+    ...    timer should be set to enforce this parameter, otherwise, the timer is set, based on the local
+    ...    policy configured at the Hosting CSE."
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.04 C/R Container negative: Without contentInstance resources, with subscription, eventType == E
+    [Documentation]    Create container resource without contentInstance child resources and with subscription resource
+    ...    with eventType attribute set to value E.
+    ...    Verify this handling scenario from TS-0001, timer will expire in this case:
+    ...    "There is a subscription on the <container> resource with the eventType 'e)'
+    ...    set (oneM2M TS-0001, table 9.6.8-3) so a notification is triggered, a timer shall be set and the
+    ...    Receiver shall delay the response until a <constentInstance> resource is available in the
+    ...    <container> resource, or until the timer expires; in that last case the Receiver shall respond
+    ...    with an error. If the Result Expiration Timestamp parameter is received from the Originator, the
+    ...    timer should be set to enforce this parameter, otherwise, the timer is set, based on the local
+    ...    policy configured at the Hosting CSE."
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.05 C/R Container negative: With stale contentInstance resources, without subscription
+    [Documentation]    Create container resource with more than one contentInstance child resources and without
+    ...    subscription resource. Let the contentInstance resources become stale.
+    ...    Retrieve the container with all attributes and all child resources by one request and
+    ...    verify the error code and error message of the response.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.06 C/R Container negative: With stale contentInstance resources, with subscription, eventType != E
+    [Documentation]    Create container resource with more than one contentInstance child resources and with
+    ...    subscription resource with eventType attribute set to other value than E.
+    ...    Let the contentInstance resources become stale.
+    ...    Retrieve the container with all attributes and all child resources by one request and
+    ...    verify the error code and error message of the response.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.07 C/R Container positive: With stale contentInstance resources, with subscription, eventType == E
+    [Documentation]    Create container resource with more than one contentInstance child resources and with
+    ...    subscription resource with eventType attribute set to value E. Let the contentInstance resources
+    ...    become stale.
+    ...    Verify this handling scenario from TS-0001, timer will not expire in this case:
+    ...    "There is a subscription on the <container> resource with the eventType 'e)'
+    ...    set (oneM2M TS-0001, table 9.6.8-3) so a notification is triggered, a timer shall be set and the
+    ...    Receiver shall delay the response until a <constentInstance> resource is available in the
+    ...    <container> resource, or until the timer expires; in that last case the Receiver shall respond
+    ...    with an error. If the Result Expiration Timestamp parameter is received from the Originator, the
+    ...    timer should be set to enforce this parameter, otherwise, the timer is set, based on the local
+    ...    policy configured at the Hosting CSE."
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.08 C/R Container negative: With stale contentInstance resources, with subscription, eventType == E
+    [Documentation]    Create container resource with more than one contentInstance child resources and with
+    ...    subscription resource with eventType attribute set to value E. Let the contentInstance resources
+    ...    become stale.
+    ...    Verify this handling scenario from TS-0001, timer will expire in this case:
+    ...    "There is a subscription on the <container> resource with the eventType 'e)'
+    ...    set (oneM2M TS-0001, table 9.6.8-3) so a notification is triggered, a timer shall be set and the
+    ...    Receiver shall delay the response until a <constentInstance> resource is available in the
+    ...    <container> resource, or until the timer expires; in that last case the Receiver shall respond
+    ...    with an error. If the Result Expiration Timestamp parameter is received from the Originator, the
+    ...    timer should be set to enforce this parameter, otherwise, the timer is set, based on the local
+    ...    policy configured at the Hosting CSE."
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.00 C/R Containers: Prepare set of container resources for next TCs
+    [Documentation]    This TC prepares container resources for testing of this procedure described in TS-0001:
+    ...    "If the newly created <contentInstance> resource violates any of the policies defined in the
+    ...    parent <container> resource (e.g. maxNrOfInstances or maxByteSize), then the oldest
+    ...    <contentInstance> resources shall be removed from the <container> to enable the creation of the
+    ...    new <contentInstance> resource."
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.01 C/R ContentInstance: Container with maxNrOfInstances set to 3
+    [Documentation]    Create at least 5 contentInstance resources in container with maxNrOfInstances
+    ...    attribute set to 3 and verify result of each create operation if the first three passed and
+    ...    none contentInstance deleted. Verify that the next two operations passed and oldest
+    ...    contentInstance resources has been deleted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.02 C/R ContentInstance: Container with maxByteSize set to N, multiple contentInstances
+    [Documentation]    Create at least 5 contentInstance resources in container with maxByteSize
+    ...    attribute set to N and verify result of each create operation if the first three passed and
+    ...    none contentInstance deleted. Verify that the next two operations passed and oldest
+    ...    contentInstance resources has been deleted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.03 C/R ContentInstance: Container with maxByteSize set to N, single contentInstance
+    [Documentation]    Try to create such contentInstance resource which is the first contentInstance resource of the
+    ...    parent container resource and which has content size higher than N value set in maxByteSize
+    ...    attribute of the parent container.
+    ...    Verify if the response includes NOT_ACCEPTABLE error.
+    ...    Create also contentInstance with content size equal to N and verify if such contentInstance has
+    ...    been successfully created.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.04 C/R ContentInstance: Container with maxNrOfInstances and maxByteSize, violation of maxNrOfInstances
+    [Documentation]    Create at least 5 contentInstance resources in container with maxNrOfInstances
+    ...    attribute set to 3 and and maxByteSize set to N. Sum of all five contentInstance resources
+    ...    content sizes is lower than N so the maxByteSize is not violated in this TC.
+    ...    Verify result of create operations if the first three passed and none contentInstance is
+    ...    deleted. Verify that the next two operations passed and oldest contentInstance resources has
+    ...    been deleted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.05 C/R ContentInstance: Container with maxNrOfInstances and maxByteSize, violation of maxByteSize
+    [Documentation]    Create at least 4 contentInstance resources in container with maxNrOfInstances
+    ...    attribute set to 4 and and maxByteSize set to N. Sum of all first two contentInstance
+    ...    resources content sizes is lower than N so the maxByteSize is not violated by them.
+    ...    Verify result of create operations if the first two passed and none contentInstance is
+    ...    deleted. Verify that the next two operations passed and oldest contentInstance resources has
+    ...    been deleted due to violation of the maxByteSize.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.06 C/R ContentInstance: Container with maxNrOfInstances and maxByteSize, no contentInstance, too big content
+    [Documentation]    Create single contentInstance in container without contentInstances and with maxNrOfInstances
+    ...    attribute set to 4 and maxByteSize set to N. Content size of the new contentInstance
+    ...    resource is higher than N so it violates the maxByteSize and the operation results with
+    ...    NOT_ACCEPTABLE error.
+    ...    Verify the error received in response and verify that the contentInstanse has not been created.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.07 C/R ContentInstance: Container with maxNrOfInstances and maxByteSize, with contentInstance, too big content
+    [Documentation]    Create single contentInstance in container with three contentInstances and with maxNrOfInstances
+    ...    attribute set to 4 and maxByteSize set to N. Content size of the new contentInstance
+    ...    resource is higher than N so it violates the maxByteSize and the operation results with
+    ...    NOT_ACCEPTABLE error.
+    ...    Verify the error received in response and verify that the contentInstanse has not been created
+    ...    and no any contentInstance child resource has been deleted from the parent container.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.08 C/R ContentInstance: No violation after violation of maxByteSize
+    [Documentation]    Use container with maxNrOfInstances set to 2 and maxByteSize set to N.
+    ...    1. Create first contentInstance which doesn't violate maxByteSize.
+    ...    2. Create second contentInstance which violates maxByteSize so the first one is deleted.
+    ...    3. Create third contentInstance which doesn't violate maxByteSize. (So 2. and 3. are there)
+    ...    4. Create fourth contentInstance with content size so big that second and third
+    ...    contentInstances must be deleted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.00 U/R ContentInstance: Operation not allowed
+    [Documentation]    Test update operation targetted to contentInstance resource. Verify the error response if
+    ...    includes OPERATION_NOT_ALLOWED and verify that the contentInstance has not been updated.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.00 Container stateTag: Update of the container itself
+    [Documentation]    Test update of container resource and verify that stateTag attribute has been incremented.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.01.00 Container stateTag: Create operation of contentInstance
+    [Documentation]    Test Create operation of child contentInstance resource of the container. Verify that
+    ...    stateTag of the container has been incremented and stateTag of the contentInstance resource
+    ...    was set to the value of container's stateTag.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.01.01 Container stateTag: CUD operations of child resources - contentInstance
+    [Documentation]    Test CUD operations with contentInstance child resoruces of the container resource and
+    ...    verify that stateTag attribute of the parent container has been incremented.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.01.02 Container stateTag: CUD operations of child resources - container
+    [Documentation]    Test CUD operations with container child resoruces of the container parent resource and
+    ...    verify that stateTag attribute of the parent container has been incremented.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.01.03 Container stateTag: CUD operations of child resources - subscription
+    [Documentation]    Test CUD operations with subscription child resoruces of the container parent resource and
+    ...    verify that stateTag attribute of the parent container has been incremented.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.02.01 Container stateTag + notification: CUD operations of child resources - contentInstance
+    [Documentation]    Test CUD operations with contentInstance child resoruces of the container resource
+    ...    with subscription.
+    ...    Verify that stateTag attribute of the parent container has been incremented and it has
+    ...    trigerred notification.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.02.02 Container stateTag + notification: CUD operations of child resources - container
+    [Documentation]    Test CUD operations with container child resoruces of the container resource
+    ...    with subscription.
+    ...    Verify that stateTag attribute of the parent container has been incremented and it has
+    ...    trigerred notification.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.02.03 Container stateTag + notification: CUD operations of child resources - subscription
+    [Documentation]    Test CUD operations with subscription child resoruces of the container resource
+    ...    with subscription.
+    ...    Verify that stateTag attribute of the parent container has been incremented and it has
+    ...    trigerred notification.
+    [Tags]    not-implemented    exclude
+    TODO
+
+*** Keywords ***
+TODO
+    Fail    "Not implemented"
diff --git a/csit/suites/iotdm/basic/103_ProceduresGroupMgmt.robot b/csit/suites/iotdm/basic/103_ProceduresGroupMgmt.robot
new file mode 100644 (file)
index 0000000..b8276c3
--- /dev/null
@@ -0,0 +1,145 @@
+*** Settings ***
+Documentation     Test suite tests procedures related to Group resource and its child resources according
+...               to OneM2M specifications:
+...               <group>: (TS-0001: 10.2.7 Group Management Procedures; TS-0004: 7.4.13 Resource Type <group>)
+...               <fanOutPoint>: (TS-0001: 10.2.7.6 <fanOutPoint> Management Procedures; TS-0004: 7.4.14 Resource Type <fanOutPoint>)
+...               <semanticFanOutPoint>: (TS-0001: 10.2.7.14 Retrieve <semanticFanOutPoint>; TS-0004: 7.4.35 Resource Type <semanticFanOutPoint>)
+...               <semanticDescriptor>: (TS-0001: 10.2.32 <semanticDescriptor> Resource Procedures; TS-0004: 7.4.34 Resource Type <semanticDescriptor>)
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           RequestsLibrary
+Library           ../../../libraries/Common.py
+Resource          ../../../libraries/Utils.robot
+Resource          ../../../variables/Variables.robot
+
+*** Variables ***
+
+*** Test Cases ***
+1.00 C/R valid Group resource without child resources
+    [Documentation]    Create simple Group resource without child resources and verify by Retrieve operation and
+    ...    check the received resource representation of includes all expected attributes.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01 C/R Group resource: valid memberIDs
+    [Documentation]    Positive TC related to this Group resource Create handling step:
+    ...    "TS-0001: Validate that there are no duplicate members present in the memberIDs attribute"
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02 C/R Group resource: invalid memberIDs
+    [Documentation]    Negative TC related to this Group resource Create handling step:
+    ...    "TS-0001: Validate that there are no duplicate members present in the memberIDs attribute"
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03 C/R Group resource: valid memberTypes
+    [Documentation]    Positive TC related to this Group resource Create handling step:
+    ...    "TS-0001: Validate that the resource type of every member on each member Hosting CSE
+    ...    conforms to the memberType attribute in the request, if the memberType attribute of the <group>
+    ...    resource is not 'mixed'. Set the memberTypeValidated attribute to TRUE upon successful validation."
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.04 C/R Group resource: invalid memberTypes
+    [Documentation]    Negative TC related to this Group resource Create handling step:
+    ...    "TS-0001: Validate that the resource type of every member on each member Hosting CSE
+    ...    conforms to the memberType attribute in the request, if the memberType attribute of the <group>
+    ...    resource is not 'mixed'. Set the memberTypeValidated attribute to TRUE upon successful validation."
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.05 C/R Group resource: Verify <fanOutPoint> and <semanticFanOutPoint> child resources
+    [Documentation]    Test all possible scenarios related to this Group resource Create handling step:
+    ...    "TS-0001: Upon successful validation of the provided attributes, create a new group resource
+    ...    including the <fanOutPoint> child-resource in the Hosting CSE. If the CSE supports semantic
+    ...    discovery functionality, the Hosting CSE shall also set the semanticSupportIndicator attribute
+    ...    to TRUE and create the <semanticFanOutPoint> child-resource"
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.06 C/R Group resource: Verify memberTypeValidated attribute
+    [Documentation]    Test all possible scenarios related to this Group resource Create handling steps:
+    ...    "TS-0001: Conditionally, in the case that the group resource contains temporarily unreachable
+    ...    Hosting CSE of sub-group resources as member resource, set the memberTypeValidated attribute
+    ...    of the <group> resource to FALSE"
+    ...    "TS-0001: Respond to the Originator with the appropriate generic Response with the
+    ...    representation of the <group> resource if the memberTypeValidated attribute is FALSE, and the
+    ...    address of the created <group> resource if the CREATE was successful"
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.07 C/R Group resource: resource become reachable
+    [Documentation]    Test all possible scenarios related to this Group resource Create handling step:
+    ...    "TS-0001: As soon as any Hosting CSE that hosts the unreachable resource becomes reachable,
+    ...    the memberType validation procedure shall be performed. If the memberType validation fails,
+    ...    the Hosting CSE shall deal with the <group> resource according to the policy defined by the
+    ...    consistencyStrategy attribute of the <group> resource provided in the request or by default if
+    ...    the attribute is not provided"
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.01 U/R Group resource: valid memberIDs
+    [Documentation]    Positive TC related to this Group resource Create handling step:
+    ...    "TS-0001: Validate that there are no duplicate members present in the memberIDs attribute"
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.02 U/R Group resource: invalid memberIDs
+    [Documentation]    Negative TC related to this Group resource Create handling step:
+    ...    "TS-0001: Validate that there are no duplicate members present in the memberIDs attribute"
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.03 U/R Group resource: valid memberTypes
+    [Documentation]    Positive TC related to this Group resource Create handling step:
+    ...    "TS-0001: Validate that the resource type of every member on each member Hosting CSE
+    ...    conforms to the memberType attribute in the request, if the memberType attribute of the <group>
+    ...    resource is not 'mixed'. Set the memberTypeValidated attribute to TRUE upon successful validation."
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.04 U/R Group resource: invalid memberTypes
+    [Documentation]    Negative TC related to this Group resource Create handling step:
+    ...    "TS-0001: Validate that the resource type of every member on each member Hosting CSE
+    ...    conforms to the memberType attribute in the request, if the memberType attribute of the <group>
+    ...    resource is not 'mixed'. Set the memberTypeValidated attribute to TRUE upon successful validation."
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.05 U/R Group resource: Verify memberTypeValidated attribute
+    [Documentation]    Test all possible scenarios related to this Group resource Create handling steps:
+    ...    "TS-0001: Conditionally, in the case that the <group> resource contains temporarily unreachable
+    ...    Hosting CSE of sub-group resources as members resource set the memberTypeValidated attribute of
+    ...    the <group> resource to FALSE"
+    ...    "TS-0001: Respond to the Originator with the appropriate generic response with the
+    ...    representation of the <group> resource if the memberTypeValidated attribute is FALSE, and the
+    ...    address of the created <group> resource if the UPDATE is successful"
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.06 U/R Group resource: resource become reachable
+    [Documentation]    Test all possible scenarios related to this Group resource Create handling step:
+    ...    "TS-0001: As soon as any Hosting CSE that hosts unreachable resource becomes reachable, the
+    ...    memberType validation procedure shall be performed. If the memberType validation fails, the
+    ...    Hosting CSE shall deal with the <group> resource according to the policy defined by the
+    ...    consistencyStrategy attribute of the <group> resource provided in the request, or by default if
+    ...    the attribute is not provided"
+    [Tags]    not-implemented    exclude
+    TODO
+
+3. CRUD fanOutPoint resource
+    [Documentation]    Test CRUD operations targetted to fanOutPoint child resource of Group resource.
+    ...    TODO: Split this TC if needed
+    [Tags]    not-implemented    exclude
+    TODO
+
+4. CRUD semanticFanOutPoint and semanticDescriptor resources
+    [Documentation]    Test CRUD operations targetted to semanticFanOutPoint and semanticDescriptor resources.
+    ...    TODO: Split this TC if needed
+    [Tags]    not-implemented    exclude
+    TODO
+
+*** Keywords ***
+TODO
+    Fail    "Not implemented"
diff --git a/csit/suites/iotdm/basic/104_ProceduresACP.robot b/csit/suites/iotdm/basic/104_ProceduresACP.robot
new file mode 100644 (file)
index 0000000..60ee4d9
--- /dev/null
@@ -0,0 +1,398 @@
+*** Settings ***
+Documentation     Test suite tests access controll procedures related to accessControlPolicy resource described
+...               in OneM2M specifications:
+...               TS-0001: 9.6.2 Resource Type accessControlPolicy
+...               TS-0004: 7.3.3.15 Check authorization of the originator
+...               TS-0003: 7.1 Access Control Mechanism
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           RequestsLibrary
+Library           ../../../libraries/Common.py
+Resource          ../../../libraries/Utils.robot
+Resource          ../../../variables/Variables.robot
+
+*** Variables ***
+
+*** Test Cases ***
+1.01.01 ACP cseBase: Permit: privileges: AE, CRUD
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set to
+    ...    CRUD operations. Test CRUD requests which are permitted by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.02 ACP cseBase: Deny: privileges: AE, CRUD
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set to
+    ...    CRUD operations. Test CRUD requests which are denied by ACP due to different request originator
+    ...    AE-ID or CSE as originator.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.03 ACP cseBase: Deny: privileges: AE, other than REQ operations
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set to
+    ...    all operations expect to the operation used in the request.
+    ...    Test CRUD requests which are denied by ACP due to non-permitted operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.04 ACP cseBase: Permit: privileges: AE, N
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to N operation. Test the notification request which is permitted by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.05 ACP cseBase: Deny: privileges: AE, N
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to N operation. Test notify reques which is denied by ACP due to different request originator
+    ...    AE-ID or CSE as originator.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.06 ACP cseBase: Deny: privileges: AE, CRUD + Discovery
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUD + Discovery operations. Test CRUD + Discovery requests which are denied by ACP because
+    ...    the notify operation is not permitted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.07 ACP cseBase: Permit: privileges: AE, Discovery
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to Discovery operation. Test the discovery request which is permitted by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.08 ACP cseBase: Deny: privileges: AE, Discovery
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to Discovery operation. Test discovery request which is denied by ACP due to different request
+    ...    originator AE-ID or CSE as originator.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.09 ACP cseBase: Deny: privileges: AE, CRUDN
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN operations. Test discovery request which is denied by ACP because the discovery operation
+    ...    is not permitted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.10 ACP cseBase: Permit: privileges: AE, CRUDN + Discovery, multiple accessControlRules
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with three
+    ...    accessControlRules and only one of them permits tested requests. Used ACPs have set AE-ID in
+    ...    accessControlOriginators and accessControlOperations set to CRUDN + Discovery operations.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.11 ACP cseBase: Permit: selfPrivileges: AE, CRUDN + Discovery, multiple accessControlRules
+    [Documentation]    Test ACPs of cseBase and test their selfPrivileges with three
+    ...    accessControlRules and only one of them permits tested requests. Used ACPs have set AE-ID in
+    ...    accessControlOriginators and accessControlOperations set to CRUDN + Discovery operations.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.12 ACP cseBase: Deny: selfPrivileges: AE, CRUDN + Discovery, multiple accessControlRules
+    [Documentation]    Test ACPs of cseBase and test their selfPrivileges with three
+    ...    accessControlRules and all of them deny tested requests. Used ACPs have set AE-ID in
+    ...    accessControlOriginators and accessControlOperations set to CRUDN + Discovery operations.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.13 ACP cseBase: Permit: AE, CRUDN + Discovery, accessControlContexts/accessControlWindow
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN + Discovery operations. Used ACPs have set also accessControlWindow and tested requests
+    ...    meet all cryteria and are permitted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.14 ACP cseBase: Deny: AE, CRUDN + Discovery, accessControlContexts/accessControlWindow
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN + Discovery operations. Used ACPs have set also accessControlWindow and tested requests
+    ...    do not meet this cryteria and are denied.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.15 ACP cseBase: Permit: AE, CRUDN + Discovery, accessControlContexts/accessControlIpAddresses/ipv4Addresses
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN + Discovery operations. Used ACPs have set also accessControlIpAddresses/ipv4Addresses
+    ...    and tested requests meet all cryteria and are permitted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.16 ACP cseBase: Deny: AE, CRUDN + Discovery, accessControlContexts/accessControlIpAddresses/ipv4Addresses
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN + Discovery operations. Used ACPs have set also accessControlIpAddresses/ipv4Addresses
+    ...    and tested requests do not meet this cryteria and are denied.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.17 ACP cseBase: Permit: AE, CRUDN + Discovery, accessControlContexts/accessControlIpAddresses/ipv6Addresses
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN + Discovery operations. Used ACPs have set also accessControlIpAddresses/ipv6Addresses
+    ...    and tested requests meet all cryteria and are permitted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.18 ACP cseBase: Deny: AE, CRUDN + Discovery, accessControlContexts/accessControlIpAddresses/ipv6Addresses
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN + Discovery operations. Used ACPs have set also accessControlIpAddresses/ipv6Addresses
+    ...    and tested requests do not meet this cryteria and are denied.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.19 ACP cseBase: Permit: AE, CRUDN + Discovery, accessControlContexts/accessControlLocationRegions
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN + Discovery operations. Used ACPs have set also accessControlLocationRegions
+    ...    and tested requests meet all cryteria and are permitted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.20 ACP cseBase: Deny: AE, CRUDN + Discovery, accessControlContexts/accessControlLocationRegions
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN + Discovery operations. Used ACPs have set also accessControlLocationRegions
+    ...    and tested requests do not meet this cryteria and are denied.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.21 ACP cseBase: Permit: AE, CRUDN + Discovery, accessControlObjectDetails
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN + Discovery operations. Used ACPs have set also accessControlObjectDetails
+    ...    and tested requests meet all cryteria and are permitted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.22 ACP cseBase: Deny: AE, CRUDN + Discovery, accessControlObjectDetails
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN + Discovery operations. Used ACPs have set also accessControlObjectDetails
+    ...    and tested requests do not meet this cryteria and are denied.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.23 ACP cseBase: Permit: AE, CRUDN + Discovery, accessControlAuthenticationFlag
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN + Discovery operations. Used ACPs have set also accessControlAuthenticationFlag
+    ...    and tested requests meet all cryteria and are permitted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01.24 ACP cseBase: Deny: AE, CRUDN + Discovery, accessControlAuthenticationFlag
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to AE-ID and accessControlOperations set
+    ...    to CRUDN + Discovery operations. Used ACPs have set also accessControlAuthenticationFlag
+    ...    and tested requests do not meet this cryteria and are denied.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02.01 ACP cseBase: Permit: existing Group including originator, CRUD
+    [Documentation]    Test ACP of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to existing Group with the request originator
+    ...    included and accessControlOperations set
+    ...    to CRUD operations. Test CRUD requests which are permitted by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02.02 ACP cseBase: Deny: not existing Group including originator, CRUD
+    [Documentation]    Test ACP of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to not existing Group with the
+    ...    request originator included and accessControlOperations set to CRUD operations.
+    ...    Test CRUD requests which are denied by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02.03 ACP cseBase: Deny: existing Group not including originator, CRUD
+    [Documentation]    Test ACP of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to existing Group without the request
+    ...    originator included and accessControlOperations set to CRUD operations. Test CRUD requests which
+    ...    are denied by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02.04 ACP cseBase: Deny: existing Group including originator, other than request operations
+    [Documentation]    Test ACP of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to existing Group with the request originator
+    ...    included and accessControlOperations set
+    ...    to CRUD operations other than operation used in request so the requests are denied.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02.05 ACP cseBase: Permit: existing Group including originator, N
+    [Documentation]    Test ACP of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to existing Group with the request originator
+    ...    included and accessControlOperations set to notify operation. Test notify requests which are
+    ...    permitted by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02.06 ACP cseBase: Deny: not existing Group including originator, N
+    [Documentation]    Test ACP of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to not existing Group with the
+    ...    request originator included and accessControlOperations set to notify operation.
+    ...    Test notify requests which are denied by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02.07 ACP cseBase: Deny: existing Group not including originator, N
+    [Documentation]    Test ACP of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to existing Group without the request
+    ...    originator included and accessControlOperations set to notify operation. Test notify requests which
+    ...    are denied by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02.08 ACP cseBase: Deny: existing Group including originator, CRUD + Discovery
+    [Documentation]    Test ACP of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to existing Group with the request originator
+    ...    included and accessControlOperations set
+    ...    to CRUD + Discovery operations so the tested notification requests are denied.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02.09 ACP cseBase: Permit: existing Group including originator, Discovery
+    [Documentation]    Test ACP of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to existing Group with the request originator
+    ...    included and accessControlOperations set to discovery operation. Test discovery requests which are
+    ...    permitted by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02.10 ACP cseBase: Deny: not existing Group including originator, Discovery
+    [Documentation]    Test ACP of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to not existing Group with the
+    ...    request originator included and accessControlOperations set to discovery operation.
+    ...    Test discovery requests which are denied by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02.11 ACP cseBase: Deny: existing Group not including originator, Discovery
+    [Documentation]    Test ACP of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to existing Group without the request
+    ...    originator included and accessControlOperations set to discovery operation. Test discovery requests which
+    ...    are denied by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02.12 ACP cseBase: Deny: existing Group including originator, CRUDN
+    [Documentation]    Test ACP of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to existing Group with the request originator
+    ...    included and accessControlOperations set
+    ...    to CRUDN operations so the tested discovery requests are denied.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03.01 ACP cseBase: Permit: All, CRUD
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to All and accessControlOperations set to
+    ...    CRUD operations. Test CRUD requests which are permitted by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03.02 ACP cseBase: Deny: All, other than REQ operations
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to All and accessControlOperations set to
+    ...    all operations expect to the operation used in the request.
+    ...    Test CRUD requests which are denied by ACP due to non-permitted operation.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03.03 ACP cseBase: Permit: All, N
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to All and accessControlOperations set
+    ...    to N operation. Test the notification request which is permitted by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03.04 ACP cseBase: Deny: All, CRUD + Discovery
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to All and accessControlOperations set
+    ...    to CRUD + Discovery operations. Test CRUD + Discovery requests which are denied by ACP because
+    ...    the notify operation is not permitted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03.05 ACP cseBase: Permit: All, Discovery
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to All and accessControlOperations set
+    ...    to Discovery operation. Test the discovery request which is permitted by ACP.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03.06 ACP cseBase: Deny: All, CRUDN
+    [Documentation]    Test ACPs of cseBase which are used by target container resource. Test only privileges with single
+    ...    accessControlRule with accessControlOriginators set to All and accessControlOperations set
+    ...    to CRUDN operations. Test discovery request which is denied by ACP because the discovery operation
+    ...    is not permitted.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.04 ACP cseBase: accessControlOriginators CSE
+    [Documentation]    Implement the same scenario as in 1.01.01 - 1.01.09 but with accessControlOriginators set to
+    ...    specific CSE-ID(s). Split into multiple TCs if needed.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.05 ACP cseBase: accessControlOriginators role
+    [Documentation]    Implement the same scenario as in 1.01.01 - 1.01.09 but with accessControlOriginators set to
+    ...    specific role(s). Split into multiple TCs if needed.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.06 ACP cseBase: accessControlOriginators domain
+    [Documentation]    Implement the same scenario as in 1.01.01 - 1.01.09 but with accessControlOriginators set to
+    ...    specific domain(s). Split into multiple TCs if needed.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.00 ACP remoteCSE
+    [Documentation]    Implement the same scenario as in 1.01.01 - 1.01.09 but with ACP resource created as child
+    ...    resource of remoteCSE resource. Split into multiple TCs if needed.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.00 ACP AE
+    [Documentation]    Implement the same scenario as in 1.01.01 - 1.01.09 but with ACP resource created as child
+    ...    resource of AE resource. Split into multiple TCs if needed.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.01 ACP system default
+    [Documentation]    Test multiple scenarios with resources with empty accessControlPolicyIDs attribute.
+    ...    System default policy should be used.
+    ...    Split into multiple TCs if needed.
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.01 ACP cseBase: resources without accessControlPolicyIDs
+    [Documentation]    Test ACP procedures with resources without accessControlPolicyIDs attribute,
+    ...    e.g.: Oldest, Latest, etc.
+    ...    ACP IDs defined for parent resource should be used in such cases. Test also cases when also
+    ...    parent resource doesn't have specified ACP IDs, system default ACP should be used.
+    ...    Split into multiple TCs if needed.
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.01 ACP cseBase: announced resources
+    [Documentation]    Test ACP procedures with announced resources.
+    ...    Split into multiple TCs if needed.
+    [Tags]    not-implemented    exclude
+    TODO
+
+*** Keywords ***
+TODO
+    Fail    "Not implemented"
diff --git a/csit/suites/iotdm/basic/105_ProceduresRegistration.robot b/csit/suites/iotdm/basic/105_ProceduresRegistration.robot
new file mode 100644 (file)
index 0000000..6b77935
--- /dev/null
@@ -0,0 +1,93 @@
+*** Settings ***
+Documentation     Tests registration of AE and CSE entities resulting in creation of
+...               AE and remoteCSE resources.
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           RequestsLibrary
+Library           ../../../libraries/Common.py
+Resource          ../../../libraries/Utils.robot
+Resource          ../../../variables/Variables.robot
+
+*** Variables ***
+
+*** Test Cases ***
+1.00 Add Test Cases
+    [Documentation]    no all test cases defined
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01 Create AE with resourceName
+    [Documentation]    Register AE using request primitive with resourceName specified. The resourceName
+    ...    parameter is used as AE-ID.
+    ...    Verify successful registration using retrieve operation with the new resource.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02 Create AE without resourceName
+    [Documentation]    Register AE using request primitive without resourceName specified. From parameter
+    ...    is used as AE-ID.
+    ...    Verify successful registration using retrieve operation with the new resource.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03 Create AE with conflicting AE-ID and with resourceName
+    [Documentation]    Register AE using request primitive with resourceName specified. The resourceName
+    ...    parameter is used as AE-ID but it is AE-ID of already registered AE so the registration
+    ...    fails.
+    ...    Verify the resource in conflict using retrieve operation before and after registration attempt.
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.04 Create AE with conflicting AE-ID and without resourceName
+    [Documentation]    Register AE using request primitive without resourceName specified. From parameter
+    ...    is used as AE-ID but it is AE-ID of already registered AE so the registration
+    ...    fails.
+    ...    Verify the resource in conflict using retrieve operation before and after registration attempt.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.01 Create remoteCSE with resourceName == CSE-ID
+    [Documentation]    Register CSE using request primitive with resourceName specified. The resourceName
+    ...    parameter is equal to CSE-ID.
+    ...    Verify successful registration using retrieve operation with the new resource.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.02 Create remoteCSE with resourceName != CSE-ID
+    [Documentation]    Register CSE using request primitive with resourceName specified. The resourceName
+    ...    parameter is different than CSE-ID.
+    ...    Verify successful registration using retrieve operation with the new resource.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.03 Create remoteCSE without resourceName
+    [Documentation]    Register CSE using request primitive without resourceName specified.
+    ...    Verify successful registration using retrieve operation with the new resource.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.04 Create remoteCSE with conflicting CSE-ID and non-conflicting resourceName
+    [Documentation]    Register CSE using request primitive with resourceName specified. The resourceName
+    ...    parameter is unique but CSE-ID is in conflict with already registered CSE so the registration
+    ...    fails.
+    ...    Verify the resource in conflict using retrieve operation before and after registration attempt.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.05 Create remoteCSE with conflicting CSE-ID and without resourceName
+    [Documentation]    Register CSE using request primitive without resourceName specified. The CSE-ID is in conflict
+    ...    with already registered CSE so the registration fails.
+    ...    Verify the resource in conflict using retrieve operation before and after registration attempt.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.06 Create remoteCSE with uniqeu CSE-ID and conflicting resourceName
+    [Documentation]    Register CSE using request primitive with resourceName specified. The resourceName
+    ...    parameter is conflict with already registered CSE so the registration fails.
+    ...    Verify the resource in conflict using retrieve operation before and after registration attempt.
+    [Tags]    not-implemented    exclude
+    TODO
+
+*** Keywords ***
+TODO
+    Fail    "Not implemented"
diff --git a/csit/suites/iotdm/basic/210_IoTDMSecurityNoAuth.robot b/csit/suites/iotdm/basic/210_IoTDMSecurityNoAuth.robot
new file mode 100644 (file)
index 0000000..72dbcad
--- /dev/null
@@ -0,0 +1,197 @@
+*** Settings ***
+Documentation     Test suite testing IoTDM security methods without authentication of the request sender entity.
+...               Test cases are implemented according to tables in 000_IoTDMSecurityNoAuthTable.txt
+...               TODO: It seems that data driven approach is much more appropriate for implementation
+...               of TCs described below which can be merged as needed.
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
+Suite Teardown    Delete All Sessions
+Library           RequestsLibrary
+Library           ../../../libraries/Common.py
+Resource          ../../../libraries/Utils.robot
+Resource          ../../../variables/Variables.robot
+
+*** Variables ***
+
+*** Test Cases ***
+1.00 L0: Verify configured security level
+    [Documentation]    Verifies if the security level configured for IoTDM core and used protocol provider is L0
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.01 L0: Local CSE as target, AE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to local CSE and originated by AE
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.02 L0: Local CSE as target, CSE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to local CSE and originated by CSE
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.03 L0: Remote CSE as target, AE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to remote CSE and originated by AE
+    [Tags]    not-implemented    exclude
+    TODO
+
+1.04 L0: Remote CSE as target, CSE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to remote CSE and originated by CSE
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.00 L1: Configure security level L1 in IoTDM core
+    [Documentation]    Changes security level of IoTDM core from L0 to L1 and verifies.
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.01 L1: IoTDM core: Local CSE as target, AE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to local CSE and originated by AE
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.02 L1: IoTDM core: Local CSE as target, CSE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to local CSE and originated by CSE
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.03 L1: IoTDM core: Remote CSE as target, AE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to remote CSE and originated by AE
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.04 L1: IoTDM core: Remote CSE as target, CSE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to remote CSE and originated by CSE
+    [Tags]    not-implemented    exclude
+    TODO
+
+2.99 Configure security level L0 in IoTDM core
+    [Documentation]    Changes security level of IoTDM core back to L0 and verifies.
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.00 L1: Configure security level L1 in OneM2M HTTP module
+    [Documentation]    Changes security level of OneM2M HTTP module from L0 to L1 and verifies. Security level
+    ...    of IoTDM core is still set to L0 (so L1 security is applied to HTTP requests).
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.01 L1: HTTP: Local CSE as target, AE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to local CSE and originated by AE
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.02 L1: HTTP: Local CSE as target, CSE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to local CSE and originated by CSE
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.03 L1: HTTP: Remote CSE as target, AE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to remote CSE and originated by AE
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.04 L1: HTTP: Remote CSE as target, CSE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to remote CSE and originated by CSE
+    [Tags]    not-implemented    exclude
+    TODO
+
+3.99 L1: Configure security level L0 in OneM2M HTTP module
+    [Documentation]    Changes security level of OneM2M HTTP module back to L0 and verifies.
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.00 L1: Configure security level L1 in OneM2M CoAP module
+    [Documentation]    Changes security level of OneM2M CoAP module from L0 to L1 and verifies. Security level
+    ...    of IoTDM core is still set to L0 (so L1 security is applied to CoAP requests).
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.01 L1: CoAP: Local CSE as target, AE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to local CSE and originated by AE
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.02 L1: CoAP: Local CSE as target, CSE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to local CSE and originated by CSE
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.03 L1: CoAP: Remote CSE as target, AE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to remote CSE and originated by AE
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.04 L1: CoAP: Remote CSE as target, CSE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to remote CSE and originated by CSE
+    [Tags]    not-implemented    exclude
+    TODO
+
+4.99 L1: Configure security level L0 in OneM2M CoAP module
+    [Documentation]    Changes security level of OneM2M CoAP module back to L0 and verifies.
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.00 L1: Configure security level L1 in OneM2M MQTT module
+    [Documentation]    Changes security level of OneM2M MQTT module from L0 to L1 and verifies. Security level
+    ...    of IoTDM core is still set to L0 (so L1 security is applied to MQTT requests).
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.01 L1: MQTT: Local CSE as target, AE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to local CSE and originated by AE
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.02 L1: MQTT: Local CSE as target, CSE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to local CSE and originated by CSE
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.03 L1: MQTT: Remote CSE as target, AE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to remote CSE and originated by AE
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.04 L1: MQTT: Remote CSE as target, CSE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to remote CSE and originated by CSE
+    [Tags]    not-implemented    exclude
+    TODO
+
+5.99 L1: Configure security level L0 in OneM2M MQTT module
+    [Documentation]    Changes security level of OneM2M MQTT module back to L0 and verifies.
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.00 L1: Configure security level L1 in OneM2M WS module
+    [Documentation]    Changes security level of OneM2M WS module from L0 to L1 and verifies. Security level
+    ...    of IoTDM core is still set to L0 (so L1 security is applied to WS requests).
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.01 L1: WS: Local CSE as target, AE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to local CSE and originated by AE
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.02 L1: WS: Local CSE as target, CSE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to local CSE and originated by CSE
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.03 L1: WS: Remote CSE as target, AE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to remote CSE and originated by AE
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.04 L1: WS: Remote CSE as target, CSE as originator
+    [Documentation]    Tests positive and negative cases of requests targetted to remote CSE and originated by CSE
+    [Tags]    not-implemented    exclude
+    TODO
+
+6.99 L1: Configure security level L0 in OneM2M WS module
+    [Documentation]    Changes security level of OneM2M WS module back to L0 and verifies.
+    [Tags]    not-implemented    exclude
+    TODO
+
+*** Keywords ***
+TODO
+    Fail    "Not implemented"