Merge "Attempt to check CSIT Case: Event in DMaaP is not in JSON format"
[integration/csit.git] / tests / dcaegen2 / prh-testcases / resources / prh_library.robot
1 *** Settings ***
2 Library           RequestsLibrary
3 Library           PrhLibrary.py
4 Resource          ../../../common.robot
5
6 *** Keywords ***
7 Verify PNF ready sent
8     [Arguments]    ${test_case_directory}
9     ${pnf_entry}=    Get Data From File    ${test_case_directory}/aai-entry.json
10     ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
11     ${expected_pnf_ready_event}=    Get Data From File    ${test_case_directory}/expected-pnf-ready-event.json
12     Add PNF entry in AAI    ${pnf_entry}
13     Set VES event in DMaaP    ${ves_event}
14     Wait Until Keyword Succeeds    10x    3000ms    Check CBS ready
15     Wait Until Keyword Succeeds    30x    3000ms    Check recorded PNF_READY notification    ${expected_pnf_ready_event}
16
17 Verify PNF ready sent and logical link created
18     [Arguments]    ${test_case_directory}
19     ${expected_logical_link}=    Get Data From File    ${test_case_directory}/expected-logical-link.json
20     Verify PNF ready sent    ${test_case_directory}
21     Check recorded Logical Link    ${expected_logical_link}
22
23 Verify event with missing required field is logged
24     [Arguments]    ${test_case_directory}
25     ${invalid_ves_event}=    Get Data From File    ${test_case_directory}/invalid-ves-event.json
26     Set VES event in DMaaP    ${invalid_ves_event}
27     ${error_msg}=    Create event parsing error    ${invalid_ves_event}
28     Wait Until Keyword Succeeds    10x    3000ms    Check PRH log    ${error_msg}
29
30 Verify incorrect JSON event is logged
31     [Timeout]    60s
32     [Arguments]    ${test_case_directory}
33     ${invalid_ves_event}=    Get Data From File    ${test_case_directory}/invalid-ves-event.json
34     Set VES event in DMaaP    ${invalid_ves_event}
35     Wait Until Keyword Succeeds    10x    3000ms    Check PRH log    |Element is neither JSON Object or Array
36
37 Verify missing AAI record is logged
38     [Timeout]    100s
39     [Arguments]    ${test_case_directory}
40     ${incorrect_aai_entry}=    Get Data From File    ${test_case_directory}/incorrect-aai-entry.json
41     ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
42     Add PNF entry in AAI    ${incorrect_aai_entry}
43     Set VES event in DMaaP    ${ves_event}
44     Wait Until Keyword Succeeds    10x    3000ms    Check PRH log    |AAIProducerTask exception has been registered
45     Wait Until Keyword Succeeds    10x    3000ms    Check PRH log    |Chain of tasks have been aborted due to errors in PRH workflow
46
47 Verify AAI not responding is logged
48     [Timeout]    100s
49     [Arguments]    ${test_case_directory}
50     ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
51     Ensure Container Is Exited    aai_simulator
52     Set VES event in DMaaP    ${ves_event}
53     Wait Until Keyword Succeeds    10x    3000ms    Check PRH log    java.net.UnknownHostException: aai
54     Ensure Container Is Running   aai_simulator
55
56 Check CBS ready
57     ${resp}=    Get Request    ${consul_setup_session}    /v1/catalog/service/cbs
58     Should Be Equal As Strings    ${resp.status_code}    200
59     Log    CBS ${resp.content}
60
61 Check recorded PNF_READY notification
62     [Arguments]    ${expected_event_pnf_ready_in_dpaap}
63     ${resp}=    Get Request    ${dmaap_setup_session}    /setup/pnf_ready    headers=${suite_headers}
64     Should Be Equal As Strings    ${resp.status_code}    200
65     Should Be Equal As JSON    ${resp.content}    ${expected_event_pnf_ready_in_dpaap}
66
67 Check recorded Logical Link
68     [Arguments]    ${expected_logical_link_in_aai}
69     ${resp}=    Get Request    ${aai_setup_session}    /setup/created_logical_link    headers=${suite_headers}
70     Should Be Equal As Strings    ${resp.status_code}    200
71     Should Be Equal As JSON    ${resp.content}    ${expected_logical_link_in_aai}
72
73 Check PRH log
74     [Arguments]    ${log_entry}
75     ${found}=    Find log entry    ${log_entry}
76     Should Be True    ${found}
77
78 Create event parsing error
79     [Arguments]    ${ves_event}
80     ${notification}=    Create invalid notification    ${ves_event}
81     ${error_msg}=    Catenate    SEPARATOR= \\n    |Incorrect json, consumerDmaapModel can not be created:     ${notification}
82     [Return]    ${error_msg}
83
84 Add PNF entry in AAI
85     [Arguments]    ${pnf_entry}
86     ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
87     Log    AAI url ${AAI_SIMULATOR_SETUP_URL}
88     ${resp}=    Put Request    ${aai_setup_session}    /setup/add_pnf_entry    headers=${suite_headers}    data=${pnf_entry}
89     Should Be Equal As Strings    ${resp.status_code}    200
90
91 Set VES event in DMaaP
92     [Arguments]    ${ves_event}
93     ${resp}=    Put Request    ${dmaap_setup_session}    /setup/ves_event    headers=${suite_headers}    data=${ves_event}
94     Should Be Equal As Strings    ${resp.status_code}    200
95
96 Should Be Equal As JSON
97     [Arguments]    ${given}    ${expected}
98     Should Be True    ${given}==${expected}
99
100 Create sessions
101     Create Session    dmaap_setup_session    ${DMAAP_SIMULATOR_SETUP_URL}
102     Set Suite Variable    ${dmaap_setup_session}    dmaap_setup_session
103     Create Session    aai_setup_session    ${AAI_SIMULATOR_SETUP_URL}
104     Set Suite Variable    ${aai_setup_session}    aai_setup_session
105     Create Session    consul_setup_session    ${CONSUL_SETUP_URL}
106     Set Suite Variable    ${consul_setup_session}    consul_setup_session
107     Sleep    120s
108
109 Reset Simulators
110     Reset AAI simulator
111     Reset DMaaP simulator
112
113 Reset AAI simulator
114     ${resp}=    Post Request     ${aai_setup_session}    /reset
115     Should Be Equal As Strings    ${resp.status_code}    200
116
117 Reset DMaaP simulator
118     ${resp}=    Post Request     ${dmaap_setup_session}    /reset
119     Should Be Equal As Strings    ${resp.status_code}    200
120
121 Create headers
122     ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
123     Set Suite Variable    ${suite_headers}    ${headers}