Add missing requestAttribute to junits
[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
23 package org.onap.policy.pdp.rest.api.test;
24
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;
37 import java.util.Map;
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;
71
72 @RunWith(SpringJUnit4ClassRunner.class)
73 @ContextConfiguration(classes = {PDPRestConfig.class})
74 @WebAppConfiguration
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";
83
84     private MockMvc mockMvc;
85     private HttpHeaders headers;
86
87     @Autowired
88     private WebApplicationContext webApplicationContext;
89
90     @Before()
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();
98     }
99
100     @Test
101     public void getConfigAPIFailureTest() throws Exception {
102         ConfigRequestParameters pep = new ConfigRequestParameters();
103
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());
109     }
110
111     @Test
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());
131     }
132
133     @Test
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());
140     }
141
142     @Test
143     public void listConfigTest() throws Exception {
144         ConfigRequestParameters pep = new ConfigRequestParameters();
145         pep.setPolicyName(".*");
146
147         mockMvc.perform(post("/listConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers)
148                 .header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
149                 .andExpect(status().isOk());
150     }
151
152     @Test
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());
159     }
160
161     @Test
162     public void getMetricsTest() throws Exception {
163         // Failure Tests.
164         mockMvc.perform(get("/getMetrics")).andExpect(status().isBadRequest());
165         // Service Tests.
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());
171     }
172
173     @Test
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());
177     }
178
179     @Test
180     public void getNotificationTopicValidFailTest() throws Exception {
181         // Check failures.
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());
185     }
186
187     @Test
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();
195         // Add a Topic.
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());
201         // do a heart beat.
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());
207     }
208
209     @Test
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);
215         // Failure Tests.
216         mockMvc.perform(post("/sendEvent")).andExpect(status().isBadRequest());
217
218         // Service Tests.
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());
233     }
234
235     @Test
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);
242         // Failure Tests.
243         mockMvc.perform(post("/getDecision")).andExpect(status().isBadRequest());
244
245         // Service Tests.
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());
261     }
262
263     @Test
264     public void pushPolicyTest() throws Exception {
265         PushPolicyParameters pep = new PushPolicyParameters();
266         // Failure Tests.
267         mockMvc.perform(put("/pushPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL)).andExpect(status().isBadRequest());
268
269         // Service Tests.
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());
332     }
333
334     @Test
335     public void deletePolicyTest() throws Exception {
336         DeletePolicyParameters pep = new DeletePolicyParameters();
337         // Failure Tests.
338         mockMvc.perform(delete("/deletePolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL)).andExpect(status().isBadRequest());
339
340         // Service Tests.
341         mockMvc.perform(
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());
345
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");
353         mockMvc.perform(
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");
358         mockMvc.perform(
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. ");
363         mockMvc.perform(
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");
390         mockMvc.perform(
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");
395         mockMvc.perform(
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");
400         mockMvc.perform(
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);
407         mockMvc.perform(
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");
414         mockMvc.perform(
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");
420         mockMvc.perform(
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");
427         mockMvc.perform(
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");
433         mockMvc.perform(
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");
438         mockMvc.perform(
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);
445         mockMvc.perform(
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);
451         mockMvc.perform(
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");
456         mockMvc.perform(
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");
462         mockMvc.perform(
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);
467         mockMvc.perform(
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");
474         mockMvc.perform(
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,  ");
480         mockMvc.perform(
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,  ");
486         mockMvc.perform(
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");
493         mockMvc.perform(
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());
497     }
498
499     @Test
500     public void createUpdatePolicyTest() throws Exception {
501         PolicyParameters pep = new PolicyParameters();
502         // Failure Tests.
503         mockMvc.perform(put("/createPolicy").requestAttr(MECHID_ATTR, MECHID_ATTR_VAL)).andExpect(status().isBadRequest());
504
505         // Service Tests.
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());
540     }
541
542     @Test
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());
588     }
589
590     @Test
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());
634     }
635
636     @Test
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());
671     }
672
673     @Test
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());
713     }
714
715     @Test
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());
745     }
746
747     @Test
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());
780     }
781
782     @Test
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());
837     }
838
839     @Test
840     public void createUpdateDictionaryTests() throws Exception {
841         DictionaryParameters pep = new DictionaryParameters();
842         // Failure Tests.
843         mockMvc.perform(put("/createDictionaryItem")).andExpect(status().isBadRequest());
844
845         // Service Tests.
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());
870     }
871
872     @Test
873     public void getDictionaryTests() throws Exception {
874         DictionaryParameters pep = new DictionaryParameters();
875         // Failure Tests.
876         mockMvc.perform(post("/getDictionaryItems")).andExpect(status().isBadRequest());
877
878         // Service Tests.
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());
892     }
893
894     @Test
895     public void policyEngineImportTests() throws Exception {
896         // Failure Tests.
897         mockMvc.perform(post("/policyEngineImport")).andExpect(status().isBadRequest());
898     }
899
900     @Test
901     public void oldConfigAPITests() throws Exception {
902         ConfigPolicyAPIRequest pep = new ConfigPolicyAPIRequest();
903         // Failure Tests.
904         mockMvc.perform(put("/createConfig")).andExpect(status().isBadRequest());
905
906         // Service Tests.
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());
926     }
927
928     @Test
929     public void oldFirewallAPITests() throws Exception {
930         ConfigFirewallPolicyAPIRequest pep = new ConfigFirewallPolicyAPIRequest();
931         // Failure Tests.
932         mockMvc.perform(put("/createFirewallConfig")).andExpect(status().isBadRequest());
933
934         // Service Tests.
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());
950     }
951
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());
957     }
958
959     // Health Check Tests
960     @Test
961     public void getCountTest() throws Exception {
962         mockMvc.perform(get("/count")).andExpect(status().isOk());
963     }
964 }