PRH -> BBS re-registration case
[integration/csit.git] / tests / dcaegen2 / prh-testcases / resources / prh_library.robot
1 *** Settings ***
2 Library           RequestsLibrary
3 Library           Collections
4 Library           PrhLibrary.py
5 Resource          ../../../common.robot
6
7 *** Keywords ***
8 Verify PNF ready sent
9     [Arguments]    ${test_case_directory}
10     ${pnf_entry}=    Get Data From File    ${test_case_directory}/aai-entry.json
11     ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
12     ${expected_pnf_ready_event}=    Get Data From File    ${test_case_directory}/expected-pnf-ready-event.json
13     Add PNF entry in AAI    ${pnf_entry}
14     Set VES event in DMaaP    ${ves_event}
15     Wait Until Keyword Succeeds    10x    3000ms    Check CBS ready
16     Wait Until Keyword Succeeds    10x    3000ms    Check recorded PNF_READY notification    ${expected_pnf_ready_event}
17
18 Verify PNF ready sent and logical link created
19     [Arguments]    ${test_case_directory}
20     ${expected_logical_link}=    Get Data From File    ${test_case_directory}/expected-logical-link.json
21     Verify PNF ready sent    ${test_case_directory}
22     Check recorded Logical Link    ${expected_logical_link}
23
24 Verify event with missing required field is logged
25     [Arguments]    ${test_case_directory}
26     ${invalid_ves_event}=    Get Data From File    ${test_case_directory}/invalid-ves-event.json
27     Set VES event in DMaaP    ${invalid_ves_event}
28     ${notification}=    Create invalid notification    ${invalid_ves_event}
29     ${error_msg}=    Set Variable    Incorrect json, consumerDmaapModel can not be created:
30     Wait Until Keyword Succeeds    10x    3000ms    Check PRH json log    ${error_msg}    ${notification}
31
32 Verify incorrect JSON event is logged
33     [Timeout]    60s
34     [Arguments]    ${test_case_directory}
35     ${invalid_ves_event}=    Get Data From File    ${test_case_directory}/invalid-ves-event.json
36     Set VES event in DMaaP    ${invalid_ves_event}
37     Check PRH log    |com.google.gson.JsonSyntaxException: Expected a com.google.gson.JsonArray
38
39 Verify missing AAI record is logged
40     [Timeout]    100s
41     [Arguments]    ${test_case_directory}
42     ${incorrect_aai_entry}=    Get Data From File    ${test_case_directory}/incorrect-aai-entry.json
43     ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
44     Add PNF entry in AAI    ${incorrect_aai_entry}
45     Set VES event in DMaaP    ${ves_event}
46     Check PRH log    Request failed for URL 'https://aai:3334/aai/v12/network/pnfs/pnf/NOK6061ZW8'. Response code: 404 Not Found
47
48 Verify AAI not responding is logged
49     [Timeout]    100s
50     [Arguments]    ${test_case_directory}
51     ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
52     Ensure Container Is Exited    aai_simulator
53     Set VES event in DMaaP    ${ves_event}
54     Check PRH log    connection timed out: aai    Host is unreachable: aai
55     Ensure Container Is Running   aai_simulator
56
57 Verify PNF re registration
58     [Timeout]    100s
59     [Arguments]    ${test_case_directory}
60     ${expected_logical_link}=    Get Data From File    ${test_case_directory}/expected-logical-link.json
61     Verify PNF ready sent    ${test_case_directory}
62     Check recorded Logical Link    ${expected_logical_link}
63
64 Check CBS ready
65     ${resp}=    Get Request    ${consul_setup_session}    /v1/catalog/services
66     Should Be Equal As Strings    ${resp.status_code}    200
67     Log    Service Catalog response: ${resp.content}
68     Dictionary Should Contain Key    ${resp.json()}    cbs    |Consul service catalog should contain CBS entry
69
70 Check recorded PNF_READY notification
71     [Arguments]    ${expected_event_pnf_ready_in_dpaap}
72     ${resp}=    Get Request    ${dmaap_setup_session}    /setup/pnf_ready    headers=${suite_headers}
73     Should Be Equal As Strings    ${resp.status_code}    200
74     Should Be Equal As JSON    ${resp.content}    ${expected_event_pnf_ready_in_dpaap}
75
76 Check recorded Logical Link
77     [Arguments]    ${expected_logical_link_in_aai}
78     ${resp}=    Get Request    ${aai_setup_session}    /setup/created_logical_link    headers=${suite_headers}
79     Should Be Equal As Strings    ${resp.status_code}    200
80     Should Be Equal As JSON    ${resp.content}    ${expected_logical_link_in_aai}
81
82 Check PRH log
83     [Arguments]    @{log_entries}
84     ${found}=    Find one of log entryies    ${log_entries}
85     Should Be True    ${found}
86
87 Check PRH json log
88     [Arguments]    ${prefix}    ${json}
89     ${found}=    Find log json    ${prefix}    ${json}
90     Should Be True    ${found}
91
92 Create event parsing error
93     [Arguments]    ${ves_event}
94     ${notification}=    Create invalid notification    ${ves_event}
95     ${error_msg}=    Catenate    SEPARATOR= \\n    |Incorrect json, consumerDmaapModel can not be created:     ${notification}
96     [Return]    ${error_msg}
97
98 Add PNF entry in AAI
99     [Arguments]    ${pnf_entry}
100     ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
101     Log    AAI url ${AAI_SIMULATOR_SETUP_URL}
102     ${resp}=    Put Request    ${aai_setup_session}    /setup/add_pnf_entry    headers=${suite_headers}    data=${pnf_entry}
103     Should Be Equal As Strings    ${resp.status_code}    200
104
105 Set VES event in DMaaP
106     [Arguments]    ${ves_event}
107     ${resp}=    Put Request    ${dmaap_setup_session}    /setup/ves_event    headers=${suite_headers}    data=${ves_event}
108     Should Be Equal As Strings    ${resp.status_code}    200
109
110 Should Be Equal As JSON
111     [Arguments]    ${actual}    ${expected}
112     Log    EXPECTED: ${expected}
113     Log    ACTUAL: ${actual}
114     ${expected_json}=    Evaluate    json.loads("""${expected}""")    json
115     ${actual_json}=    Evaluate    json.loads("""${actual}""")    json
116     Should Be Equal    ${actual_json}    ${expected_json}
117
118 Create sessions
119     Create Session    dmaap_setup_session    ${DMAAP_SIMULATOR_SETUP_URL}
120     Set Suite Variable    ${dmaap_setup_session}    dmaap_setup_session
121     Create Session    aai_setup_session    ${AAI_SIMULATOR_SETUP_URL}
122     Set Suite Variable    ${aai_setup_session}    aai_setup_session
123     Create Session    consul_setup_session    ${CONSUL_SETUP_URL}
124     Set Suite Variable    ${consul_setup_session}    consul_setup_session
125
126 Reset Simulators
127     Reset AAI simulator
128     Reset DMaaP simulator
129
130 Reset AAI simulator
131     ${resp}=    Post Request     ${aai_setup_session}    /reset
132     Should Be Equal As Strings    ${resp.status_code}    200
133
134 Reset DMaaP simulator
135     ${resp}=    Post Request     ${dmaap_setup_session}    /reset
136     Should Be Equal As Strings    ${resp.status_code}    200
137
138 Create headers
139     ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
140     Set Suite Variable    ${suite_headers}    ${headers}