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";
81 private static final String MECHID_ATTR = "Mechid";
82 private static final String MECHID_ATTR_VAL = "junit";
84 private MockMvc mockMvc;
85 private HttpHeaders headers;
88 private WebApplicationContext webApplicationContext;
91 public void setup() throws IOException {
92 headers = new HttpHeaders();
93 headers.add(CLIENTAUTHHEADER, CLIENTAUTHVALUE);
94 XACMLProperties.reloadProperties();
95 System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "src/test/resources/pass.xacml.pdp.properties");
96 XACMLProperties.getProperties();
97 this.mockMvc = webAppContextSetup(webApplicationContext).build();
101 public void getConfigAPIFailureTest() throws Exception {
102 ConfigRequestParameters pep = new ConfigRequestParameters();
104 // Set wrong request.
105 pep.setPolicyName(null);
106 pep.setConfigName("test");
107 mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
108 .header(UUIDHEADER, "123").contentType(MediaType.APPLICATION_JSON)).andExpect(status().isBadRequest());
112 public void getConfigServiceTest() throws Exception {
113 ConfigRequestParameters pep = new ConfigRequestParameters();
114 pep.setPolicyName(".*");
115 mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
116 .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
117 .andExpect(status().isOk());
118 // Without policyName and using onapName and other fields.
119 pep.setPolicyName(null);
120 pep.setOnapName("test");
121 pep.setConfigName("test");
122 mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
123 .contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
124 // with config attributes.
125 Map<String, String> configAttributes = new HashMap<>();
126 configAttributes.put("test", "test");
127 pep.setConfigAttributes(configAttributes);
128 pep.makeUnique(true);
129 mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
130 .contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
134 public void getConfigByPolicyNameTest() throws Exception {
135 ConfigNameRequest pep = new ConfigNameRequest();
136 pep.setPolicyName(".*");
137 mockMvc.perform(post("/getConfigByPolicyName").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
138 .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
139 .andExpect(status().isOk());
143 public void listConfigTest() throws Exception {
144 ConfigRequestParameters pep = new ConfigRequestParameters();
145 pep.setPolicyName(".*");
147 mockMvc.perform(post("/listConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
148 .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
149 .andExpect(status().isOk());
153 public void listPolicyTest() throws Exception {
154 ConfigNameRequest pep = new ConfigNameRequest();
155 pep.setPolicyName(".*");
156 mockMvc.perform(post("/listPolicy").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
157 .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
158 .andExpect(status().isOk());
162 public void getMetricsTest() throws Exception {
164 mockMvc.perform(get("/getMetrics")).andExpect(status().isBadRequest());
166 mockMvc.perform(get("/getMetrics").headers(headers).header(UUIDHEADER, "123"))
167 .andExpect(status().isBadRequest());
168 mockMvc.perform(get("/getMetrics").headers(headers).header(UUIDHEADER, UUID.randomUUID()))
169 .andExpect(status().isBadRequest());
170 mockMvc.perform(get("/getMetrics").headers(headers)).andExpect(status().isBadRequest());
174 public void getNotificationTopicFailureTest() throws Exception {
175 mockMvc.perform(post("/getNotification")).andExpect(status().isBadRequest());
176 mockMvc.perform(post("/getNotification").headers(headers).content("")).andExpect(status().isBadRequest());
180 public void getNotificationTopicValidFailTest() throws Exception {
182 mockMvc.perform(post("/getNotification").headers(headers).content(" ")).andExpect(status().isBadRequest());
183 mockMvc.perform(post("/stopNotification").headers(headers).content(" ")).andExpect(status().isBadRequest());
184 mockMvc.perform(post("/sendHeartbeat").headers(headers).content(" ")).andExpect(status().isBadRequest());
188 public void getNotificationTopicValidPassTest() throws Exception {
189 // Values can be polluted due to failure tests and need to be reloaded.
190 XACMLProperties.reloadProperties();
191 System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME,
192 "src/test/resources/notification.xacml.pdp.properties");
193 XACMLProperties.getProperties();
194 NotificationService.reloadProps();
196 mockMvc.perform(post("/getNotification").headers(headers).header(UUIDHEADER, "123").content("test"))
197 .andExpect(status().isOk());
198 // Try to add same topic should fail.
199 mockMvc.perform(post("/getNotification").headers(headers).header(UUIDHEADER, UUID.randomUUID()).content("test"))
200 .andExpect(status().isBadRequest());
202 mockMvc.perform(post("/sendHeartbeat").headers(headers).content("test")).andExpect(status().isOk());
203 // remove the added Topic.
204 mockMvc.perform(post("/stopNotification").headers(headers).content("test")).andExpect(status().isOk());
205 // try to remove again should fail.
206 mockMvc.perform(post("/sendHeartbeat").headers(headers).content("test")).andExpect(status().isBadRequest());
210 public void sendEventTest() throws Exception {
211 EventRequestParameters pep = new EventRequestParameters();
212 Map<String, String> eventAttributes = new HashMap<>();
213 eventAttributes.put("TEST", "test");
214 pep.setEventAttributes(eventAttributes);
216 mockMvc.perform(post("/sendEvent")).andExpect(status().isBadRequest());
219 mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep))
220 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "123"))
221 .andExpect(status().isOk());
222 pep.setEventAttributes(null);
223 mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep))
224 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
225 .andExpect(status().isBadRequest());
226 pep.setEventAttributes(eventAttributes);
227 mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep))
228 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isOk());
229 pep.setEventAttributes(eventAttributes);
230 pep.setRequestID(UUID.randomUUID());
231 mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep))
232 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isOk());
236 public void getDecisionTest() throws Exception {
237 DecisionRequestParameters pep = new DecisionRequestParameters();
238 Map<String, String> eventAttributes = new HashMap<>();
239 eventAttributes.put("TEST", "test");
240 pep.setOnapName("te123");
241 pep.setDecisionAttributes(eventAttributes);
243 mockMvc.perform(post("/getDecision")).andExpect(status().isBadRequest());
246 mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep))
247 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "123"))
248 .andExpect(status().isOk());
249 pep.setDecisionAttributes(null);
250 pep.setOnapName(null);
251 mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep))
252 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
253 .andExpect(status().isBadRequest());
254 pep.setOnapName("testing");
255 mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep))
256 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
257 pep.setDecisionAttributes(eventAttributes);
258 pep.setRequestID(UUID.randomUUID());
259 mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep))
260 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isOk());
264 public void pushPolicyTest() throws Exception {
265 PushPolicyParameters pep = new PushPolicyParameters();
267 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL)).andExpect(status().isBadRequest());
270 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
271 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
272 .andExpect(status().isBadRequest());
273 pep.setPolicyName("com.");
274 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
275 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
276 pep.setPolicyName("com.test");
277 pep.setPolicyType("");
278 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
279 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
280 pep.setPolicyName("scopeless");
281 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
282 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
283 pep.setPolicyName("testing.test");
284 pep.setPolicyType("wrong");
285 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
286 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
287 pep.setPolicyType("BRMS_PARAM");
288 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
289 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
290 pep.setPolicyType("BRMS_RAW");
291 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
292 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
293 pep.setPolicyType("MicroService");
294 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
295 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
296 pep.setPolicyType("ClosedLoop_PM");
297 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
298 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
299 pep.setPolicyType("ClosedLoop_Fault");
300 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
301 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
302 pep.setPolicyType("Base");
303 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
304 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
305 pep.setPolicyType("Decision");
306 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
307 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
308 pep.setPolicyType("Action");
309 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
310 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
311 pep.setPolicyType("Firewall");
312 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
313 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
314 pep.setPolicyType("Optimization");
315 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
316 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
317 pep.setPdpGroup("default");
318 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
319 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "123"))
320 .andExpect(status().isBadRequest());
321 pep.setRequestID(UUID.randomUUID());
322 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
323 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
324 pep.setPolicyType("Base,Base");
325 pep.setPolicyName("com.test1,com.test2");
326 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
327 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
328 pep.setPolicyType("Base,Base, ");
329 pep.setPolicyName("com.test1,com.test2,com.test3");
330 mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
331 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
335 public void deletePolicyTest() throws Exception {
336 DeletePolicyParameters pep = new DeletePolicyParameters();
338 mockMvc.perform(delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL)).andExpect(status().isBadRequest());
342 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
343 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
344 .andExpect(status().isBadRequest());
346 pep.setPolicyName("testing");
347 pep.setPolicyType("Base");
348 pep.setPolicyComponent("PDP");
349 mockMvc.perform(delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL)
350 .content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).headers(headers)
351 .requestAttr("userId", "testUserId").header(UUIDHEADER, "test123")).andExpect(status().isBadRequest());
352 pep.setPdpGroup("default");
354 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
355 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test123"))
356 .andExpect(status().isBadRequest());
357 pep.setPolicyName("com.Config_test.1.xml");
359 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
360 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test123"))
361 .andExpect(status().isBadRequest());
362 pep.setPolicyName("testing. ");
364 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
365 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test123"))
366 .andExpect(status().isBadRequest());
367 pep.setPolicyName("testscope.name");
368 mockMvc.perform(delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL)
369 .content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).headers(headers))
370 .andExpect(status().isBadRequest());
371 pep.setPolicyType("wrong");
372 pep.setRequestID(UUID.randomUUID());
373 mockMvc.perform(delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL)
374 .content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).headers(headers))
375 .andExpect(status().isBadRequest());
376 pep.setPolicyType("BRMS_PARAM");
377 pep.setPolicyComponent("wrong");
378 pep.setRequestID(null);
379 mockMvc.perform(delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL)
380 .content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).headers(headers))
381 .andExpect(status().isBadRequest());
382 pep.setPolicyType("BRMS_PARAM");
383 pep.setPolicyComponent("PDP");
384 mockMvc.perform(delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL)
385 .content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).headers(headers))
386 .andExpect(status().isBadRequest());
387 pep.setPolicyType("BRMS_RAW");
388 pep.setPolicyComponent("PDP");
389 pep.setPolicyName("testscope.name");
391 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
392 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
393 .andExpect(status().isBadRequest());
394 pep.setPolicyType("MicroService");
396 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
397 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
398 .andExpect(status().isBadRequest());
399 pep.setPolicyType("Optimization");
401 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
402 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
403 .andExpect(status().isBadRequest());
404 pep.setPolicyType("ClosedLoop_PM");
405 pep.setPolicyComponent("PDP");
406 pep.setDeleteCondition(DeletePolicyCondition.ALL);
408 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
409 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
410 .andExpect(status().isBadRequest());
411 pep.setPolicyType("ClosedLoop_Fault");
412 pep.setDeleteCondition(DeletePolicyCondition.ONE);
413 pep.setPolicyName("test.test");
415 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
416 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
417 .andExpect(status().isBadRequest());
418 pep.setPolicyType("Base");
419 pep.setPolicyComponent("PAP");
421 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
422 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
423 .andExpect(status().isBadRequest());
424 pep.setPolicyType("Decision");
425 pep.setPolicyComponent("PDP");
426 pep.setPolicyName("test.test");
428 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
429 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
430 .andExpect(status().isBadRequest());
431 pep.setPolicyType("Action");
432 pep.setPolicyName("scope.test");
434 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
435 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
436 .andExpect(status().isBadRequest());
437 pep.setPdpGroup("default");
439 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
440 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
441 .andExpect(status().isBadRequest());
442 pep.setPolicyComponent("PAP");
443 pep.setPolicyType("Firewall");
444 pep.setDeleteCondition(null);
446 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
447 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
448 .andExpect(status().isBadRequest());
449 pep.setPolicyComponent("PAP");
450 pep.setDeleteCondition(DeletePolicyCondition.ONE);
452 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
453 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
454 .andExpect(status().isBadRequest());
455 pep.setPolicyComponent("fail");
457 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
458 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
459 .andExpect(status().isBadRequest());
460 pep.setPolicyComponent("PDP");
461 pep.setPolicyName("testscope.policyName");
463 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
464 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
465 .andExpect(status().isBadRequest());
466 pep.setPolicyComponent(null);
468 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
469 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
470 .andExpect(status().isBadRequest());
471 pep.setPolicyComponent("PDP");
472 pep.setPolicyName("com.test1,com.test2");
473 pep.setPolicyType("Base,Base");
475 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
476 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
477 .andExpect(status().isBadRequest());
478 pep.setPolicyName("com.test1,com.test2");
479 pep.setPolicyType("Base,Base, ");
481 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
482 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
483 .andExpect(status().isBadRequest());
484 pep.setPolicyName("com.test1,com.test2, ");
485 pep.setPolicyType("Base,Base, ");
487 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
488 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
489 .andExpect(status().isBadRequest());
490 pep.setPolicyComponent("PAP");
491 pep.setPolicyName("com.test1,com.test2");
492 pep.setPolicyType("Base,Base");
494 delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
495 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
496 .andExpect(status().isBadRequest());
500 public void createUpdatePolicyTest() throws Exception {
501 PolicyParameters pep = new PolicyParameters();
503 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL)).andExpect(status().isBadRequest());
506 setCreateUpdateImpl();
507 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
508 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
509 .andExpect(status().isBadRequest());
510 pep.setPolicyName("failName");
511 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
512 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "test 123"))
513 .andExpect(status().isBadRequest());
514 pep.setPolicyName("test. name");
515 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
516 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
517 pep.setPolicyName(" ");
518 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
519 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
520 .andExpect(status().isBadRequest());
521 pep.setPolicyName("test. ");
522 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
523 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
524 .andExpect(status().isBadRequest());
525 pep.setPolicyName("te st.name");
526 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
527 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
528 .andExpect(status().isBadRequest());
529 pep.setPolicyName("test.name");
530 pep.setPolicyDescription("testá");
531 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
532 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
533 .andExpect(status().isBadRequest());
534 pep.setPolicyName("test.name");
535 pep.setPolicyDescription("good");
536 pep.setTtlDate(new Date());
537 pep.setRequestID(UUID.randomUUID());
538 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
539 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
543 public void brmsPolicyCreationTests() throws Exception {
544 PolicyParameters pep = new PolicyParameters();
545 pep.setPolicyName("test.name");
546 pep.setPolicyDescription("good");
547 pep.setTtlDate(new Date());
548 pep.setRequestID(UUID.randomUUID());
549 setCreateUpdateImpl();
550 // Checks for BRMS Param Policy.
551 pep.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
552 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
553 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
554 pep.setRiskLevel("test");
555 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
556 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
557 Map<AttributeType, Map<String, String>> attributes = new HashMap<>();
558 Map<String, String> matching = new HashMap<>();
559 matching.put("key", "value");
560 attributes.put(AttributeType.MATCHING, matching);
561 pep.setAttributes(attributes);
562 pep.setRiskLevel("5");
563 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
564 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
565 mockMvc.perform(put("/updatePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
566 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
567 // Checks for BRMS Raw Policy
568 pep.setPolicyConfigType(PolicyConfigType.BRMS_RAW);
569 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
570 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
571 pep.setConfigBody("test");
572 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
573 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
574 pep.setRiskLevel(null);
575 pep.setConfigBody("package droolsexample\n\n import com.sample.ItemCity;\nimport java.math.BigDecimal;\n"
576 + "rule \"Nagpur Medicine Item\"\n\n when\n"
577 + " item : ItemCity(purchaseCity == ItemCity.City.NAGPUR,\n"
578 + " typeofItem == ItemCity.Type.MEDICINES)\n then\n"
579 + " BigDecimal tax = new BigDecimal(0.0);\n"
580 + " item.setLocalTax(tax.multiply(item.getSellPrice()));\nend");
581 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
582 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
583 pep.setRiskLevel("5");
584 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
585 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
586 mockMvc.perform(put("/updatePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
587 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
591 public void baseConfigTests() throws Exception {
592 PolicyParameters pep = new PolicyParameters();
593 pep.setPolicyName("test.name");
594 pep.setPolicyDescription("good");
595 pep.setTtlDate(new Date());
596 pep.setRequestID(UUID.randomUUID());
597 setCreateUpdateImpl();
598 // Checks for Base config Policy.
599 pep.setPolicyConfigType(PolicyConfigType.Base);
600 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
601 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
602 pep.setConfigBody("testbody");
603 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
604 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
605 pep.setConfigBodyType(PolicyType.OTHER);
606 pep.setRiskLevel("test");
607 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
608 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
609 pep.setRiskLevel("4");
610 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
611 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
612 pep.setOnapName("ec nam-e");
613 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
614 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
615 pep.setOnapName("onapName");
616 pep.setConfigName("tes config");
617 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
618 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
619 pep.setConfigName("configName");
620 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
621 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
622 pep.setConfigBody("{'test':'test}");
623 pep.setConfigBodyType(PolicyType.JSON);
624 mockMvc.perform(put("/updatePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
625 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
626 Map<AttributeType, Map<String, String>> attributes = new HashMap<>();
627 Map<String, String> matching = new HashMap<>();
628 matching.put("key", "value");
629 attributes.put(AttributeType.MATCHING, matching);
630 pep.setAttributes(attributes);
631 pep.setConfigBody("testBody");
632 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
633 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
637 public void closedLoopPolicyTests() throws Exception {
638 PolicyParameters pep = new PolicyParameters();
639 pep.setPolicyName("test.name");
640 pep.setPolicyDescription("good");
641 pep.setTtlDate(new Date());
642 pep.setRequestID(UUID.randomUUID());
643 setCreateUpdateImpl();
644 // Checks for Closed loop Policy.
645 pep.setPolicyConfigType(PolicyConfigType.ClosedLoop_Fault);
646 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
647 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
648 pep.setConfigBody("te stá");
649 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
650 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
651 pep.setConfigBody("testBody");
652 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
653 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
654 pep.setConfigBody("{\"key\":\"value\"}");
655 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
656 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
657 pep.setConfigBody("{\"onapname\":\"\"}");
658 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
659 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
660 pep.setConfigBody("{\"onapname\":\"test\"}");
661 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
662 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
663 pep.setRiskLevel("test");
664 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
665 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
666 pep.setRiskLevel("4");
667 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
668 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
669 mockMvc.perform(put("/updatePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
670 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
674 public void closedLoopPMTests() throws Exception {
675 PolicyParameters pep = new PolicyParameters();
676 pep.setPolicyName("test.name");
677 pep.setPolicyDescription("good");
678 pep.setTtlDate(new Date());
679 pep.setRequestID(UUID.randomUUID());
680 setCreateUpdateImpl();
681 // Checks for Closed loop Policy.
682 pep.setPolicyConfigType(PolicyConfigType.ClosedLoop_PM);
683 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
684 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
685 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
686 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
687 pep.setConfigBody("te stá");
688 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
689 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
690 pep.setConfigBody("testBody");
691 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
692 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
693 pep.setConfigBody("{\"key\":\"value\"}");
694 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
695 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
696 pep.setConfigBody("{\"onapname\":\"\"}");
697 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
698 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
699 pep.setConfigBody("{\"onapname\":\"test\"}");
700 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
701 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
702 pep.setConfigBody("{\"onapname\":\"test\", \"serviceTypePolicyName\":\"value\"}");
703 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
704 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
705 pep.setRiskLevel("test");
706 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
707 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
708 pep.setRiskLevel("4");
709 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
710 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
711 mockMvc.perform(put("/updatePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
712 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
716 public void firewallPolicyTests() throws Exception {
717 PolicyParameters pep = new PolicyParameters();
718 pep.setPolicyName("test.name");
719 pep.setPolicyDescription("good");
720 pep.setTtlDate(new Date());
721 pep.setRequestID(UUID.randomUUID());
722 setCreateUpdateImpl();
723 // Checks for Closed loop Policy.
724 pep.setPolicyConfigType(PolicyConfigType.Firewall);
725 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
726 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
727 pep.setConfigBody("te st");
728 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
729 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
730 pep.setConfigBody("{}");
731 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
732 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
733 pep.setConfigBody("{\"test\":\"test\"}");
734 pep.setRiskLevel("test");
735 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
736 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
737 pep.setRiskLevel("4");
738 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
739 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
740 pep.setConfigBody("{\"configName\":\"test\"}");
741 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
742 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
743 mockMvc.perform(put("/updatePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
744 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
748 public void microServicePolicyTests() throws Exception {
749 PolicyParameters pep = new PolicyParameters();
750 pep.setPolicyName("test.name");
751 pep.setPolicyDescription("good");
752 pep.setTtlDate(new Date());
753 pep.setRequestID(UUID.randomUUID());
754 setCreateUpdateImpl();
755 // Checks for Closed loop Policy.
756 pep.setPolicyConfigType(PolicyConfigType.MicroService);
757 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
758 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
759 pep.setConfigBody("te st");
760 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
761 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
762 pep.setConfigBody("{}");
763 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
764 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
765 pep.setConfigBody("{\"test\":\"test\"}");
766 pep.setOnapName(" ");
767 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
768 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
769 pep.setOnapName("testonap");
770 pep.setRiskLevel("fail");
771 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
772 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
773 pep.setRiskLevel("4");
774 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
775 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
776 pep.setConfigBody("{\"service\":\"test\",\"uuid\":\"test\",\"location\":\"test\",\"configName\":\"test\","
777 + "\"description\":\"test\",\"priority\":\"test\",\"version\":\"test\"}");
778 mockMvc.perform(put("/updatePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
779 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
783 public void actionDecisionPolicyCreationTests() throws Exception {
784 PolicyParameters pep = new PolicyParameters();
785 pep.setPolicyName("test.name");
786 pep.setPolicyDescription("good");
787 pep.setTtlDate(new Date());
788 pep.setRequestID(UUID.randomUUID());
789 setCreateUpdateImpl();
790 // Checks for action Policy.
791 pep.setPolicyClass(PolicyClass.Action);
792 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
793 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
794 Map<AttributeType, Map<String, String>> attributes = new HashMap<>();
795 pep.setAttributes(attributes);
796 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
797 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
798 attributes.put(AttributeType.MATCHING, new HashMap<>());
799 pep.setAttributes(attributes);
800 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
801 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
802 Map<String, String> matching = new HashMap<>();
803 matching.put("key", "value");
804 attributes.put(AttributeType.MATCHING, matching);
805 pep.setAttributes(attributes);
806 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
807 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
808 pep.setActionAttribute("A1");
809 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
810 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
811 pep.setActionPerformer("PEX");
812 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
813 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
814 pep.setActionPerformer("PEP");
815 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
816 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
817 mockMvc.perform(put("/updatePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
818 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
819 // Checks for Decision Policy.
820 pep.setPolicyClass(PolicyClass.Decision);
821 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
822 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
823 pep.setOnapName("xyz");
824 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
825 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
826 attributes.remove(AttributeType.MATCHING);
827 attributes.put(AttributeType.SETTINGS, matching);
828 pep.setAttributes(attributes);
829 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
830 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
831 attributes.put(AttributeType.MATCHING, matching);
832 pep.setAttributes(attributes);
833 mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
834 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
835 mockMvc.perform(put("/updatePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL).content(PolicyUtils.objectToJsonString(pep))
836 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
840 public void createUpdateDictionaryTests() throws Exception {
841 DictionaryParameters pep = new DictionaryParameters();
843 mockMvc.perform(put("/createDictionaryItem")).andExpect(status().isBadRequest());
846 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
847 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
848 .andExpect(status().isBadRequest());
849 pep.setDictionaryType(DictionaryType.MicroService);
850 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
851 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
852 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
853 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
854 .andExpect(status().isBadRequest());
855 pep.setDictionary("test dict");
856 pep.setRequestID(UUID.randomUUID());
857 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
858 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
859 pep.setDictionaryJson("{\"test\":\"value\"}");
860 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
861 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, UUID.randomUUID()))
862 .andExpect(status().isBadRequest());
863 pep.setDictionaryJson("test123");
864 mockMvc.perform(put("/updateDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
865 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "123"))
866 .andExpect(status().isBadRequest());
867 pep.setDictionary("MicroServiceDictionary");
868 mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep))
869 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
873 public void getDictionaryTests() throws Exception {
874 DictionaryParameters pep = new DictionaryParameters();
876 mockMvc.perform(post("/getDictionaryItems")).andExpect(status().isBadRequest());
879 mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
880 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
881 .andExpect(status().isBadRequest());
882 pep.setDictionaryType(DictionaryType.Common);
883 mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
884 .contentType(MediaType.APPLICATION_JSON).headers(headers)
885 .header(UUIDHEADER, UUID.randomUUID().toString())).andExpect(status().isBadRequest());
886 pep.setDictionary("OnapName");
887 mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
888 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
889 pep.setRequestID(UUID.randomUUID());
890 mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep))
891 .contentType(MediaType.APPLICATION_JSON).headers(headers)).andExpect(status().isBadRequest());
895 public void policyEngineImportTests() throws Exception {
897 mockMvc.perform(post("/policyEngineImport")).andExpect(status().isBadRequest());
901 public void oldConfigAPITests() throws Exception {
902 ConfigPolicyAPIRequest pep = new ConfigPolicyAPIRequest();
904 mockMvc.perform(put("/createConfig")).andExpect(status().isBadRequest());
907 mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
908 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
909 .andExpect(status().isBadRequest());
910 pep.setPolicyScope("test");
911 mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
912 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
913 .andExpect(status().isBadRequest());
914 pep.setPolicyName("name");
915 mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
916 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
917 .andExpect(status().isBadRequest());
918 pep.setConfigType("OTHER");
919 mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep))
920 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
921 .andExpect(status().isBadRequest());
922 pep.setTtlDate(new Date().toString());
923 mockMvc.perform(put("/updateConfig").content(PolicyUtils.objectToJsonString(pep))
924 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
925 .andExpect(status().isBadRequest());
929 public void oldFirewallAPITests() throws Exception {
930 ConfigFirewallPolicyAPIRequest pep = new ConfigFirewallPolicyAPIRequest();
932 mockMvc.perform(put("/createFirewallConfig")).andExpect(status().isBadRequest());
935 mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
936 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
937 .andExpect(status().isBadRequest());
938 pep.setPolicyScope("test");
939 mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
940 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
941 .andExpect(status().isBadRequest());
942 pep.setPolicyName("name");
943 mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
944 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
945 .andExpect(status().isBadRequest());
946 pep.setTtlDate(new Date().toString());
947 mockMvc.perform(put("/updateFirewallConfig").content(PolicyUtils.objectToJsonString(pep))
948 .contentType(MediaType.APPLICATION_JSON).headers(headers).header(UUIDHEADER, "tes123"))
949 .andExpect(status().isBadRequest());
952 private void setCreateUpdateImpl() throws NoSuchMethodException, SecurityException, IllegalAccessException,
953 IllegalArgumentException, InvocationTargetException {
954 Method setter = XACMLPdpServlet.class.getDeclaredMethod("setCreateUpdatePolicyConstructor", String.class);
955 setter.setAccessible(true);
956 setter.invoke(new XACMLPdpServlet(), CreateUpdatePolicyServiceImpl.class.getName());
959 // Health Check Tests
961 public void getCountTest() throws Exception {
962 mockMvc.perform(get("/count")).andExpect(status().isOk());