Add isolation scenarios for clustered car/people tests
[integration/test.git] / csit / suites / iotdm / basic / 024_ResourceAttributesACP.robot
1 *** Settings ***
2 Documentation     Tests for Access Control Policy (ACP) resource attributes
3 Suite Teardown    Kill The Tree    ${ODL_SYSTEM_IP}    InCSE1    admin    admin
4 Resource          ../../../libraries/SubStrings.robot
5 Library           ../../../libraries/criotdm.py
6 Library           Collections
7
8 *** Variables ***
9 ${httphost}       ${ODL_SYSTEM_IP}
10 ${httpuser}       admin
11 ${httppass}       admin
12 ${rt_ae}          2
13 ${rt_container}    3
14 ${rt_contentInstance}    4
15 ${rt_acp}         1
16
17 *** Test Cases ***
18 Set Suite Variable
19     [Documentation]    set a suite variable ${iserver}
20     ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
21     Set Suite Variable    ${iserver}
22     #==================================================
23     #    Container Mandatory Attribute Test
24     #==================================================
25     # For Creation, there are no mandatory input attribute
26
27 1.0 Test whether default ACP exist
28     Modify Headers Origin    ${iserver}    admin
29     ${r} =    Retrieve Resource    ${iserver}    InCSE1/_defaultACP
30     ${text} =    Text    ${r}
31     LOG    ${text}
32     ${status_code} =    Status Code    ${r}
33     Should Be True    199 < ${status_code} < 299
34
35 1.1 Create ACP without context, test whether all the reponse mandatory attribtues exist.
36     [Documentation]    After Created, test whether all the mandatory attribtues exist.
37     ${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"
38     ${r}=    Create Resource    ${iserver}    InCSE1    ${rt_acp}    ${attr}
39     ${status_code} =    Status Code    ${r}
40     Should Be Equal As Integers    ${status_code}    201
41     ${text} =    Convert To String    ${r.text}
42     Should Contain All Sub Strings    ${text}    "ct":    "lt":    "ty"    "ri":    "pi":
43
44 1.2 Create ACP with valid acip(ipv4)
45     [Documentation]    After Created, test whether all the mandatory attribtues are exist.
46     ${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"
47     ${r}=    Create Resource    ${iserver}    InCSE1    ${rt_acp}    ${attr}
48     ${status_code} =    Status Code    ${r}
49     Should Be Equal As Integers    ${status_code}    201
50     ${text} =    Convert To String    ${r.text}
51     Should Contain All Sub Strings    ${text}    "ct":    "lt":    "ty"    "ri":    "pi":
52
53 1.3 Create ACP with invalid acip(ipv4)
54     [Documentation]    input a invalid ipv4 address and expect error
55     ${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"
56     ${error}=    Run Keyword And Expect Error    *    Create Resource    ${iserver}    InCSE1    ${rt_acp}
57     ...    ${attr}
58     Should Start with    ${error}    Cannot create this resource [400]
59     Should Contain    ${error}    not a valid Ipv4 address
60
61 1.4 Create ACP with valid acip(ipv6)
62     [Documentation]    After Created, test whether all the mandatory attribtues are exist.
63     ${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"
64     ${r}=    Create Resource    ${iserver}    InCSE1    ${rt_acp}    ${attr}
65     ${status_code} =    Status Code    ${r}
66     Should Be Equal As Integers    ${status_code}    201
67     ${text} =    Convert To String    ${r.text}
68     Should Contain All Sub Strings    ${text}    "ct":    "lt":    "ty"    "ri":    "pi":
69
70 1.5 Create ACP with invalid acip(ipv6)
71     [Documentation]    input a invalid Ipv6 address and expect error
72     ${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"
73     ${error}=    Run Keyword And Expect Error    *    Create Resource    ${iserver}    InCSE1    ${rt_acp}
74     ...    ${attr}
75     Should Start with    ${error}    Cannot create this resource [400]
76     Should Contain    ${error}    not a valid Ipv6 address
77
78 *** Keywords ***
79 Connect And Create Resource
80     [Arguments]    ${targetURI}    ${resoutceType}    ${attr}    ${resourceName}=${EMPTY}
81     ${iserver} =    Connect To Iotdm    ${httphost}    ${httpuser}    ${httppass}    http
82     ${r} =    Create Resource    ${iserver}    ${targetURI}    ${resoutceType}    ${attr}    ${resourceName}
83     ${status_code} =    Status Code    ${r}
84     Should Be Equal As Integers    ${status_code}    201
85
86 Response Is Correct
87     [Arguments]    ${r}
88     ${text} =    Text    ${r}
89     LOG    ${text}
90     ${json} =    Json    ${r}
91     LOG    ${json}
92     ${status_code} =    Status Code    ${r}
93     Should Be True    199 < ${status_code} < 299