6376b82baff5c5ea1fe58eb4f9dd7d8f101579fa
[integration/test.git] / csit / suites / groupbasedpolicy / GBP_Basic / 030_gbp_tunnel.robot
1 *** Settings ***
2 Documentation       Test suite for GBP Tunnels, Operates functions from Restconf APIs.
3
4 Library             SSHLibrary
5 Library             Collections
6 Library             OperatingSystem
7 Library             RequestsLibrary
8 Variables           ../../../variables/Variables.py
9 Resource            ../../../libraries/Utils.robot
10
11 Suite Setup         Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
12 Suite Teardown      Delete All Sessions
13
14
15 *** Variables ***
16 ${GBP_TUNNELS_FILE}     ../../../variables/gbp/tunnels.json
17 ${GBP_TUNNEL_ID}        openflow:1
18 ${GBP_TUNNEL1_URL}      /restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/${GBP_TUNNEL_ID}
19 ${GBP_TUNNEL1_FILE}     ../../../variables/gbp/tunnel1.json
20
21
22 *** Test Cases ***
23 Add Tunnels
24     [Documentation]    Add Tunnels from JSON file
25     Add Elements To URI From File    ${GBP_TUNNELS_API}    ${GBP_TUNNELS_FILE}
26     ${body}    OperatingSystem.Get File    ${GBP_TUNNELS_FILE}
27     ${jsonbody}    To Json    ${body}
28     ${resp}    RequestsLibrary.Get Request    session    ${GBP_TUNNELS_API}
29     Should Be Equal As Strings    ${resp.status_code}    200
30     ${result}    To JSON    ${resp.content}
31     Lists Should be Equal    ${jsonbody}    ${result}
32
33 Delete All Tunnels
34     [Documentation]    Delete all Tunnels
35     Add Elements To URI From File    ${GBP_TUNNELS_API}    ${GBP_TUNNELS_FILE}
36     ${body}    OperatingSystem.Get File    ${GBP_TUNNELS_FILE}
37     ${jsonbody}    To Json    ${body}
38     ${resp}    RequestsLibrary.Get Request    session    ${GBP_TUNNELS_API}
39     Should Be Equal As Strings    ${resp.status_code}    200
40     Remove All Elements At URI    ${GBP_TUNNELS_API}
41     ${resp}    RequestsLibrary.Get Request    session    ${GBP_TUNNELS_API}
42     Should Be Equal As Strings    ${resp.status_code}    404
43
44 Add one Tunnel
45     [Documentation]    Add one Tunnel from JSON file
46     Add Elements To URI From File    ${GBP_TUNNEL1_URL}    ${GBP_TUNNEL1_FILE}
47     ${body}    OperatingSystem.Get File    ${GBP_TUNNEL1_FILE}
48     ${jsonbody}    To Json    ${body}
49     ${resp}    RequestsLibrary.Get Request    session    ${GBP_TUNNEL1_URL}
50     Should Be Equal As Strings    ${resp.status_code}    200
51     ${result}    To JSON    ${resp.content}
52     Lists Should be Equal    ${result}    ${jsonbody}
53
54 Get A Non-existing Tunnel
55     [Documentation]    Get A Non-existing Tunnel
56     Remove All Elements At URI    ${GBP_TUNNELS_API}
57     ${resp}    RequestsLibrary.Get Request    session    ${GBP_TUNNEL1_URL}
58     Should Be Equal As Strings    ${resp.status_code}    404
59
60 Delete one Tunnel
61     [Documentation]    Delete one Tunnel
62     Remove All Elements At URI    ${GBP_TUNNELS_API}
63     Add Elements To URI From File    ${GBP_TUNNEL1_URL}    ${GBP_TUNNEL1_FILE}
64     Remove All Elements At URI    ${GBP_TUNNEL1_URL}
65     ${resp}    RequestsLibrary.Get Request    session    ${GBP_TUNNELS_API}
66     Should Be Equal As Strings    ${resp.status_code}    200
67     Should Not Contain    ${resp.content}    ${GBP_TUNNEL_ID}
68
69 Clean Datastore After Tests
70     [Documentation]    Clean All Tunnels In Datastore After Tests
71     Remove All Elements At URI    ${GBP_TUNNELS_API}