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