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