Definitions of needed test suites and test cases
[integration/test.git] / csit / suites / iotdm / basic / 102_ProceduresContent.robot
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"