2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (C) 2019 Samsung
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.policy.pdp.rest.api.test;
25 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
26 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
27 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
28 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
29 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
30 import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup;
31 import com.att.research.xacml.util.XACMLProperties;
32 import java.io.IOException;
33 import java.lang.reflect.InvocationTargetException;
34 import java.lang.reflect.Method;
35 import java.util.Date;
36 import java.util.HashMap;
38 import java.util.UUID;
39 import org.junit.Before;
40 import org.junit.Test;
41 import org.junit.runner.RunWith;
42 import org.onap.policy.api.AttributeType;
43 import org.onap.policy.api.ConfigNameRequest;
44 import org.onap.policy.api.ConfigRequestParameters;
45 import org.onap.policy.api.DecisionRequestParameters;
46 import org.onap.policy.api.DeletePolicyCondition;
47 import org.onap.policy.api.DeletePolicyParameters;
48 import org.onap.policy.api.DictionaryParameters;
49 import org.onap.policy.api.DictionaryType;
50 import org.onap.policy.api.EventRequestParameters;
51 import org.onap.policy.api.PolicyClass;
52 import org.onap.policy.api.PolicyConfigType;
53 import org.onap.policy.api.PolicyParameters;
54 import org.onap.policy.api.PolicyType;
55 import org.onap.policy.api.PushPolicyParameters;
56 import org.onap.policy.pdp.rest.XACMLPdpServlet;
57 import org.onap.policy.pdp.rest.api.models.ConfigFirewallPolicyAPIRequest;
58 import org.onap.policy.pdp.rest.api.models.ConfigPolicyAPIRequest;
59 import org.onap.policy.pdp.rest.api.services.CreateUpdatePolicyServiceImpl;
60 import org.onap.policy.pdp.rest.api.services.NotificationService;
61 import org.onap.policy.pdp.rest.config.PDPRestConfig;
62 import org.onap.policy.utils.PolicyUtils;
63 import org.springframework.beans.factory.annotation.Autowired;
64 import org.springframework.http.HttpHeaders;
65 import org.springframework.http.MediaType;
66 import org.springframework.test.context.ContextConfiguration;
67 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
68 import org.springframework.test.context.web.WebAppConfiguration;
69 import org.springframework.test.web.servlet.MockMvc;
70 import org.springframework.web.context.WebApplicationContext;
72 @RunWith(SpringJUnit4ClassRunner.class)
73 @ContextConfiguration(classes = {PDPRestConfig.class})
75 public class PolicyEngineServicesTest {
76 private static final String CLIENTAUTHHEADER = "ClientAuth";
77 private static final String UUIDHEADER = "X-ECOMP-RequestID";
78 // This value is as per test resource code. Don't change this.
79 private static final String CLIENTAUTHVALUE = "Basic cHl0aG9uOnRlc3Q=";
80 private static final String ERRORCLIENTVALUE = "Basic dGVzdDp0ZXN0MTIz";
82 private MockMvc mockMvc;
83 private HttpHeaders headers;
86 private WebApplicationContext webApplicationContext;
89 public void setup() throws IOException {
90 headers = new HttpHeaders();
91 headers.add(CLIENTAUTHHEADER, CLIENTAUTHVALUE);
92 XACMLProperties.reloadProperties();
93 System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "src/test/resources/pass.xacml.pdp.properties");
94 XACMLProperties.getProperties();
95 this.mockMvc = webAppContextSetup(webApplicationContext).build();
99 public void getConfigAPIFailureTest() throws Exception {
100 ConfigRequestParameters pep = new ConfigRequestParameters();
101 pep.setPolicyName(".*");
103 post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON))
104 .andExpect(status().is(400));
105 // Authorization tests.
106 mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep))
107 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, ""))
108 .andExpect(status().isUnauthorized());
109 mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep))
110 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
111 .andExpect(status().isUnauthorized());
112 mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep))
113 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, ERRORCLIENTVALUE))
114 .andExpect(status().isUnauthorized());
115 // Set wrong request.
116 pep.setPolicyName(null);
117 pep.setConfigName("test");
118 mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
119 .header(UUIDHEADER, "123").contentType(MediaType.APPLICATION_JSON)).andExpect(status().isBadRequest());
123 public void getConfigServiceTest() throws Exception {
124 ConfigRequestParameters pep = new ConfigRequestParameters();
125 pep.setPolicyName(".*");
126 mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
127 .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
128 .andExpect(status().isOk());
129 // Without policyName and using onapName and other fields.
130 pep.setPolicyName(null);
131 pep.setOnapName("test");
132 pep.setConfigName("test");
133 mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
134 .contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
135 // with config attributes.
136 Map<String, String> configAttributes = new HashMap<>();
137 configAttributes.put("test", "test");
138 pep.setConfigAttributes(configAttributes);
139 pep.makeUnique(true);
140 mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
141 .contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
145 public void getConfigByPolicyNameTest() throws Exception {
146 ConfigNameRequest pep = new ConfigNameRequest();
147 pep.setPolicyName(".*");
149 post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON))
150 .andExpect(status().is(400));
151 // Authorization tests.
152 mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep))
153 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, ""))
154 .andExpect(status().isUnauthorized());
155 mockMvc.perform(post("/getConfigByPolicyName").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
156 .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
157 .andExpect(status().isOk());
161 public void listConfigTest() throws Exception {
162 ConfigRequestParameters pep = new ConfigRequestParameters();
163 pep.setPolicyName(".*");
164 mockMvc.perform(post("/listConfig").content(PolicyUtils.objectToJsonString(pep))
165 .contentType(MediaType.APPLICATION_JSON)).andExpect(status().is(400));
166 // Authorization tests.
167 mockMvc.perform(post("/listConfig").content(PolicyUtils.objectToJsonString(pep))
168 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, ""))
169 .andExpect(status().isUnauthorized());
170 mockMvc.perform(post("/listConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
171 .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
172 .andExpect(status().isOk());
176 public void listPolicyTest() throws Exception {
177 ConfigNameRequest pep = new ConfigNameRequest();
178 pep.setPolicyName(".*");
179 mockMvc.perform(post("/listPolicy").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
180 .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
181 .andExpect(status().isOk());
185 public void getMetricsTest() throws Exception {
187 mockMvc.perform(get("/getMetrics")).andExpect(status().isBadRequest());
188 mockMvc.perform(get("/getMetrics").header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
190 mockMvc.perform(get("/getMetrics").headers(headers).header(UUIDHEADER, "123"))
191 .andExpect(status().isBadRequest());
192 mockMvc.perform(get("/getMetrics").headers(headers).header(UUIDHEADER, UUID.randomUUID()))
193 .andExpect(status().isBadRequest());
194 mockMvc.perform(get("/getMetrics").headers(headers)).andExpect(status().isBadRequest());
198 public void getNotificationAuthFailureTest() throws Exception {
199 mockMvc.perform(post("/getNotification").header(CLIENTAUTHHEADER, "").content("test"))
200 .andExpect(status().isUnauthorized());
201 mockMvc.perform(post("/getNotification").header(CLIENTAUTHHEADER, "Basic test123").content("test"))
202 .andExpect(status().isUnauthorized());
203 mockMvc.perform(post("/getNotification").header(CLIENTAUTHHEADER, ERRORCLIENTVALUE).content(" "))
204 .andExpect(status().isUnauthorized());
208 public void getNotificationTopicFailureTest() throws Exception {
209 mockMvc.perform(post("/getNotification")).andExpect(status().isBadRequest());
210 mockMvc.perform(post("/getNotification").headers(headers).content("")).andExpect(status().isBadRequest());
214 public void getNotificationTopicValidFailTest() throws Exception {
216 mockMvc.perform(post("/getNotification").headers(headers).content(" ")).andExpect(status().isBadRequest());
217 mockMvc.perform(post("/stopNotification").headers(headers).content(" ")).andExpect(status().isBadRequest());
218 mockMvc.perform(post("/sendHeartbeat").headers(headers).content(" ")).andExpect(status().isBadRequest());
222 public void getNotificationTopicValidPassTest() throws Exception {
223 // Values can be polluted due to failure tests and need to be reloaded.
224 XACMLProperties.reloadProperties();
225 System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME,
226 "src/test/resources/notification.xacml.pdp.properties");
227 XACMLProperties.getProperties();
228 NotificationService.reloadProps();
230 mockMvc.perform(post("/getNotification").headers(headers).header(UUIDHEADER, "123").content("test"))
231 .andExpect(status().isOk());
232 // Try to add same topic should fail.
233 mockMvc.perform(post("/getNotification").headers(headers).header(UUIDHEADER, UUID.randomUUID()).content("test"))
234 .andExpect(status().isBadRequest());
236 mockMvc.perform(post("/sendHeartbeat").headers(headers).content("test")).andExpect(status().isOk());
237 // remove the added Topic.
238 mockMvc.perform(post("/stopNotification").headers(headers).content("test")).andExpect(status().isOk());
239 // try to remove again should fail.
240 mockMvc.perform(post("/sendHeartbeat").headers(headers).content("test")).andExpect(status().isBadRequest());
244 public void sendEventTest() throws Exception {
245 EventRequestParameters pep = new EventRequestParameters();
246 Map<String, String> eventAttributes = new HashMap<>();
247 eventAttributes.put("TEST", "test");
248 pep.setEventAttributes(eventAttributes);
250 mockMvc.perform(post("/sendEvent")).andExpect(status().isBadRequest());
251 mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep))
252 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
253 .andExpect(status().isUnauthorized());
255 mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep))
256 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "123"))
257 .andExpect(status().isOk());
258 pep.setEventAttributes(null);
259 mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep))
260 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
261 .andExpect(status().isBadRequest());
262 pep.setEventAttributes(eventAttributes);
263 mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep))
264 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isOk());
265 pep.setEventAttributes(eventAttributes);
266 pep.setRequestID(UUID.randomUUID());
267 mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep))
268 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isOk());
272 public void getDecisionTest() throws Exception {
273 DecisionRequestParameters pep = new DecisionRequestParameters();
274 Map<String, String> eventAttributes = new HashMap<>();
275 eventAttributes.put("TEST", "test");
276 pep.setOnapName("te123");
277 pep.setDecisionAttributes(eventAttributes);
279 mockMvc.perform(post("/getDecision")).andExpect(status().isBadRequest());
280 mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep))
281 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
282 .andExpect(status().isUnauthorized());
284 mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep))
285 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "123"))
286 .andExpect(status().isOk());
287 pep.setDecisionAttributes(null);
288 pep.setOnapName(null);
289 mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep))
290 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
291 .andExpect(status().isBadRequest());
292 pep.setOnapName("testing");
293 mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep))
294 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
295 pep.setDecisionAttributes(eventAttributes);
296 pep.setRequestID(UUID.randomUUID());
297 mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep))
298 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isOk());
302 public void pushPolicyTest() throws Exception {
303 PushPolicyParameters pep = new PushPolicyParameters();
305 mockMvc.perform(put("/pushPolicy")).andExpect(status().isBadRequest());
306 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
307 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
308 .andExpect(status().isUnauthorized());
310 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
311 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
312 .andExpect(status().isBadRequest());
313 pep.setPolicyName("com.");
314 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
315 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
316 pep.setPolicyName("com.test");
317 pep.setPolicyType("");
318 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
319 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
320 pep.setPolicyName("scopeless");
321 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
322 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
323 pep.setPolicyName("testing.test");
324 pep.setPolicyType("wrong");
325 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
326 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
327 pep.setPolicyType("BRMS_PARAM");
328 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
329 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
330 pep.setPolicyType("BRMS_RAW");
331 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
332 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
333 pep.setPolicyType("MicroService");
334 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
335 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
336 pep.setPolicyType("ClosedLoop_PM");
337 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
338 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
339 pep.setPolicyType("ClosedLoop_Fault");
340 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
341 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
342 pep.setPolicyType("Base");
343 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
344 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
345 pep.setPolicyType("Decision");
346 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
347 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
348 pep.setPolicyType("Action");
349 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
350 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
351 pep.setPolicyType("Firewall");
352 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
353 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
354 pep.setPolicyType("Optimization");
355 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
356 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
357 pep.setPdpGroup("default");
358 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
359 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "123"))
360 .andExpect(status().isBadRequest());
361 pep.setRequestID(UUID.randomUUID());
362 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
363 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
364 pep.setPolicyType("Base,Base");
365 pep.setPolicyName("com.test1,com.test2");
366 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
367 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
368 pep.setPolicyType("Base,Base, ");
369 pep.setPolicyName("com.test1,com.test2,com.test3");
370 mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep))
371 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
375 public void deletePolicyTest() throws Exception {
376 DeletePolicyParameters pep = new DeletePolicyParameters();
378 mockMvc.perform(delete("/deletePolicy")).andExpect(status().isBadRequest());
379 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
380 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
381 .andExpect(status().isUnauthorized());
383 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
384 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
385 .andExpect(status().isBadRequest());
387 pep.setPolicyName("testing");
388 pep.setPolicyType("Base");
389 pep.setPolicyComponent("PDP");
390 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
391 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test123"))
392 .andExpect(status().isBadRequest());
393 pep.setPdpGroup("default");
394 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
395 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test123"))
396 .andExpect(status().isBadRequest());
397 pep.setPolicyName("com.Config_test.1.xml");
398 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
399 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test123"))
400 .andExpect(status().isBadRequest());
401 pep.setPolicyName("testing. ");
402 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
403 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test123"))
404 .andExpect(status().isBadRequest());
405 pep.setPolicyName("testscope.name");
406 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
407 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
408 pep.setPolicyType("wrong");
409 pep.setRequestID(UUID.randomUUID());
410 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
411 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
412 pep.setPolicyType("BRMS_PARAM");
413 pep.setPolicyComponent("wrong");
414 pep.setRequestID(null);
415 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
416 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
417 pep.setPolicyType("BRMS_PARAM");
418 pep.setPolicyComponent("PDP");
419 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
420 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
421 pep.setPolicyType("BRMS_RAW");
422 pep.setPolicyComponent("PDP");
423 pep.setPolicyName("testscope.name");
424 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
425 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
426 .andExpect(status().isBadRequest());
427 pep.setPolicyType("MicroService");
428 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
429 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
430 .andExpect(status().isBadRequest());
431 pep.setPolicyType("Optimization");
432 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
433 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
434 .andExpect(status().isBadRequest());
435 pep.setPolicyType("ClosedLoop_PM");
436 pep.setPolicyComponent("PDP");
437 pep.setDeleteCondition(DeletePolicyCondition.ALL);
438 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
439 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
440 .andExpect(status().isBadRequest());
441 pep.setPolicyType("ClosedLoop_Fault");
442 pep.setDeleteCondition(DeletePolicyCondition.ONE);
443 pep.setPolicyName("test.test");
444 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
445 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
446 .andExpect(status().isBadRequest());
447 pep.setPolicyType("Base");
448 pep.setPolicyComponent("PAP");
449 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
450 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
451 .andExpect(status().isBadRequest());
452 pep.setPolicyType("Decision");
453 pep.setPolicyComponent("PDP");
454 pep.setPolicyName("test.test");
455 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
456 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
457 .andExpect(status().isBadRequest());
458 pep.setPolicyType("Action");
459 pep.setPolicyName("scope.test");
460 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
461 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
462 .andExpect(status().isBadRequest());
463 pep.setPdpGroup("default");
464 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
465 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
466 .andExpect(status().isBadRequest());
467 pep.setPolicyComponent("PAP");
468 pep.setPolicyType("Firewall");
469 pep.setDeleteCondition(null);
470 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
471 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
472 .andExpect(status().isBadRequest());
473 pep.setPolicyComponent("PAP");
474 pep.setDeleteCondition(DeletePolicyCondition.ONE);
475 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
476 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
477 .andExpect(status().isBadRequest());
478 pep.setPolicyComponent("fail");
479 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
480 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
481 .andExpect(status().isBadRequest());
482 pep.setPolicyComponent("PDP");
483 pep.setPolicyName("testscope.policyName");
484 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
485 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
486 .andExpect(status().isBadRequest());
487 pep.setPolicyComponent(null);
488 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
489 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
490 .andExpect(status().isBadRequest());
491 pep.setPolicyComponent("PDP");
492 pep.setPolicyName("com.test1,com.test2");
493 pep.setPolicyType("Base,Base");
494 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
495 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
496 .andExpect(status().isBadRequest());
497 pep.setPolicyName("com.test1,com.test2");
498 pep.setPolicyType("Base,Base, ");
499 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
500 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
501 .andExpect(status().isBadRequest());
502 pep.setPolicyName("com.test1,com.test2, ");
503 pep.setPolicyType("Base,Base, ");
504 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
505 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
506 .andExpect(status().isBadRequest());
507 pep.setPolicyComponent("PAP");
508 pep.setPolicyName("com.test1,com.test2");
509 pep.setPolicyType("Base,Base");
510 mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep))
511 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
512 .andExpect(status().isBadRequest());
516 public void createUpdatePolicyTest() throws Exception {
517 PolicyParameters pep = new PolicyParameters();
519 mockMvc.perform(put("/createPolicy")).andExpect(status().isBadRequest());
520 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
521 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
522 .andExpect(status().isUnauthorized());
523 mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
524 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
525 .andExpect(status().isUnauthorized());
527 setCreateUpdateImpl();
528 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
529 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
530 .andExpect(status().isBadRequest());
531 pep.setPolicyName("failName");
532 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
533 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test 123"))
534 .andExpect(status().isBadRequest());
535 pep.setPolicyName("test. name");
536 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
537 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
538 pep.setPolicyName(" ");
539 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
540 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
541 .andExpect(status().isBadRequest());
542 pep.setPolicyName("test. ");
543 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
544 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
545 .andExpect(status().isBadRequest());
546 pep.setPolicyName("te st.name");
547 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
548 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
549 .andExpect(status().isBadRequest());
550 pep.setPolicyName("test.name");
551 pep.setPolicyDescription("testá");
552 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
553 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
554 .andExpect(status().isBadRequest());
555 pep.setPolicyName("test.name");
556 pep.setPolicyDescription("good");
557 pep.setTtlDate(new Date());
558 pep.setRequestID(UUID.randomUUID());
559 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
560 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
564 public void brmsPolicyCreationTests() throws Exception {
565 PolicyParameters pep = new PolicyParameters();
566 pep.setPolicyName("test.name");
567 pep.setPolicyDescription("good");
568 pep.setTtlDate(new Date());
569 pep.setRequestID(UUID.randomUUID());
570 setCreateUpdateImpl();
571 // Checks for BRMS Param Policy.
572 pep.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
573 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
574 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
575 pep.setRiskLevel("test");
576 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
577 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
578 Map<AttributeType, Map<String, String>> attributes = new HashMap<>();
579 Map<String, String> matching = new HashMap<>();
580 matching.put("key", "value");
581 attributes.put(AttributeType.MATCHING, matching);
582 pep.setAttributes(attributes);
583 pep.setRiskLevel("5");
584 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
585 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
586 mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
587 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
588 // Checks for BRMS Raw Policy
589 pep.setPolicyConfigType(PolicyConfigType.BRMS_RAW);
590 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
591 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
592 pep.setConfigBody("test");
593 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
594 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
595 pep.setRiskLevel(null);
596 pep.setConfigBody("package droolsexample\n\n import com.sample.ItemCity;\nimport java.math.BigDecimal;\n"
597 + "rule \"Nagpur Medicine Item\"\n\n when\n"
598 + " item : ItemCity(purchaseCity == ItemCity.City.NAGPUR,\n"
599 + " typeofItem == ItemCity.Type.MEDICINES)\n then\n"
600 + " BigDecimal tax = new BigDecimal(0.0);\n"
601 + " item.setLocalTax(tax.multiply(item.getSellPrice()));\nend");
602 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
603 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
604 pep.setRiskLevel("5");
605 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
606 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
607 mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
608 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
612 public void baseConfigTests() throws Exception {
613 PolicyParameters pep = new PolicyParameters();
614 pep.setPolicyName("test.name");
615 pep.setPolicyDescription("good");
616 pep.setTtlDate(new Date());
617 pep.setRequestID(UUID.randomUUID());
618 setCreateUpdateImpl();
619 // Checks for Base config Policy.
620 pep.setPolicyConfigType(PolicyConfigType.Base);
621 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
622 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
623 pep.setConfigBody("testbody");
624 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
625 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
626 pep.setConfigBodyType(PolicyType.OTHER);
627 pep.setRiskLevel("test");
628 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
629 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
630 pep.setRiskLevel("4");
631 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
632 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
633 pep.setOnapName("ec nam-e");
634 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
635 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
636 pep.setOnapName("onapName");
637 pep.setConfigName("tes config");
638 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
639 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
640 pep.setConfigName("configName");
641 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
642 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
643 pep.setConfigBody("{'test':'test}");
644 pep.setConfigBodyType(PolicyType.JSON);
645 mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
646 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
647 Map<AttributeType, Map<String, String>> attributes = new HashMap<>();
648 Map<String, String> matching = new HashMap<>();
649 matching.put("key", "value");
650 attributes.put(AttributeType.MATCHING, matching);
651 pep.setAttributes(attributes);
652 pep.setConfigBody("testBody");
653 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
654 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
658 public void closedLoopPolicyTests() throws Exception {
659 PolicyParameters pep = new PolicyParameters();
660 pep.setPolicyName("test.name");
661 pep.setPolicyDescription("good");
662 pep.setTtlDate(new Date());
663 pep.setRequestID(UUID.randomUUID());
664 setCreateUpdateImpl();
665 // Checks for Closed loop Policy.
666 pep.setPolicyConfigType(PolicyConfigType.ClosedLoop_Fault);
667 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
668 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
669 pep.setConfigBody("te stá");
670 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
671 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
672 pep.setConfigBody("testBody");
673 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
674 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
675 pep.setConfigBody("{\"key\":\"value\"}");
676 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
677 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
678 pep.setConfigBody("{\"onapname\":\"\"}");
679 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
680 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
681 pep.setConfigBody("{\"onapname\":\"test\"}");
682 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
683 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
684 pep.setRiskLevel("test");
685 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
686 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
687 pep.setRiskLevel("4");
688 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
689 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
690 mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
691 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
695 public void closedLoopPMTests() throws Exception {
696 PolicyParameters pep = new PolicyParameters();
697 pep.setPolicyName("test.name");
698 pep.setPolicyDescription("good");
699 pep.setTtlDate(new Date());
700 pep.setRequestID(UUID.randomUUID());
701 setCreateUpdateImpl();
702 // Checks for Closed loop Policy.
703 pep.setPolicyConfigType(PolicyConfigType.ClosedLoop_PM);
704 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
705 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
706 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
707 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
708 pep.setConfigBody("te stá");
709 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
710 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
711 pep.setConfigBody("testBody");
712 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
713 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
714 pep.setConfigBody("{\"key\":\"value\"}");
715 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
716 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
717 pep.setConfigBody("{\"onapname\":\"\"}");
718 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
719 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
720 pep.setConfigBody("{\"onapname\":\"test\"}");
721 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
722 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
723 pep.setConfigBody("{\"onapname\":\"test\", \"serviceTypePolicyName\":\"value\"}");
724 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
725 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
726 pep.setRiskLevel("test");
727 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
728 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
729 pep.setRiskLevel("4");
730 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
731 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
732 mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
733 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
737 public void firewallPolicyTests() throws Exception {
738 PolicyParameters pep = new PolicyParameters();
739 pep.setPolicyName("test.name");
740 pep.setPolicyDescription("good");
741 pep.setTtlDate(new Date());
742 pep.setRequestID(UUID.randomUUID());
743 setCreateUpdateImpl();
744 // Checks for Closed loop Policy.
745 pep.setPolicyConfigType(PolicyConfigType.Firewall);
746 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
747 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
748 pep.setConfigBody("te st");
749 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
750 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
751 pep.setConfigBody("{}");
752 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
753 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
754 pep.setConfigBody("{\"test\":\"test\"}");
755 pep.setRiskLevel("test");
756 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
757 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
758 pep.setRiskLevel("4");
759 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
760 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
761 pep.setConfigBody("{\"configName\":\"test\"}");
762 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
763 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
764 mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
765 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
769 public void microServicePolicyTests() throws Exception {
770 PolicyParameters pep = new PolicyParameters();
771 pep.setPolicyName("test.name");
772 pep.setPolicyDescription("good");
773 pep.setTtlDate(new Date());
774 pep.setRequestID(UUID.randomUUID());
775 setCreateUpdateImpl();
776 // Checks for Closed loop Policy.
777 pep.setPolicyConfigType(PolicyConfigType.MicroService);
778 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
779 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
780 pep.setConfigBody("te st");
781 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
782 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
783 pep.setConfigBody("{}");
784 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
785 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
786 pep.setConfigBody("{\"test\":\"test\"}");
787 pep.setOnapName(" ");
788 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
789 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
790 pep.setOnapName("testonap");
791 pep.setRiskLevel("fail");
792 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
793 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
794 pep.setRiskLevel("4");
795 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
796 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
797 pep.setConfigBody("{\"service\":\"test\",\"uuid\":\"test\",\"location\":\"test\",\"configName\":\"test\","
798 + "\"description\":\"test\",\"priority\":\"test\",\"version\":\"test\"}");
799 mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
800 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
804 public void actionDecisionPolicyCreationTests() throws Exception {
805 PolicyParameters pep = new PolicyParameters();
806 pep.setPolicyName("test.name");
807 pep.setPolicyDescription("good");
808 pep.setTtlDate(new Date());
809 pep.setRequestID(UUID.randomUUID());
810 setCreateUpdateImpl();
811 // Checks for action Policy.
812 pep.setPolicyClass(PolicyClass.Action);
813 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
814 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
815 Map<AttributeType, Map<String, String>> attributes = new HashMap<>();
816 pep.setAttributes(attributes);
817 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
818 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
819 attributes.put(AttributeType.MATCHING, new HashMap<>());
820 pep.setAttributes(attributes);
821 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
822 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
823 Map<String, String> matching = new HashMap<>();
824 matching.put("key", "value");
825 attributes.put(AttributeType.MATCHING, matching);
826 pep.setAttributes(attributes);
827 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
828 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
829 pep.setActionAttribute("A1");
830 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
831 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
832 pep.setActionPerformer("PEX");
833 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
834 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
835 pep.setActionPerformer("PEP");
836 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
837 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
838 mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
839 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
840 // Checks for Decision Policy.
841 pep.setPolicyClass(PolicyClass.Decision);
842 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
843 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
844 pep.setOnapName("xyz");
845 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
846 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
847 attributes.remove(AttributeType.MATCHING);
848 attributes.put(AttributeType.SETTINGS, matching);
849 pep.setAttributes(attributes);
850 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
851 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
852 attributes.put(AttributeType.MATCHING, matching);
853 pep.setAttributes(attributes);
854 mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep))
855 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
856 mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep))
857 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
861 public void createUpdateDictionaryTests() throws Exception {
862 DictionaryParameters pep = new DictionaryParameters();
864 mockMvc.perform(put("/createDictionaryItem")).andExpect(status().isBadRequest());
865 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
866 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
867 .andExpect(status().isUnauthorized());
868 mockMvc.perform(put("/updateDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
869 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
870 .andExpect(status().isUnauthorized());
872 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
873 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
874 .andExpect(status().isBadRequest());
875 pep.setDictionaryType(DictionaryType.MicroService);
876 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
877 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
878 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
879 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
880 .andExpect(status().isBadRequest());
881 pep.setDictionary("test dict");
882 pep.setRequestID(UUID.randomUUID());
883 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
884 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
885 pep.setDictionaryJson("{\"test\":\"value\"}");
886 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
887 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
888 .andExpect(status().isBadRequest());
889 pep.setDictionaryJson("test123");
890 mockMvc.perform(put("/updateDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
891 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "123"))
892 .andExpect(status().isBadRequest());
893 pep.setDictionary("MicroServiceDictionary");
894 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
895 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
899 public void getDictionaryTests() throws Exception {
900 DictionaryParameters pep = new DictionaryParameters();
902 mockMvc.perform(post("/getDictionaryItems")).andExpect(status().isBadRequest());
903 mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
904 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
905 .andExpect(status().isUnauthorized());
907 mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
908 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
909 .andExpect(status().isBadRequest());
910 pep.setDictionaryType(DictionaryType.Common);
911 mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
912 .contentType(MediaType.APPLICATION_JSON).headers(headers)
913 .header(UUIDHEADER, UUID.randomUUID().toString())).andExpect(status().isBadRequest());
914 pep.setDictionary("OnapName");
915 mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
916 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
917 pep.setRequestID(UUID.randomUUID());
918 mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
919 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
923 public void policyEngineImportTests() throws Exception {
925 mockMvc.perform(post("/policyEngineImport")).andExpect(status().isBadRequest());
929 public void oldConfigAPITests() throws Exception {
930 ConfigPolicyAPIRequest pep = new ConfigPolicyAPIRequest();
932 mockMvc.perform(put("/createConfig")).andExpect(status().isBadRequest());
933 mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
934 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
935 .andExpect(status().isUnauthorized());
936 mockMvc.perform(put("/updateConfig").content(PolicyUtils.objectToJsonString(pep))
937 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
938 .andExpect(status().isUnauthorized());
940 mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
941 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
942 .andExpect(status().isBadRequest());
943 pep.setPolicyScope("test");
944 mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
945 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
946 .andExpect(status().isBadRequest());
947 pep.setPolicyName("name");
948 mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
949 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
950 .andExpect(status().isBadRequest());
951 pep.setConfigType("OTHER");
952 mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
953 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
954 .andExpect(status().isBadRequest());
955 pep.setTtlDate(new Date().toString());
956 mockMvc.perform(put("/updateConfig").content(PolicyUtils.objectToJsonString(pep))
957 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
958 .andExpect(status().isBadRequest());
962 public void oldFirewallAPITests() throws Exception {
963 ConfigFirewallPolicyAPIRequest pep = new ConfigFirewallPolicyAPIRequest();
965 mockMvc.perform(put("/createFirewallConfig")).andExpect(status().isBadRequest());
966 mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
967 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
968 .andExpect(status().isUnauthorized());
969 mockMvc.perform(put("/updateFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
970 .contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
971 .andExpect(status().isUnauthorized());
973 mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
974 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
975 .andExpect(status().isBadRequest());
976 pep.setPolicyScope("test");
977 mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
978 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
979 .andExpect(status().isBadRequest());
980 pep.setPolicyName("name");
981 mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
982 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
983 .andExpect(status().isBadRequest());
984 pep.setTtlDate(new Date().toString());
985 mockMvc.perform(put("/updateFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
986 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
987 .andExpect(status().isBadRequest());
990 private void setCreateUpdateImpl() throws NoSuchMethodException, SecurityException, IllegalAccessException,
991 IllegalArgumentException, InvocationTargetException {
992 Method setter = XACMLPdpServlet.class.getDeclaredMethod("setCreateUpdatePolicyConstructor", String.class);
993 setter.setAccessible(true);
994 setter.invoke(new XACMLPdpServlet(), CreateUpdatePolicyServiceImpl.class.getName());
997 // Health Check Tests
999 public void getCountTest() throws Exception {
1000 mockMvc.perform(get("/count")).andExpect(status().isOk());