Merge "Refactor policy/api csit tests"
[policy/api.git] / csit / tests / api-test.robot
1 *** Settings ***
2 Library     Collections
3 Library     RequestsLibrary
4 Library     OperatingSystem
5 Library     json
6
7 *** Test Cases ***
8
9 Healthcheck
10      [Documentation]  Verify policy api health check
11      ${resp}=  PeformGetRequest  /policy/api/v1/healthcheck  200
12      Should Be Equal As Strings  ${resp.json()['code']}  200
13
14 Statistics
15      [Documentation]  Verify policy api statistics
16      ${resp}=  PeformGetRequest  /policy/api/v1/statistics  200
17      Should Be Equal As Strings  ${resp.json()['code']}  200
18
19 RetrievePolicyTypes
20      [Documentation]  Retrieve all policy types
21      FetchPolicyTypes  /policy/api/v1/policytypes  37
22
23 CreateTCAPolicyTypeV1
24      [Documentation]  Create an existing policy type with modification and keeping the same version should result in error.
25      CreatePolicyType  /policy/api/v1/policytypes  406  onap.policy.monitoring.tcagen2.v1.json  null  null
26
27 CreateTCAPolicyTypeV2
28      [Documentation]  Create a policy type named 'onap.policies.monitoring.tcagen2' and version '2.0.0'
29      CreatePolicyType  /policy/api/v1/policytypes  200  onap.policy.monitoring.tcagen2.v2.json  onap.policies.monitoring.tcagen2  2.0.0
30
31 RetrieveMonitoringPolicyTypes
32      [Documentation]  Retrieve all monitoring related policy types
33      FetchPolicyTypes  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2  2
34
35 CreateNewMonitoringPolicyV1
36      [Documentation]  Create a policy named 'onap.restart.tca' and version '1.0.0' using specific api
37      CreatePolicy  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies  200  vCPE.policy.monitoring.input.tosca.json  onap.restart.tca  1.0.0
38
39 CreateNewMonitoringPolicyV1Again
40      [Documentation]  Create an existing policy with modification and keeping the same version should result in error.
41      CreatePolicy  /policy/api/v1/policies  406  vCPE.policy.monitoring.input.tosca.v1_2.json  null  null
42
43 CreateNewMonitoringPolicyV2
44      [Documentation]  Create a policy named 'onap.restart.tca' and version '2.0.0' using generic api
45      CreatePolicy  /policy/api/v1/policies  200  vCPE.policy.monitoring.input.tosca.v2.json  onap.restart.tca  2.0.0
46
47 RetrievePoliciesOfType
48      [Documentation]  Retrieve all policies belonging to a specific Policy Type
49      FetchPolicies  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies  2
50
51 RetrieveAllPolicies
52      [Documentation]  Retrieve all policies
53      FetchPolicies  /policy/api/v1/policies  3
54
55 RetrieveSpecificPolicy
56      [Documentation]    Retrieve a policy named 'onap.restart.tca' and version '1.0.0' using generic api
57      FetchPolicy  /policy/api/v1/policies/onap.restart.tca/versions/1.0.0  onap.restart.tca
58
59 DeleteSpecificPolicy
60      [Documentation]  Delete a policy named 'onap.restart.tca' and version '1.0.0' using generic api
61      PeformDeleteRequest  /policy/api/v1/policies/onap.restart.tca/versions/1.0.0
62
63 DeleteSpecificPolicyV2
64      [Documentation]  Delete a policy named 'onap.restart.tca' and version '2.0.0' using specific api
65      PeformDeleteRequest  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies/onap.restart.tca/versions/2.0.0
66
67 DeleteSpecificPolicyTypeV1
68      [Documentation]  Delete a policy type named 'onap.policies.monitoring.tcagen2' and version '1.0.0'
69      PeformDeleteRequest  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0
70
71 DeleteSpecificPolicyTypeV2
72      [Documentation]  Delete a policy type named 'onap.policies.monitoring.tcagen2' and version '2.0.0'
73      PeformDeleteRequest  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/2.0.0
74      
75 *** Keywords ***
76
77 CreatePolicyType
78      [Arguments]  ${url}  ${expectedstatus}  ${jsonfile}  ${policytypename}  ${policytypeversion}
79      [Documentation]  Create the specific policy type
80      ${resp}=  PerformCreateRequest  ${url}  ${expectedstatus}  ${jsonfile}  ${CURDIR}/data
81      Run Keyword If  ${expectedstatus}==200  List Should Contain Value  ${resp.json()['policy_types']}  ${policytypename}
82      Run Keyword If  ${expectedstatus}==200  Should Be Equal As Strings  ${resp.json()['policy_types']['${policytypename}']['version']}  ${policytypeversion}
83
84 FetchPolicyTypes
85      [Arguments]  ${url}  ${expectedLength}
86      [Documentation]  Fetch all policy types
87      ${resp}=  PeformGetRequest  ${url}  200
88      Length Should Be  ${resp.json()['policy_types']}  ${expectedLength}
89
90 CreatePolicy
91      [Arguments]  ${url}  ${expectedstatus}  ${jsonfile}  ${policyname}  ${policyversion}
92      [Documentation]  Create the specific policy
93      ${resp}=  PerformCreateRequest  ${url}  ${expectedstatus}  ${jsonfile}  ${DATA}
94      Run Keyword If  ${expectedstatus}==200  Dictionary Should Contain Key  ${resp.json()['topology_template']['policies'][0]}  ${policyname}
95      Run Keyword If  ${expectedstatus}==200  Should Be Equal As Strings  ${resp.json()['topology_template']['policies'][0]['${policyname}']['version']}  ${policyversion}
96
97 FetchPolicy
98      [Arguments]  ${url}  ${keyword}
99      [Documentation]  Fetch the specific policy
100      ${resp}=  PeformGetRequest  ${url}  200
101      Dictionary Should Contain Key  ${resp.json()['topology_template']['policies'][0]}  ${keyword}
102
103 FetchPolicies
104      [Arguments]  ${url}  ${expectedLength}
105      [Documentation]  Fetch all policies
106      ${resp}=  PeformGetRequest  ${url}  200
107      Length Should Be  ${resp.json()['topology_template']['policies']}  ${expectedLength}
108
109 PerformCreateRequest
110      [Arguments]  ${url}  ${expectedstatus}  ${jsonfile}  ${filepath}
111      ${auth}=  Create List  healthcheck  zb!XztG34
112      ${postjson}=  Get file  ${filepath}/${jsonfile}
113      Log  Creating session https://${POLICY_API_IP}:6969
114      ${session}=  Create Session  policy  https://${POLICY_API_IP}:6969  auth=${auth}
115      ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
116      ${resp}=  POST On Session  policy  ${url}  data=${postjson}  headers=${headers}  expected_status=${expectedstatus}
117      Log  Received response from policy ${resp.text}
118      [return]  ${resp}
119
120 PeformGetRequest
121      [Arguments]  ${url}  ${expectedstatus}
122      ${auth}=  Create List  healthcheck  zb!XztG34
123      Log  Creating session https://${POLICY_API_IP}:6969
124      ${session}=  Create Session  policy  https://${POLICY_API_IP}:6969  auth=${auth}
125      ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
126      ${resp}=  GET On Session  policy  ${url}  headers=${headers}  expected_status=${expectedstatus}
127      Log  Received response from policy ${resp.text}
128      [return]  ${resp}
129
130 PeformDeleteRequest
131      [Arguments]  ${url}
132      ${auth}=  Create List  healthcheck  zb!XztG34
133      Log  Creating session https://${POLICY_API_IP}:6969
134      ${session}=  Create Session  policy  https://${POLICY_API_IP}:6969  auth=${auth}
135      ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
136      ${resp}=  DELETE On Session  policy  ${url}  headers=${headers}  expected_status=200
137      Log  Received response from policy ${resp.text}
138      ${resp}=  DELETE On Session  policy  ${url}  headers=${headers}  expected_status=404