Initial OpenECOMP policy/engine commit
[policy/engine.git] / PyPDPServer / src / test / java / testpypdp / PolicyEngineServicesTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ECOMP Policy Engine
4  * ================================================================================
5  * Copyright (C) 2017 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
21 package testpypdp;
22
23 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
24 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
25 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
26 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
27 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
28 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
29 import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup;
30
31 import java.io.IOException;
32 import java.util.HashMap;
33 import java.util.Map;
34 import java.util.UUID;
35
36 import javax.ws.rs.core.MediaType;
37
38 import org.openecomp.policy.pypdp.model_pojo.PepConfigFirewallPolicyRequest;
39 import org.openecomp.policy.pypdp.model_pojo.PepConfigPolicyNameRequest;
40 import org.openecomp.policy.pypdp.model_pojo.PepConfigPolicyRequest;
41 import org.openecomp.policy.pypdp.model_pojo.PepPushPolicyRequest;
42
43 import org.junit.Before;
44 import org.junit.Test;
45 import org.junit.runner.RunWith;
46 import org.openecomp.policy.api.ConfigRequestParameters;
47 import org.openecomp.policy.api.DeletePolicyParameters;
48 import org.openecomp.policy.api.EventRequestParameters;
49 import org.openecomp.policy.api.PolicyParameters;
50 import org.springframework.beans.factory.annotation.Autowired;
51 import org.springframework.boot.test.SpringApplicationConfiguration;
52 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
53 import org.springframework.test.context.web.WebAppConfiguration;
54 import org.springframework.test.web.servlet.MockMvc;
55 import org.springframework.web.context.WebApplicationContext;
56
57 import com.fasterxml.jackson.databind.ObjectMapper;
58
59 import org.openecomp.policy.pypdp.controller.Application;
60 import org.openecomp.policy.pypdp.controller.PolicyEngineServices;
61
62 /**
63  * Test for Policy Engine REST Services
64  * 
65  *
66  */
67 @RunWith(SpringJUnit4ClassRunner.class)
68 @SpringApplicationConfiguration(classes = { Application.class,
69                 PolicyEngineServices.class })
70 @WebAppConfiguration
71 public class PolicyEngineServicesTest {
72         private MockMvc mockMvc;
73         // Don't Change this.
74         private static final String CONFIG_ERROR_MESSAGE = "[{\"policyConfigMessage\": \"PE300 - Data Issue: PolicyFile Name is empty\","
75                         + "\"policyConfigStatus\": \"CONFIG_NOT_FOUND\","
76                         + "\"type\": null,"
77                         + "\"config\": null,"
78                         + "\"policyName\": null,"
79                         + "\"policyVersion\": null,"
80                         + "\"matchingConditions\": null,"
81                         + "\"responseAttributes\": null," + "\"property\": null" + "}]";
82         private static final String VALID_JSON = "{\"serviceTypeId\": \"/v0/firewall/pan\",\"configName\": \"rule1607\",\"deploymentOption\":{\"deployNow\": false},\"securityZoneId\": \"/v0/firewall/pan\",\"serviceGroups\": [{\"name\": \"1607Group\",\"description\": null,\"members\": [{\"type\": \"REFERENCE\",\"name\": \"SList\"},{\"type\": \"REFERENCE\",\"name\": \"Syslog\"}]}, {\"name\": \"Syslog\",\"description\": \"NA\",\"type\": \"SERVICE\",\"transportProtocol\": \"udp\",\"appProtocol\": null,\"ports\": \"514\"}, {\"name\": \"SList\",\"description\": \"Service List\",\"type\": \"SERVICE\",\"transportProtocol\": \"tcp\",\"appProtocol\": null,\"ports\": \"8080\"}],\"addressGroups\": [{\"name\": \"1607Group\",\"description\": null,\"members\": [{\"type\": \"REFERENCE\",\"name\": \"10.11.12.13/14\"},{\"type\": \"REFERENCE\",\"name\": \"10.11.12.13/14\"}]},{\"name\": \"PL_CCE3\",\"description\": \"CCE Routers\",\"members\":[{\"type\": \"REFERENCE\",\"name\": \"10.11.12.13/14\"}]}],\"firewallRuleList\": [{\"position\": \"1\",\"ruleName\": \"1607Rule\",\"fromZones\": [\"Trusted\"],\"toZones\": [\"Untrusted\"],\"negateSource\": false,\"negateDestination\": false,\"sourceList\": [{\"type\": \"REFERENCE\",\"name\": \"PL_CCE3\"}, {\"type\": \"REFERENCE\",\"name\": \"1607Group\"}],\"destinationList\": [{\"type\": \"REFERENCE\",\"name\": \"1607Group\"}],\"sourceServices\": [],\"destServices\": [{\"type\": \"REFERENCE\",\"name\": \"1607Group\"}],\"action\": \"accept\",\"description\": \"Rule for 1607 templates\",\"enabled\": true,\"log\": true}]}";
83         private static final String INVALID_JSON = "{\"test\": \"value}";
84
85         @Autowired
86         private PolicyEngineServices policyEngineServicesMock;
87
88         @Autowired
89         private WebApplicationContext webApplicationContext;
90
91         @Before
92         public void setup() throws Exception {
93                 this.mockMvc = webAppContextSetup(webApplicationContext).build();
94
95         }
96
97         // Tests for getConfig API
98         @Test
99         public void getConfigUsingNoHeader() throws Exception {
100                 ConfigRequestParameters pep = new ConfigRequestParameters();
101                 pep.setPolicyName(".*");
102                 mockMvc.perform(
103                                 post("/getConfig").content(this.ObjectToJsonString(pep))
104                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
105                                 status().is(400));
106         }
107
108         @Test
109         public void getConfigUsingErrorHeader() throws Exception {
110                 ConfigRequestParameters pep = new ConfigRequestParameters();
111                 pep.setPolicyName(".*");
112                 mockMvc.perform(
113                                 post("/getConfig").header("X-ECOMP-RequestID", "Error123")
114                                                 .header("ClientAuth", "Basic bTAzNzQyOlBvbGljeVIwY2sk")
115                                                 .content(this.ObjectToJsonString(pep))
116                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
117                                 status().isOk());
118         }
119
120         @Test
121         public void getConfigEmptyEcompName() throws Exception {
122                 ConfigRequestParameters pep = new ConfigRequestParameters();
123                 pep.setEcompName("");
124                 mockMvc.perform(
125                                 post("/getConfig")
126                                                 .header("X-ECOMP-RequestID",
127                                                                 UUID.randomUUID().toString())
128                                                 .content(this.ObjectToJsonString(pep))
129                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
130                                 status().isBadRequest());
131         }
132
133         @Test
134         public void getConfigEmptyPolicyName() throws Exception {
135                 ConfigRequestParameters pep = new ConfigRequestParameters();
136                 pep.setPolicyName("");
137                 mockMvc.perform(
138                                 post("/getConfig")
139                                                 .header("X-ECOMP-RequestID",
140                                                                 UUID.randomUUID().toString())
141                                                 .content(this.ObjectToJsonString(pep))
142                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
143                                 status().isBadRequest());
144         }
145
146         @Test
147         public void getConfigUsingErrorPolicyName() throws Exception {
148                 ConfigRequestParameters pep = new ConfigRequestParameters();
149                 pep.setPolicyName("test");
150                 mockMvc.perform(
151                                 post("/getConfig")
152                                                 .header("X-ECOMP-RequestID",
153                                                                 UUID.randomUUID().toString())
154                                                 .content(this.ObjectToJsonString(pep))
155                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
156                                 status().isBadRequest());
157         }
158
159         @Test
160         public void getConfigUsingErrorEcompName() throws Exception {
161                 ConfigRequestParameters pep = new ConfigRequestParameters();
162                 pep.setEcompName("test");
163                 mockMvc.perform(
164                                 post("/getConfig")
165                                                 .header("X-ECOMP-RequestID",
166                                                                 UUID.randomUUID().toString())
167                                                 .content(this.ObjectToJsonString(pep))
168                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
169                                 status().isBadRequest());
170         }
171
172         @Test
173         public void getConfigUsingALLPolicyName() throws Exception {
174                 ConfigRequestParameters pep = new ConfigRequestParameters();
175                 pep.setPolicyName(".*");
176                 mockMvc.perform(
177                                 post("/getConfig")
178                                                 .header("X-ECOMP-RequestID",
179                                                                 UUID.randomUUID().toString())
180                                                 .header("ClientAuth", "Basic bTAzNzQyOlBvbGljeVIwY2sk")
181                                                 .content(this.ObjectToJsonString(pep))
182                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
183                                 status().isOk());
184         }
185
186         @Test
187         public void getConfigUsingNullPolicyName() throws Exception {
188                 ConfigRequestParameters pep = new ConfigRequestParameters();
189                 mockMvc.perform(
190                                 post("/getConfig")
191                                                 .header("X-ECOMP-RequestID",
192                                                                 UUID.randomUUID().toString())
193                                                 .content(this.ObjectToJsonString(pep))
194                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
195                                 status().isBadRequest());
196         }
197
198         @Test
199         public void getConfigUsingNullEcompName() throws Exception {
200                 ConfigRequestParameters pep = new ConfigRequestParameters();
201                 pep.setEcompName(null);
202                 mockMvc.perform(
203                                 post("/getConfig")
204                                                 .header("X-ECOMP-RequestID",
205                                                                 UUID.randomUUID().toString())
206                                                 .content(this.ObjectToJsonString(pep))
207                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
208                                 status().isBadRequest());
209         }
210
211         // Tests for GetConfigByPolicyName API
212         @Test
213         public void getConfigByPolicyNameUsingErrorHeader() throws Exception {
214                 PepConfigPolicyNameRequest pep = new PepConfigPolicyNameRequest();
215                 pep.setPolicyName(null);
216                 mockMvc.perform(
217                                 post("/getConfigByPolicyName")
218                                                 .header("X-ECOMP-RequestID", "ERROR123")
219                                                 .content(this.ObjectToJsonString(pep))
220                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
221                                 status().is(400));
222         }
223
224         @Test
225         public void getConfigByPolicyNameUsingNoHeader() throws Exception {
226                 PepConfigPolicyNameRequest pep = new PepConfigPolicyNameRequest();
227                 pep.setPolicyName(null);
228                 mockMvc.perform(
229                                 post("/getConfigByPolicyName").content(
230                                                 this.ObjectToJsonString(pep)).contentType(
231                                                 MediaType.APPLICATION_JSON)).andExpect(status().is(400));
232         }
233
234         @Test
235         public void getConfigByPolicyNameUsingEmptyPolicyName() throws Exception {
236                 PepConfigPolicyNameRequest pep = new PepConfigPolicyNameRequest();
237                 pep.setPolicyName("");
238                 mockMvc.perform(
239                                 post("/getConfigByPolicyName")
240                                                 .header("X-ECOMP-RequestID",
241                                                                 UUID.randomUUID().toString())
242                                                 .header("ClientAuth", "Basic bTAzNzQyOlBvbGljeVIwY2sk")
243                                                 .content(this.ObjectToJsonString(pep))
244                                                 .contentType(MediaType.APPLICATION_JSON))
245                                 .andExpect(status().isOk())
246                                 .andExpect(content().json(CONFIG_ERROR_MESSAGE));
247         }
248
249         @Test
250         public void getConfigByPolicyNameUsingNullPolicyName() throws Exception {
251                 PepConfigPolicyNameRequest pep = new PepConfigPolicyNameRequest();
252                 pep.setPolicyName(null);
253                 mockMvc.perform(
254                                 post("/getConfigByPolicyName")
255                                                 .header("X-ECOMP-RequestID",
256                                                                 UUID.randomUUID().toString())
257                                                 .header("ClientAuth", "Basic bTAzNzQyOlBvbGljeVIwY2sk")
258                                                 .content(this.ObjectToJsonString(pep))
259                                                 .contentType(MediaType.APPLICATION_JSON))
260                                 .andExpect(status().isOk())
261                                 .andExpect(content().json(CONFIG_ERROR_MESSAGE));
262         }
263
264         @Test
265         public void getConfigByPolicyNameUsingALLPolicyName() throws Exception {
266                 PepConfigPolicyNameRequest pep = new PepConfigPolicyNameRequest();
267                 pep.setPolicyName(".*");
268                 mockMvc.perform(
269                                 post("/getConfigByPolicyName")
270                                                 .header("X-ECOMP-RequestID",
271                                                                 UUID.randomUUID().toString())
272                                                 .header("ClientAuth", "Basic bTAzNzQyOlBvbGljeVIwY2sk")
273                                                 .content(this.ObjectToJsonString(pep))
274                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
275                                 status().isOk());
276         }
277
278         // Tests for SendEvent API
279         @Test
280         public void sendEventUsingNoHeader() throws Exception {
281                 EventRequestParameters pep = new EventRequestParameters();
282                 pep.setEventAttributes(null);
283                 mockMvc.perform(
284                                 post("/sendEvent").content(this.ObjectToJsonString(pep))
285                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
286                                 status().isBadRequest());
287         }
288
289         @Test
290         public void sendEventUsingErrorHeader() throws Exception {
291                 EventRequestParameters pep = new EventRequestParameters();
292                 pep.setEventAttributes(null);
293                 mockMvc.perform(
294                                 post("/sendEvent").header("X-ECOMP-RequestID", "ERROR123")
295                                                 .content(this.ObjectToJsonString(pep))
296                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
297                                 status().isBadRequest());
298         }
299
300         @Test
301         public void sendEventUsingNullEventAttributes() throws Exception {
302                 EventRequestParameters pep = new EventRequestParameters();
303                 pep.setEventAttributes(null);
304                 mockMvc.perform(
305                                 post("/sendEvent")
306                                                 .header("X-ECOMP-RequestID",
307                                                                 UUID.randomUUID().toString())
308                                                 .content(this.ObjectToJsonString(pep))
309                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
310                                 status().isBadRequest());
311         }
312
313         @Test
314         public void sendEventUsingEmptyEventAttributes() throws Exception {
315                 EventRequestParameters pep = new EventRequestParameters();
316                 Map<String, String> emptyMap = new HashMap<String, String>();
317                 pep.setEventAttributes(emptyMap);
318                 mockMvc.perform(
319                                 post("/sendEvent")
320                                                 .header("X-ECOMP-RequestID",
321                                                                 UUID.randomUUID().toString())
322                                                 .content(this.ObjectToJsonString(pep))
323                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
324                                 status().isBadRequest());
325         }
326
327         @Test
328         public void sendEventUsingErrorEventAttributes() throws Exception {
329                 EventRequestParameters pep = new EventRequestParameters();
330                 Map<String, String> eventMap = new HashMap<String, String>();
331                 eventMap.put("key", "value");
332                 pep.setEventAttributes(eventMap);
333                 mockMvc.perform(
334                                 post("/sendEvent")
335                                                 .header("X-ECOMP-RequestID",
336                                                                 UUID.randomUUID().toString())
337                                                 .content(this.ObjectToJsonString(pep))
338                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
339                                 status().isBadRequest());
340         }
341
342         // Tests for Push Policy API
343         @Test
344         public void pushPolicyUsingNoHeader() throws Exception {
345                 PepPushPolicyRequest pep = new PepPushPolicyRequest();
346                 mockMvc.perform(
347                                 put("/pushPolicy").content(this.ObjectToJsonString(pep))
348                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
349                                 status().isBadRequest());
350         }
351
352         @Test
353         public void pushPolicyUsingErrorHeader() throws Exception {
354                 PepPushPolicyRequest pep = new PepPushPolicyRequest();
355                 mockMvc.perform(
356                                 put("/pushPolicy").header("X-ECOMP-RequestID", "Error123")
357                                                 .content(this.ObjectToJsonString(pep))
358                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
359                                 status().isBadRequest());
360         }
361
362         @Test
363         public void pushPolicyUsingNullRequest() throws Exception {
364                 PepPushPolicyRequest pep = new PepPushPolicyRequest();
365                 mockMvc.perform(
366                                 put("/pushPolicy")
367                                                 .header("X-ECOMP-RequestID",
368                                                                 UUID.randomUUID().toString())
369                                                 .content(this.ObjectToJsonString(pep))
370                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
371                                 status().isBadRequest());
372         }
373
374         @Test
375         public void pushPolicyUsingNoScope() throws Exception {
376                 PepPushPolicyRequest pep = new PepPushPolicyRequest();
377                 pep.setPolicyName("Tarun");
378                 mockMvc.perform(
379                                 put("/pushPolicy")
380                                                 .header("X-ECOMP-RequestID",
381                                                                 UUID.randomUUID().toString())
382                                                 .content(this.ObjectToJsonString(pep))
383                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
384                                 status().isBadRequest());
385         }
386
387         @Test
388         public void pushPolicyUsingScopeinName() throws Exception {
389                 PepPushPolicyRequest pep = new PepPushPolicyRequest();
390                 pep.setPolicyName("Test.PolicyName");
391                 mockMvc.perform(
392                                 put("/pushPolicy")
393                                                 .header("X-ECOMP-RequestID",
394                                                                 UUID.randomUUID().toString())
395                                                 .content(this.ObjectToJsonString(pep))
396                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
397                                 status().isBadRequest());
398         }
399
400         @Test
401         public void pushPolicyUsingPolicyType() throws Exception {
402                 PepPushPolicyRequest pep = new PepPushPolicyRequest();
403                 pep.setPolicyName("Test.PolicyName");
404                 pep.setPolicyType("CONFIG BASE");
405                 mockMvc.perform(
406                                 put("/pushPolicy")
407                                                 .header("X-ECOMP-RequestID",
408                                                                 UUID.randomUUID().toString())
409                                                 .content(this.ObjectToJsonString(pep))
410                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
411                                 status().isBadRequest());
412         }
413
414         @Test
415         public void pushPolicyUsingErrorRequest() throws Exception {
416                 PepPushPolicyRequest pep = new PepPushPolicyRequest();
417                 pep.setPolicyName("Test.PolicyName");
418                 pep.setPolicyType("CONFIG BASE");
419                 pep.setPdpGroup("default");
420                 mockMvc.perform(
421                                 put("/pushPolicy")
422                                                 .header("X-ECOMP-RequestID",
423                                                                 UUID.randomUUID().toString())
424                                                 .content(this.ObjectToJsonString(pep))
425                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
426                                 status().isBadRequest());
427         }
428
429         // Tests for Delete Policy API
430         @Test
431         public void deletePolicyUsingNoHeader() throws Exception {
432                 DeletePolicyParameters pep = new DeletePolicyParameters();
433                 mockMvc.perform(
434                                 delete("/deletePolicy").content(this.ObjectToJsonString(pep))
435                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
436                                 status().isBadRequest());
437         }
438
439         @Test
440         public void deletePolicyUsingErrorHeader() throws Exception {
441                 DeletePolicyParameters pep = new DeletePolicyParameters();
442                 mockMvc.perform(
443                                 delete("/deletePolicy").header("X-ECOMP-RequestID", "ERROR123")
444                                                 .content(this.ObjectToJsonString(pep))
445                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
446                                 status().isBadRequest());
447         }
448
449         @Test
450         public void deletePolicyUsingErrorPolicyName() throws Exception {
451                 DeletePolicyParameters pep = new DeletePolicyParameters();
452                 pep.setPolicyName("test");
453                 mockMvc.perform(
454                                 delete("/deletePolicy")
455                                                 .header("X-ECOMP-RequestID",
456                                                                 UUID.randomUUID().toString())
457                                                 .content(this.ObjectToJsonString(pep))
458                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
459                                 status().isBadRequest());
460         }
461
462         @Test
463         public void deletePolicyUsingErrorPolicyComponent() throws Exception {
464                 DeletePolicyParameters pep = new DeletePolicyParameters();
465                 pep.setPolicyName("test");
466                 pep.setPolicyComponent("test");
467                 mockMvc.perform(
468                                 delete("/deletePolicy")
469                                                 .header("X-ECOMP-RequestID",
470                                                                 UUID.randomUUID().toString())
471                                                 .content(this.ObjectToJsonString(pep))
472                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
473                                 status().isBadRequest());
474         }
475
476         // Tests for CreatePolicy API
477         @Test
478         public void createPolicyUsingNoHeader() throws Exception {
479                 PolicyParameters pep = new PolicyParameters();
480                 pep.setPolicyName("test");
481                 mockMvc.perform(
482                                 put("/createPolicy").content(this.ObjectToJsonString(pep))
483                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
484                                 status().isBadRequest());
485         }
486
487         @Test
488         public void createPolicyUsingErrorHeader() throws Exception {
489                 PolicyParameters pep = new PolicyParameters();
490                 pep.setPolicyName("test");
491                 mockMvc.perform(
492                                 put("/createPolicy").content(this.ObjectToJsonString(pep))
493                                                 .header("X-ECOMP-RequestID", "Error123")
494                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
495                                 status().isBadRequest());
496         }
497
498         @Test
499         public void createPolicyUsingNullParameters() throws Exception {
500                 PolicyParameters pep = new PolicyParameters();
501                 mockMvc.perform(
502                                 put("/createPolicy")
503                                                 .content(this.ObjectToJsonString(pep))
504                                                 .header("X-ECOMP-RequestID",
505                                                                 UUID.randomUUID().toString())
506                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
507                                 status().isBadRequest());
508         }
509
510         @Test
511         public void createPolicyUsingEmptyPolicyName() throws Exception {
512                 PolicyParameters pep = new PolicyParameters();
513                 pep.setPolicyName("");
514                 mockMvc.perform(
515                                 put("/createPolicy")
516                                                 .content(this.ObjectToJsonString(pep))
517                                                 .header("X-ECOMP-RequestID",
518                                                                 UUID.randomUUID().toString())
519                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
520                                 status().isBadRequest());
521         }
522
523         // Tests for UpdatePolicy API
524         @Test
525         public void updatePolicyUsingNoHeader() throws Exception {
526                 PolicyParameters pep = new PolicyParameters();
527                 pep.setPolicyName("test");
528                 mockMvc.perform(
529                                 put("/updatePolicy").content(this.ObjectToJsonString(pep))
530                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
531                                 status().isBadRequest());
532         }
533
534         @Test
535         public void updatePolicyUsingErrorHeader() throws Exception {
536                 PolicyParameters pep = new PolicyParameters();
537                 pep.setPolicyName("test");
538                 mockMvc.perform(
539                                 put("/updatePolicy").content(this.ObjectToJsonString(pep))
540                                                 .header("X-ECOMP-RequestID", "Error123")
541                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
542                                 status().isBadRequest());
543         }
544
545         @Test
546         public void updatePolicyUsingNullParameters() throws Exception {
547                 PolicyParameters pep = new PolicyParameters();
548                 mockMvc.perform(
549                                 put("/updatePolicy")
550                                                 .content(this.ObjectToJsonString(pep))
551                                                 .header("X-ECOMP-RequestID",
552                                                                 UUID.randomUUID().toString())
553                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
554                                 status().isBadRequest());
555         }
556
557         @Test
558         public void updatePolicyUsingEmptyPolicyName() throws Exception {
559                 PolicyParameters pep = new PolicyParameters();
560                 pep.setPolicyName("");
561                 mockMvc.perform(
562                                 put("/updatePolicy")
563                                                 .content(this.ObjectToJsonString(pep))
564                                                 .header("X-ECOMP-RequestID",
565                                                                 UUID.randomUUID().toString())
566                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
567                                 status().isBadRequest());
568         }
569
570         // Tests for createConfig API
571         @Test
572         public void createConfigUsingNoHeader() throws Exception {
573                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
574                 pep.setPolicyName("test");
575                 mockMvc.perform(
576                                 put("/createConfig").content(this.ObjectToJsonString(pep))
577                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
578                                 status().isBadRequest());
579         }
580
581         @Test
582         public void createConfigUsingErrorHeader() throws Exception {
583                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
584                 pep.setPolicyName("test");
585                 mockMvc.perform(
586                                 put("/createConfig").content(this.ObjectToJsonString(pep))
587                                                 .header("X-ECOMP-RequestID", "Error123")
588                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
589                                 status().isBadRequest());
590         }
591
592         @Test
593         public void createConfigUsingNullParameters() throws Exception {
594                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
595                 mockMvc.perform(
596                                 put("/createConfig")
597                                                 .content(this.ObjectToJsonString(pep))
598                                                 .header("X-ECOMP-RequestID",
599                                                                 UUID.randomUUID().toString())
600                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
601                                 status().isBadRequest());
602         }
603
604         @Test
605         public void createConfigUsingEmptyPolicyName() throws Exception {
606                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
607                 pep.setPolicyName("");
608                 mockMvc.perform(
609                                 put("/createConfig")
610                                                 .content(this.ObjectToJsonString(pep))
611                                                 .header("X-ECOMP-RequestID",
612                                                                 UUID.randomUUID().toString())
613                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
614                                 status().isBadRequest());
615         }
616
617         @Test
618         public void createConfigUsingEmptyConfigName() throws Exception {
619                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
620                 pep.setPolicyName("test");
621                 pep.setEcompName("ecomp");
622                 mockMvc.perform(
623                                 put("/createConfig")
624                                                 .content(this.ObjectToJsonString(pep))
625                                                 .header("X-ECOMP-RequestID",
626                                                                 UUID.randomUUID().toString())
627                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
628                                 status().isBadRequest());
629         }
630
631         @Test
632         public void createConfigUsingEmptyPolicyScope() throws Exception {
633                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
634                 pep.setPolicyName("test");
635                 pep.setEcompName("ecomp");
636                 pep.setConfigName("config");
637                 mockMvc.perform(
638                                 put("/createConfig")
639                                                 .content(this.ObjectToJsonString(pep))
640                                                 .header("X-ECOMP-RequestID",
641                                                                 UUID.randomUUID().toString())
642                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
643                                 status().isBadRequest());
644         }
645
646         @Test
647         public void createConfigUsingErrorPolicyScope() throws Exception {
648                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
649                 pep.setPolicyName("test");
650                 pep.setEcompName("ecomp");
651                 pep.setConfigName("config");
652                 pep.setPolicyScope("test");
653                 mockMvc.perform(
654                                 put("/createConfig")
655                                                 .content(this.ObjectToJsonString(pep))
656                                                 .header("X-ECOMP-RequestID",
657                                                                 UUID.randomUUID().toString())
658                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
659                                 status().isBadRequest());
660         }
661
662         // Test API for updateConfig API
663         @Test
664         public void updateConfigUsingNoHeader() throws Exception {
665                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
666                 pep.setPolicyName("test");
667                 mockMvc.perform(
668                                 put("/updateConfig").content(this.ObjectToJsonString(pep))
669                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
670                                 status().isBadRequest());
671         }
672
673         @Test
674         public void updateConfigUsingErrorHeader() throws Exception {
675                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
676                 pep.setPolicyName("test");
677                 mockMvc.perform(
678                                 put("/updateConfig").content(this.ObjectToJsonString(pep))
679                                                 .header("X-ECOMP-RequestID", "Error123")
680                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
681                                 status().isBadRequest());
682         }
683
684         @Test
685         public void updateConfigUsingNullParameters() throws Exception {
686                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
687                 mockMvc.perform(
688                                 put("/updateConfig")
689                                                 .content(this.ObjectToJsonString(pep))
690                                                 .header("X-ECOMP-RequestID",
691                                                                 UUID.randomUUID().toString())
692                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
693                                 status().isBadRequest());
694         }
695
696         @Test
697         public void updateConfigUsingEmptyPolicyName() throws Exception {
698                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
699                 pep.setPolicyName("");
700                 mockMvc.perform(
701                                 put("/updateConfig")
702                                                 .content(this.ObjectToJsonString(pep))
703                                                 .header("X-ECOMP-RequestID",
704                                                                 UUID.randomUUID().toString())
705                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
706                                 status().isBadRequest());
707         }
708
709         @Test
710         public void updateConfigUsingEmptyConfigName() throws Exception {
711                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
712                 pep.setPolicyName("test");
713                 pep.setEcompName("ecomp");
714                 mockMvc.perform(
715                                 put("/updateConfig")
716                                                 .content(this.ObjectToJsonString(pep))
717                                                 .header("X-ECOMP-RequestID",
718                                                                 UUID.randomUUID().toString())
719                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
720                                 status().isBadRequest());
721         }
722
723         @Test
724         public void updateConfigUsingEmptyPolicyScope() throws Exception {
725                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
726                 pep.setPolicyName("test");
727                 pep.setEcompName("ecomp");
728                 pep.setConfigName("config");
729                 mockMvc.perform(
730                                 put("/updateConfig")
731                                                 .content(this.ObjectToJsonString(pep))
732                                                 .header("X-ECOMP-RequestID",
733                                                                 UUID.randomUUID().toString())
734                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
735                                 status().isBadRequest());
736         }
737
738         @Test
739         public void updateConfigUsingErrorPolicyScope() throws Exception {
740                 PepConfigPolicyRequest pep = new PepConfigPolicyRequest();
741                 pep.setPolicyName("test");
742                 pep.setEcompName("ecomp");
743                 pep.setConfigName("config");
744                 pep.setPolicyScope("test");
745                 mockMvc.perform(
746                                 put("/updateConfig")
747                                                 .content(this.ObjectToJsonString(pep))
748                                                 .header("X-ECOMP-RequestID",
749                                                                 UUID.randomUUID().toString())
750                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
751                                 status().isBadRequest());
752         }
753
754         // Tests for createFirewallConfig API
755         @Test
756         public void createFirewallConfigUsingNoHeader() throws Exception {
757                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
758                 pep.setPolicyName("test");
759                 mockMvc.perform(
760                                 put("/createFirewallConfig").content(
761                                                 this.ObjectToJsonString(pep)).contentType(
762                                                 MediaType.APPLICATION_JSON)).andExpect(
763                                 status().isBadRequest());
764         }
765
766         @Test
767         public void createFirewallConfigUsingErrorHeader() throws Exception {
768                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
769                 pep.setPolicyName("test");
770                 mockMvc.perform(
771                                 put("/createFirewallConfig")
772                                                 .header("X-ECOMP-RequestID", "Error123")
773                                                 .content(this.ObjectToJsonString(pep))
774                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
775                                 status().isBadRequest());
776         }
777
778         @Test
779         public void createFirewallConfigUsingNullParameters() throws Exception {
780                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
781                 mockMvc.perform(
782                                 put("/createFirewallConfig")
783                                                 .header("X-ECOMP-RequestID",
784                                                                 UUID.randomUUID().toString())
785                                                 .content(this.ObjectToJsonString(pep))
786                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
787                                 status().isBadRequest());
788         }
789
790         @Test
791         public void createFirewallConfigUsingEmptyPolicyName() throws Exception {
792                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
793                 pep.setPolicyName("");
794                 mockMvc.perform(
795                                 put("/createFirewallConfig")
796                                                 .header("X-ECOMP-RequestID",
797                                                                 UUID.randomUUID().toString())
798                                                 .content(this.ObjectToJsonString(pep))
799                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
800                                 status().isBadRequest());
801         }
802
803         @Test
804         public void createFirewallConfigUsingEmptyPolicyScope() throws Exception {
805                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
806                 pep.setPolicyName("test");
807                 pep.setFirewallJson(VALID_JSON);
808                 pep.setPolicyScope("");
809                 mockMvc.perform(
810                                 put("/createFirewallConfig")
811                                                 .header("X-ECOMP-RequestID",
812                                                                 UUID.randomUUID().toString())
813                                                 .content(this.ObjectToJsonString(pep))
814                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
815                                 status().isBadRequest());
816         }
817
818         @Test
819         public void createFirewallConfigUsingInValidJSON() throws Exception {
820                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
821                 pep.setPolicyName("test");
822                 pep.setFirewallJson(INVALID_JSON);
823                 pep.setPolicyScope("test");
824                 mockMvc.perform(
825                                 put("/createFirewallConfig")
826                                                 .header("X-ECOMP-RequestID",
827                                                                 UUID.randomUUID().toString())
828                                                 .content(this.ObjectToJsonString(pep))
829                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
830                                 status().isBadRequest());
831         }
832
833         @Test
834         public void createFirewallConfigUsingValidJSON() throws Exception {
835                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
836                 pep.setPolicyName("test");
837                 pep.setFirewallJson(VALID_JSON);
838                 pep.setPolicyScope("test");
839                 mockMvc.perform(
840                                 put("/createFirewallConfig")
841                                                 .header("X-ECOMP-RequestID",
842                                                                 UUID.randomUUID().toString())
843                                                 .header("ClientAuth", "Basic bTAzNzQyOlBvbGljeVIwY2sk")
844                                                 .content(this.ObjectToJsonString(pep))
845                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
846                                 status().isOk());
847         }
848
849         // Tests for updateFirewallConfig API 
850         @Test
851         public void updateFirewallConfigUsingNoHeader() throws Exception {
852                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
853                 pep.setPolicyName("test");
854                 mockMvc.perform(
855                                 put("/updateFirewallConfig").content(
856                                                 this.ObjectToJsonString(pep)).contentType(
857                                                 MediaType.APPLICATION_JSON)).andExpect(
858                                 status().isBadRequest());
859         }
860
861         @Test
862         public void updateFirewallConfigUsingErrorHeader() throws Exception {
863                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
864                 pep.setPolicyName("test");
865                 mockMvc.perform(
866                                 put("/updateFirewallConfig")
867                                                 .header("X-ECOMP-RequestID", "Error123")
868                                                 .content(this.ObjectToJsonString(pep))
869                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
870                                 status().isBadRequest());
871         }
872
873         @Test
874         public void updateFirewallConfigUsingNullParameters() throws Exception {
875                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
876                 mockMvc.perform(
877                                 put("/updateFirewallConfig")
878                                                 .header("X-ECOMP-RequestID",
879                                                                 UUID.randomUUID().toString())
880                                                 .content(this.ObjectToJsonString(pep))
881                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
882                                 status().isBadRequest());
883         }
884
885         @Test
886         public void updateFirewallConfigUsingEmptyPolicyName() throws Exception {
887                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
888                 pep.setPolicyName("");
889                 mockMvc.perform(
890                                 put("/updateFirewallConfig")
891                                                 .header("X-ECOMP-RequestID",
892                                                                 UUID.randomUUID().toString())
893                                                 .content(this.ObjectToJsonString(pep))
894                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
895                                 status().isBadRequest());
896         }
897
898         @Test
899         public void updateFirewallConfigUsingEmptyPolicyScope() throws Exception {
900                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
901                 pep.setPolicyName("test");
902                 pep.setFirewallJson(VALID_JSON);
903                 pep.setPolicyScope("");
904                 mockMvc.perform(
905                                 put("/updateFirewallConfig")
906                                                 .header("X-ECOMP-RequestID",
907                                                                 UUID.randomUUID().toString())
908                                                 .content(this.ObjectToJsonString(pep))
909                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
910                                 status().isBadRequest());
911         }
912
913         @Test
914         public void updateFirewallConfigUsingInValidJSON() throws Exception {
915                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
916                 pep.setPolicyName("test");
917                 pep.setFirewallJson(INVALID_JSON);
918                 pep.setPolicyScope("test");
919                 mockMvc.perform(
920                                 put("/updateFirewallConfig")
921                                                 .header("X-ECOMP-RequestID",
922                                                                 UUID.randomUUID().toString())
923                                                 .content(this.ObjectToJsonString(pep))
924                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
925                                 status().isBadRequest());
926         }
927
928         @Test
929         public void updateFirewallConfigUsingValidJSON() throws Exception {
930                 PepConfigFirewallPolicyRequest pep = new PepConfigFirewallPolicyRequest();
931                 pep.setPolicyName("test");
932                 pep.setFirewallJson(VALID_JSON);
933                 pep.setPolicyScope("test");
934                 mockMvc.perform(
935                                 put("/updateFirewallConfig")
936                                                 .header("X-ECOMP-RequestID",
937                                                                 UUID.randomUUID().toString())
938                                                 .header("ClientAuth", "Basic bTAzNzQyOlBvbGljeVIwY2sk")
939                                                 .content(this.ObjectToJsonString(pep))
940                                                 .contentType(MediaType.APPLICATION_JSON)).andExpect(
941                                 status().isOk());
942         }
943         
944         //Health Check Tests
945         @Test
946         public void getCountTest() throws Exception {
947                 mockMvc.perform(get("/count"))
948                 .andExpect(status().isOk());
949         }
950         
951         @Test
952         public void getPDPsTest() throws Exception {
953                 mockMvc.perform(get("/pdps"))
954                 .andExpect(status().isOk());
955         }
956         
957         @Test
958         public void getPAPsTest() throws Exception {
959                 mockMvc.perform(get("/paps"))
960                 .andExpect(status().isOk());
961         }
962         
963         // Helper Method to create JSONString from a given Object.
964         public String ObjectToJsonString(Object o) throws IOException {
965                 ObjectMapper mapper = new ObjectMapper();
966                 return mapper.writeValueAsString(o);
967         }
968
969 }