aboutsummaryrefslogtreecommitdiffstats
path: root/tests/vfc/nfvo-catalog/Subscriptions.robot
blob: a1d002218b03f2eb433b4de7ee41b7d64a44a856 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
*** Settings ***
Resource    ../../common.robot
Library     Collections
Library     RequestsLibrary
Library     OperatingSystem
Library     json
Library     HttpLibrary.HTTP

*** Variables ***
@{return_ok_list}=         200  201  202  204
${catalog_port}            8806
${subscriptions_url}         /api/vnfpkgm/v1/subscriptions

#json files
${vnf_subscription_json}    ${SCRIPTS}/../tests/vfc/nfvo-catalog/jsons/vnf_subscription.json

#global variables
${subscriptionId}

*** Test Cases ***
Create new VNF Package subscription
    Log    Create new VNF Package subscription
    [Documentation]    The objective is to test the creation of a new VNF package subscription
    ${json_value}=     json_from_file      ${vnf_subscription_json}
    ${json_string}=     string_from_json   ${json_value}
    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
    Create Session    web_session    http://${CATALOG_IP}:${catalog_port}    headers=${headers}
    Set Request Body    ${json_string}
    ${resp}=    Post Request    web_session     ${subscriptions_url}    ${json_string}
    ${responese_code}=     Convert To String      ${resp.status_code}
    List Should Contain Value    ${return_ok_list}   ${responese_code}
    ${response_json}    json.loads    ${resp.content}
    ${callback_uri}=    Convert To String      ${response_json['callbackUri']}
    Should Be Equal    ${callback_uri}    http://127.0.0.1:${catalog_port}/api/catalog/v1/callback_sample
    ${subscriptionId}=    Convert To String      ${response_json['id']}
    Set Global Variable     ${subscriptionId}

Create duplicated VNF Package subscription
    Log    Create duplicated VNF Package subscription
    [Documentation]    The objective is to test the attempt of a creation of a duplicated VNF package subscription
    ${json_value}=     json_from_file      ${vnf_subscription_json}
    ${json_string}=     string_from_json   ${json_value}
    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
    Create Session    web_session    http://${CATALOG_IP}:${catalog_port}    headers=${headers}
    Set Request Body    ${json_string}
    ${resp}=    Post Request    web_session     ${subscriptions_url}    ${json_string}
    Should Be Equal As Strings    303    ${resp.status_code}

GET All VNF Package Subscriptions
    Log    GET All VNF Package Subscriptions
    [Documentation]    The objective is to test the retrieval of all VNF package subscriptions
    ${headers}            Create Dictionary    Content-Type=application/json    Accept=application/json
    Create Session        web_session          http://${CATALOG_IP}:${catalog_port}      headers=${headers}
    ${resp}=              Get Request          web_session     ${subscriptions_url}
    Should Be Equal As Strings    200    ${resp.status_code}

PUT VNF Package Subscriptions - Method not implemented
    Log    PUT VNF Package Subscriptions - Method not implemented
    [Documentation]    The objective is to test that PUT method is not allowed to modify VNF package subscriptions
    ${headers}            Create Dictionary    Content-Type=application/json    Accept=application/json
    Create Session        web_session          http://${CATALOG_IP}:${catalog_port}      headers=${headers}
    ${resp}=              Put Request          web_session     ${subscriptions_url}
    Should Be Equal As Strings    405    ${resp.status_code}

PATCH VNF Package Subscriptions - Method not implemented
    Log    PATCH VNF Package Subscriptions - Method not implemented
    [Documentation]    The objective is to test that PATCH method is not allowed to update VNF package subscriptions
    ${headers}            Create Dictionary    Content-Type=application/json    Accept=application/json
    Create Session        web_session          http://${CATALOG_IP}:${catalog_port}      headers=${headers}
    ${resp}=              Patch Request          web_session     ${subscriptions_url}
    Should Be Equal As Strings    405    ${resp.status_code}

DELETE VNF Package Subscriptions - Method not implemented
    Log    DELETE VNF Package Subscriptions - Method not implemented
    [Documentation]    The objective is to test that DELETE method is not allowed to delete VNF package subscriptions
    ${headers}            Create Dictionary    Content-Type=application/json    Accept=application/json
    Create Session        web_session          http://${CATALOG_IP}:${catalog_port}      headers=${headers}
    ${resp}=              Delete Request          web_session     ${subscriptions_url}
    Should Be Equal As Strings    405    ${resp.status_code}

DELETE VNF Package Subscription
    Log   DELETE VNF Package Subscription
    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
    Create Session    web_session    http://${CATALOG_IP}:${catalog_port}    headers=${headers}
    ${resp}=    Delete Request    web_session     ${subscriptions_url}/${subscriptionId}
    ${responese_code}=     Convert To String      ${resp.status_code}
    List Should Contain Value    ${return_ok_list}   ${responese_code}