bf489fc99caaf341bdcb4174c146c5385849a868
[integration/test.git] / csit / suites / sfc / SFC_Basic / 100__sfc_service_forwarders_logical.robot
1 *** Settings ***
2 Documentation     Test suite for SFC Service Function Forwarders, Operates SFFs from Restconf APIs. Logical SFF
3 Suite Setup       Init Suite
4 Suite Teardown    Delete All Sessions
5 Test Setup        Remove All Elements If Exist    ${SERVICE_FORWARDERS_URI}
6 Test Teardown     Remove All Elements If Exist    ${SERVICE_FORWARDERS_URI}
7 Library           SSHLibrary
8 Library           Collections
9 Library           OperatingSystem
10 Library           RequestsLibrary
11 Resource          ../../../variables/sfc/Variables.robot
12 Resource          ../../../libraries/Utils.robot
13 Resource          ../../../libraries/TemplatedRequests.robot
14
15 *** Variables ***
16 ${VERSION_DIR}    master
17 ${SERVICE_FORWARDERS_FILE}    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-forwarders-logicallsff.json
18 ${SFF_SFFLOG_URI}    ${SERVICE_FORWARDER_URI}sfflogical1/
19 ${SFF_SFFLOG_FILE}    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-forwarder-logicallsff1.json
20
21 *** Test Cases ***
22 Put Service Function Forwarders
23     [Documentation]    Add Service Function Forwarders from JSON file. Logical SFF
24     [Tags]    include
25     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
26     ${body}    OperatingSystem.Get File    ${SERVICE_FORWARDERS_FILE}
27     ${jsonbody}    To Json    ${body}
28     ${forwarders}    Get From Dictionary    ${jsonbody}    service-function-forwarders
29     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDERS_URI}
30     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
31     ${result}    To JSON    ${resp.content}
32     ${forwarder}    Get From Dictionary    ${result}    service-function-forwarders
33     Lists Should be Equal    ${forwarder}    ${forwarders}
34
35 Delete All Service Function Forwarders
36     [Documentation]    Delete all Service Function Forwarders. Logical SFF
37     [Tags]    include
38     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
39     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDERS_URI}
40     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
41     Remove All Elements At URI    ${SERVICE_FORWARDERS_URI}
42     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDERS_URI}
43     Should Be Equal As Strings    ${resp.status_code}    404
44
45 Get one Service Function Forwarder
46     [Documentation]    Get one Service Function Forwarder. Logical SFF
47     [Tags]    include
48     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
49     ${elements}=    Create List    sfflogical1
50     Check For Elements At URI    ${SERVICE_FORWARDER_URI}sfflogical1    ${elements}
51
52 Delete A Service Function Forwarder
53     [Documentation]    Delete A Service Function Forwarder. Logical SFF
54     [Tags]    include
55     Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
56     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDER_URI}sfflogical1
57     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
58     Remove All Elements At URI    ${SERVICE_FORWARDER_URI}sfflogical1
59     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDER_URI}sfflogical1
60     Should Be Equal As Strings    ${resp.status_code}    404
61     ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FORWARDERS_URI}
62     Should Be Equal As Strings    ${resp.status_code}    200
63     Should Not Contain    ${resp.content}    SF1
64
65 Put one Service Function Forwarder
66     [Documentation]    Put one Service Function Forwarder. Logical SFF
67     [Tags]    include
68     Add Elements To URI From File    ${SFF_SFFLOG_URI}    ${SFF_SFFLOG_FILE}
69     ${resp}    RequestsLibrary.Get Request    session    ${SFF_SFFLOG_URI}
70     Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
71     ${elements}=    Create List    sfflogical1
72     Check For Elements At URI    ${SFF_SFFLOG_URI}    ${elements}
73     Check For Elements At URI    ${SERVICE_FORWARDERS_URI}    ${elements}
74
75 *** keywords ***
76 Init Suite
77     [Documentation]    Initialize session and ODL version specific variable. Logical SFFs
78     Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
79     log    ${ODL_STREAM}