Tidy new and updated Robot files
[integration/test.git] / csit / suites / sfc / SFC_Basic / 010__sfc_service_functions.robot
1 *** Settings ***
2 Documentation     Test suite for SFC Service Functions, Operates functions from Restconf APIs.
3 Suite Setup       Init Suite
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 *** Test Cases ***
13 Add Service Functions
14     [Documentation]    Add Service Functions from JSON file
15     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
16     ${body}    OperatingSystem.Get File    ${SERVICE_FUNCTIONS_FILE}
17     ${jsonbody}    To Json    ${body}
18     ${functions}    Get From Dictionary    ${jsonbody}    service-functions
19     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
20     Should Be Equal As Strings    ${resp.status_code}    200
21     ${result}    To JSON    ${resp.content}
22     ${function}    Get From Dictionary    ${result}    service-functions
23     Lists Should be Equal    ${function}    ${functions}
24
25 Delete All Service Functions
26     [Documentation]    Delete all Service Functions
27     ${body}    OperatingSystem.Get File    ${SERVICE_FUNCTIONS_FILE}
28     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
29     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
30     Should Be Equal As Strings    ${resp.status_code}    200
31     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
32     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
33     Should Be Equal As Strings    ${resp.status_code}    404
34
35 Get one Service Function
36     [Documentation]    Get one Service Function
37     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
38     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
39     ${elements}=    Create List    dpi-102-1    dpi
40     Check For Elements At URI    ${SERVICE_FUNCTIONS_URI}service-function/dpi-102-1    ${elements}
41
42 Get A Non-existing Service Function
43     [Documentation]    Get A Non-existing Service Function
44     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
45     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
46     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}service-function/non-existing-sf
47     Should Be Equal As Strings    ${resp.status_code}    404
48
49 Delete A Service Function
50     [Documentation]    Delete A Service Function
51     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
52     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
53     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}service-function/dpi-102-1
54     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
55     Should Be Equal As Strings    ${resp.status_code}    200
56     Should Not Contain    ${resp.content}    dpi-102-1
57
58 Delete A Non-existing Empty Service Function
59     [Documentation]    Delete A Non existing Service Function
60     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
61     Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
62     ${body}    OperatingSystem.Get File    ${SERVICE_FUNCTIONS_FILE}
63     ${jsonbody}    To Json    ${body}
64     ${functions}    Get From Dictionary    ${jsonbody}    service-functions
65     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}service-function/non-existing-sf
66     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
67     Should Be Equal As Strings    ${resp.status_code}    200
68     ${result}    To JSON    ${resp.content}
69     ${function}    Get From Dictionary    ${result}    service-functions
70     Lists Should be Equal    ${function}    ${functions}
71
72 Put one Service Function
73     [Documentation]    Put one Service Function
74     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
75     Add Elements To URI From File    ${SF_DPI102100_URI}    ${SF_DPI102100_FILE}
76     ${elements}=    Create List    dpi-102-100    dpi
77     Check For Elements At URI    ${SF_DPI102100_URI}    ${elements}
78     Check For Elements At URI    ${SERVICE_FUNCTIONS_URI}    ${elements}
79
80 Get Service Function DPL
81     [Documentation]    Get Service Function Data Plane Locator
82     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
83     Add Elements To URI From File    ${SF_DPI102100_URI}    ${SF_DPI102100_FILE}
84     ${elements}=    Create List    100    10100
85     Check For Elements At URI    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-100    ${elements}
86
87 Put Service Function DPL
88     [Documentation]    Put Service Function Data Plane Locator
89     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
90     Add Elements To URI From File    ${SF_DPI102100_URI}    ${SF_DPI102100_FILE}
91     Add Elements To URI From File    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-101    ${SF_DPL101_FILE}
92     ${elements}=    Create List    dpl-101    10101
93     Check For Elements At URI    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-101    ${elements}
94     Check For Elements At URI    ${SF_DPI102100_URI}    ${elements}
95
96 Put Service Function DPL to a Non-existing Service Function
97     [Documentation]    Put Service Function DPL to a Non-existing Service Function
98     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
99     Add Elements To URI From File    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-101    ${SF_DPL101_FILE}
100     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
101     Should Be Equal As Strings    ${resp.status_code}    200
102     Should Contain    ${resp.content}    dpi-102-100
103     ${elements}=    Create List    dpl-101    10101
104     Check For Elements At URI    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-101    ${elements}
105     Check For Elements At URI    ${SF_DPI102100_URI}    ${elements}
106
107 Delete Service Function DPL
108     [Documentation]    Delete Service Function Data Plane Locator
109     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
110     Add Elements To URI From File    ${SF_DPI102100_URI}    ${SF_DPI102100_FILE}
111     Remove All Elements At URI    ${SF_DPI102100_URI}sf-data-plane-locator/dpl-100
112     ${resp}    RequestsLibrary.Get Request    session    ${SF_DPI102100_URI}
113     Should Be Equal As Strings    ${resp.status_code}    200
114     Should Not Contain    ${resp.content}    dpl-100
115
116 Clean Datastore After Tests
117     [Documentation]    Clean All Service Functions In Datastore After Tests
118     Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
119
120 *** Keywords ***
121 Init Suite
122     [Documentation]    Initialize session and ODL version specific variables
123     Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
124     log    ${ODL_STREAM}
125     Run Keyword If    '${ODL_STREAM}' == 'stable-lithium'    Set Suite Variable    ${VERSION_DIR}    lithium
126     ...    ELSE    Set Suite Variable    ${VERSION_DIR}    master
127     Set Suite Variable    ${SERVICE_FUNCTIONS_URI}    /restconf/config/service-function:service-functions/
128     Set Suite Variable    ${SERVICE_FUNCTIONS_FILE}    ../../../variables/sfc/${VERSION_DIR}/service-functions.json
129     Set Suite Variable    ${SF_DPI102100_URI}    /restconf/config/service-function:service-functions/service-function/dpi-102-100/
130     Set Suite Variable    ${SF_DPI102100_FILE}    ../../../variables/sfc/${VERSION_DIR}/sf_dpi_102_100.json
131     Set Suite Variable    ${SF_DPL101_FILE}    ../../../variables/sfc/${VERSION_DIR}/sf_dpl_101.json