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