summaryrefslogtreecommitdiffstats
path: root/ECOMP-PDP-REST/src/test/java/org/openecomp
diff options
context:
space:
mode:
authorTarun Tej Velaga <tt3868@att.com>2017-07-24 17:13:43 +0000
committerTarun Tej Velaga <tt3868@att.com>2017-07-25 14:23:59 +0000
commite92ff832cf993db876f22b2d27562fedf59f5043 (patch)
tree47429eeaaf4241905d7ea1f71dbdb5c2d0504618 /ECOMP-PDP-REST/src/test/java/org/openecomp
parent570290dc6ba8198e653022c2f6f8e5d01cfa8d1b (diff)
[Policy-52, Policy-92, Policy-93] Policy Enhancements and bugfixes
Change-Id: I5675cf4527e17963b3142cf7184c0df31a766197 Signed-off-by: Tarun Tej Velaga <tt3868@att.com>
Diffstat (limited to 'ECOMP-PDP-REST/src/test/java/org/openecomp')
-rw-r--r--ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/XACMLPdpServletTest.java1
-rw-r--r--ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/services/PDPServicesTest.java194
-rw-r--r--ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/NotificationAPITest.java87
-rw-r--r--ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/PolicyEngineServicesTest.java832
-rw-r--r--ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/getConfigTest.java70
-rw-r--r--ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/getDictionaryTest.java231
-rw-r--r--ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/auth/test/FilterTests.java199
7 files changed, 1613 insertions, 1 deletions
diff --git a/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/XACMLPdpServletTest.java b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/XACMLPdpServletTest.java
index 581abbe08..e0d2f18c1 100644
--- a/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/XACMLPdpServletTest.java
+++ b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/XACMLPdpServletTest.java
@@ -95,7 +95,6 @@ public class XACMLPdpServletTest extends TestCase{
System.setProperty("xacml.properties", "xacml.pdp.properties");
System.setProperty("xacml.rest.pdp.config", "config_testing");
- System.setProperty("xacml.rest.pep.idfile", "testclient.properties");
System.setProperty("xacml.rest.pdp.webapps", "/webapps");
System.setProperty("xacml.rootPolicies", "test_PolicyEngine.xml");
System.setProperty("xacml.referencedPolicies", "test_PolicyEngine.xml");
diff --git a/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/services/PDPServicesTest.java b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/services/PDPServicesTest.java
new file mode 100644
index 000000000..fd20e3162
--- /dev/null
+++ b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/services/PDPServicesTest.java
@@ -0,0 +1,194 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ECOMP-PDP-REST
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.openecomp.policy.pdp.rest.api.services;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+import java.util.Map.Entry;
+
+import javax.json.Json;
+import javax.json.JsonArrayBuilder;
+import javax.json.JsonObject;
+import javax.json.JsonObjectBuilder;
+
+import org.junit.*;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+import org.openecomp.policy.api.DecisionRequestParameters;
+import org.openecomp.policy.api.PolicyDecisionException;
+import org.openecomp.policy.pdp.rest.api.models.PDPResponse;
+import org.openecomp.policy.pdp.rest.config.PDPRestConfig;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(classes = {PDPRestConfig.class})
+@WebAppConfiguration
+public class PDPServicesTest {
+ /**
+ * Run the PDPServices() constructor test.
+ *
+ * @generatedBy CodePro at 7/20/17 9:26 AM
+ */
+ @Test
+ public void testPDPServices_1()
+ throws Exception {
+ PDPServices result = new PDPServices();
+ assertNotNull(result);
+ // add additional test code here
+ }
+
+ /**
+ * Run the Collection<PDPResponse> generateRequest(String,UUID,boolean,boolean) method test.
+ *
+ * @throws Exception
+ *
+ * @generatedBy CodePro at 7/20/17 9:26 AM
+ */
+ @Test
+ public void testGenerateRequest_1()
+ throws Exception {
+ DecisionRequestParameters pep = new DecisionRequestParameters();
+ Map<String,String> eventAttributes = new HashMap<>();
+ eventAttributes.put("TEST", "test");
+ pep.setECOMPComponentName("te123");
+ pep.setDecisionAttributes(eventAttributes);
+ PDPServices fixture = new PDPServices();
+
+ //Failure Tests.
+ String jsonString = getModel(pep).toString();
+ UUID requestID = UUID.randomUUID();
+
+ Collection<PDPResponse> result = fixture.generateRequest(jsonString, requestID, false, true);
+
+ // add additional test code here
+ // An unexpected exception was thrown in user code while executing this test:
+ // java.lang.NoClassDefFoundError: Could not initialize class org.openecomp.policy.pdp.rest.api.services.PDPServices
+ assertNotNull(result);
+
+ }
+
+ private JsonObject getModel(DecisionRequestParameters pep) throws PolicyDecisionException{
+ JsonArrayBuilder resourceArray = Json.createArrayBuilder();
+
+ Map<String, String> decisionAttributes = pep.getDecisionAttributes();
+ for (Entry<String,String> key : decisionAttributes.entrySet()) {
+ JsonObjectBuilder resourceBuilder = Json.createObjectBuilder();
+ if (key.getValue().matches("[0-9]+")) {
+
+ if ((key.getKey().equals("ErrorCode")) || (key.getKey().equals("WorkStep"))) {
+
+ resourceBuilder.add("Value", key.getValue());
+
+ } else {
+
+ int val = Integer.parseInt(key.getValue());
+ resourceBuilder.add("Value", val);
+
+ }
+
+ } else {
+ resourceBuilder.add("Value", key.getValue());
+ }
+ resourceBuilder.add("AttributeId", key.getKey());
+ resourceArray.add(resourceBuilder);
+ }
+ return Json.createObjectBuilder()
+ .add("Request", Json.createObjectBuilder()
+ .add("AccessSubject", Json.createObjectBuilder()
+ .add("Attribute", Json.createObjectBuilder()
+ .add("Value", pep.getECOMPComponentName())
+ .add("AttributeId", "ECOMPName")))
+ .add("Resource", Json.createObjectBuilder()
+ .add("Attribute", resourceArray))
+ .add("Action", Json.createObjectBuilder()
+ .add("Attribute", Json.createObjectBuilder()
+ .add("Value", "DECIDE")
+ .add("AttributeId", "urn:oasis:names:tc:xacml:1.0:action:action-id"))))
+ .build();
+ }
+
+ /**
+ * Run the Collection<PDPResponse> generateRequest(String,UUID,boolean,boolean) method test.
+ *
+ * @throws Exception
+ *
+ * @generatedBy CodePro at 7/20/17 9:26 AM
+ */
+ @Test(expected = org.openecomp.policy.api.PolicyException.class)
+ public void testGenerateRequest_2()
+ throws Exception {
+ PDPServices fixture = new PDPServices();
+ fixture.generateRequest("", UUID.randomUUID(), true, true);
+ String jsonString = "";
+ UUID requestID = UUID.randomUUID();
+ boolean unique = true;
+ boolean decide = true;
+
+ Collection<PDPResponse> result = fixture.generateRequest(jsonString, requestID, unique, decide);
+
+ // add additional test code here
+ assertNotNull(result);
+ }
+
+ /**
+ * Perform pre-test initialization.
+ *
+ * @throws Exception
+ * if the initialization fails for some reason
+ *
+ * @generatedBy CodePro at 7/20/17 9:26 AM
+ */
+ @Before
+ public void setUp()
+ throws Exception {
+ // add additional set up code here
+ }
+
+ /**
+ * Perform post-test clean-up.
+ *
+ * @throws Exception
+ * if the clean-up fails for some reason
+ *
+ * @generatedBy CodePro at 7/20/17 9:26 AM
+ */
+ @After
+ public void tearDown()
+ throws Exception {
+ // Add additional tear down code here
+ }
+
+ /**
+ * Launch the test.
+ *
+ * @param args the command line arguments
+ *
+ * @generatedBy CodePro at 7/20/17 9:26 AM
+ */
+ public static void main(String[] args) {
+ new org.junit.runner.JUnitCore().run(PDPServicesTest.class);
+ }
+} \ No newline at end of file
diff --git a/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/NotificationAPITest.java b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/NotificationAPITest.java
new file mode 100644
index 000000000..8d6cf8945
--- /dev/null
+++ b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/NotificationAPITest.java
@@ -0,0 +1,87 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ECOMP-PDP-REST
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.openecomp.policy.pdp.rest.api.test;
+
+import static org.awaitility.Awaitility.await;
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.policy.pdp.rest.api.services.NotificationService;
+import org.openecomp.policy.pdp.rest.api.services.NotificationService.NotificationServiceType;
+import org.openecomp.policy.xacml.api.XACMLErrorConstants;
+import org.springframework.http.HttpStatus;
+
+import com.att.research.xacml.util.XACMLProperties;
+
+public class NotificationAPITest {
+
+ @Before
+ public void setup() throws IOException{
+ // Fix properties for next test cases.
+ XACMLProperties.reloadProperties();
+ System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "src/test/resources/pass.xacml.pdp.properties");
+ XACMLProperties.getProperties();
+ }
+
+ @Test
+ public void testPropertyFailure() throws IOException{
+ // Change properties and fail.
+ XACMLProperties.reloadProperties();
+ System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "src/test/resources/fail.xacml.pdp.properties");
+ XACMLProperties.getProperties();
+ NotificationService notificationService = new NotificationService(null,null,null);
+ assertEquals(HttpStatus.BAD_REQUEST, notificationService.getResponseCode());
+ setup();
+ }
+
+ @Test
+ public void testFailureTopicName(){
+ NotificationService notificationService = new NotificationService(null,null,null);
+ assertEquals(HttpStatus.BAD_REQUEST, notificationService.getResponseCode());
+ assertEquals(XACMLErrorConstants.ERROR_DATA_ISSUE + "org.openecomp.policy.api.PolicyException: Notification Topic is null", notificationService.getResult());
+ notificationService = new NotificationService(" ",null,null);
+ assertEquals(HttpStatus.BAD_REQUEST, notificationService.getResponseCode());
+ assertEquals(XACMLErrorConstants.ERROR_DATA_ISSUE + "org.openecomp.policy.api.PolicyException: Notification Topic is not valid. ", notificationService.getResult());
+ }
+
+ @Test
+ public void testFailureServiceType(){
+ NotificationService notificationService = new NotificationService("test",null,null);
+ assertEquals(HttpStatus.BAD_REQUEST, notificationService.getResponseCode());
+ }
+
+ @Test
+ public void threadTest() throws InterruptedException{
+ NotificationService notificationSerivce = new NotificationService("test",null,NotificationServiceType.ADD);
+ assertEquals(HttpStatus.OK, notificationSerivce.getResponseCode());
+ // Wait for thread to remove the Topic Entry.
+ await().atMost(Integer.toUnsignedLong(2500),TimeUnit.MILLISECONDS).until(()-> {
+ // Trying to remove again should fail
+ NotificationService nService = new NotificationService("test",null,NotificationServiceType.REMOVE);
+ return HttpStatus.BAD_REQUEST.equals(nService.getResponseCode());
+ });
+ // Coverage Tests, Call Notification Service.
+ NotificationService.sendNotification("test");
+ }
+}
diff --git a/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/PolicyEngineServicesTest.java b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/PolicyEngineServicesTest.java
new file mode 100644
index 000000000..eb514a8f5
--- /dev/null
+++ b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/PolicyEngineServicesTest.java
@@ -0,0 +1,832 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ECOMP-PDP-REST
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.openecomp.policy.pdp.rest.api.test;
+
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.openecomp.policy.api.AttributeType;
+import org.openecomp.policy.api.ConfigRequestParameters;
+import org.openecomp.policy.api.DecisionRequestParameters;
+import org.openecomp.policy.api.DeletePolicyCondition;
+import org.openecomp.policy.api.DeletePolicyParameters;
+import org.openecomp.policy.api.DictionaryParameters;
+import org.openecomp.policy.api.DictionaryType;
+import org.openecomp.policy.api.EventRequestParameters;
+import org.openecomp.policy.api.PolicyClass;
+import org.openecomp.policy.api.PolicyConfigType;
+import org.openecomp.policy.api.PolicyParameters;
+import org.openecomp.policy.api.PolicyType;
+import org.openecomp.policy.api.PushPolicyParameters;
+import org.openecomp.policy.pdp.rest.XACMLPdpServlet;
+import org.openecomp.policy.pdp.rest.api.models.ConfigFirewallPolicyAPIRequest;
+import org.openecomp.policy.pdp.rest.api.models.ConfigNameRequest;
+import org.openecomp.policy.pdp.rest.api.models.ConfigPolicyAPIRequest;
+import org.openecomp.policy.pdp.rest.api.services.CreateUpdatePolicyServiceImpl;
+import org.openecomp.policy.pdp.rest.config.PDPRestConfig;
+import org.openecomp.policy.utils.PolicyUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.web.context.WebApplicationContext;
+
+import com.att.research.xacml.util.XACMLProperties;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(classes = {PDPRestConfig.class})
+@WebAppConfiguration
+public class PolicyEngineServicesTest {
+ private static final String CLIENTAUTHHEADER = "ClientAuth";
+ private static final String UUIDHEADER = "X-ECOMP-RequestID";
+ // This value is as per test resource code. Don't change this.
+ private static final String CLIENTAUTHVALUE = "Basic cHl0aG9uOnRlc3Q=";
+ private static final String ERRORCLIENTVALUE = "Basic dGVzdDp0ZXN0MTIz";
+
+ private MockMvc mockMvc;
+ private HttpHeaders headers;
+
+ @Autowired
+ private WebApplicationContext webApplicationContext;
+
+ @Before()
+ public void setup() throws IOException{
+ headers = new HttpHeaders();
+ headers.add(CLIENTAUTHHEADER, CLIENTAUTHVALUE);
+ XACMLProperties.reloadProperties();
+ System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "src/test/resources/pass.xacml.pdp.properties");
+ XACMLProperties.getProperties();
+ this.mockMvc = webAppContextSetup(webApplicationContext).build();
+ }
+
+ @Test
+ public void getConfigAPIFailureTest() throws Exception{
+ ConfigRequestParameters pep = new ConfigRequestParameters();
+ pep.setPolicyName(".*");
+ mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON))
+ .andExpect(status().is(400));
+ // Authorization tests.
+ mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, ""))
+ .andExpect(status().isUnauthorized());
+ mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123"))
+ .andExpect(status().isUnauthorized());
+ mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, ERRORCLIENTVALUE))
+ .andExpect(status().isUnauthorized());
+ // Set wrong request.
+ pep.setPolicyName(null);
+ pep.setConfigName("test");
+ mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers).header(UUIDHEADER, "123").contentType(MediaType.APPLICATION_JSON))
+ .andExpect(status().isBadRequest());
+ }
+
+ @Test
+ public void getConfigServiceTest() throws Exception{
+ ConfigRequestParameters pep = new ConfigRequestParameters();
+ pep.setPolicyName(".*");
+ mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers).header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
+ .andExpect(status().isOk());
+ // Without policyName and using ecompName and other fields.
+ pep.setPolicyName(null);
+ pep.setEcompName("test");
+ pep.setConfigName("test");
+ mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers).contentType(MediaType.APPLICATION_JSON))
+ .andExpect(status().isOk());
+ // with config attributes.
+ Map<String, String> configAttributes = new HashMap<>();
+ configAttributes.put("test", "test");
+ pep.setConfigAttributes(configAttributes);
+ pep.makeUnique(true);
+ mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers).contentType(MediaType.APPLICATION_JSON))
+ .andExpect(status().isOk());
+ }
+
+ @Test
+ public void getConfigByPolicyNameTest() throws Exception{
+ ConfigNameRequest pep = new ConfigNameRequest();
+ pep.setPolicyName(".*");
+ mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON))
+ .andExpect(status().is(400));
+ // Authorization tests.
+ mockMvc.perform(post("/getConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, ""))
+ .andExpect(status().isUnauthorized());
+ mockMvc.perform(post("/getConfigByPolicyName").content(PolicyUtils.objectToJsonString(pep)).headers(headers).header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
+ .andExpect(status().isOk());
+ }
+
+ @Test
+ public void listConfigTest() throws Exception{
+ ConfigRequestParameters pep = new ConfigRequestParameters();
+ pep.setPolicyName(".*");
+ mockMvc.perform(post("/listConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON))
+ .andExpect(status().is(400));
+ // Authorization tests.
+ mockMvc.perform(post("/listConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, ""))
+ .andExpect(status().isUnauthorized());
+ mockMvc.perform(post("/listConfig").content(PolicyUtils.objectToJsonString(pep)).headers(headers).header(UUIDHEADER, UUID.randomUUID()).contentType(MediaType.APPLICATION_JSON))
+ .andExpect(status().isOk());
+ }
+
+ @Test
+ public void getMetricsTest() throws Exception{
+ //Failure Tests.
+ mockMvc.perform(get("/getMetrics")).andExpect(status().isBadRequest());
+ mockMvc.perform(get("/getMetrics").header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ //Service Tests.
+ mockMvc.perform(get("/getMetrics").headers(headers).header(UUIDHEADER, "123")).andExpect(status().isOk());
+ mockMvc.perform(get("/getMetrics").headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isOk());
+ mockMvc.perform(get("/getMetrics").headers(headers)).andExpect(status().isOk());
+ }
+
+ @Test
+ public void getNotificationAuthFailureTest() throws Exception{
+ mockMvc.perform(post("/getNotification").header(CLIENTAUTHHEADER, "").content("test")).andExpect(status().isUnauthorized());
+ mockMvc.perform(post("/getNotification").header(CLIENTAUTHHEADER, "Basic test123").content("test")).andExpect(status().isUnauthorized());
+ mockMvc.perform(post("/getNotification").header(CLIENTAUTHHEADER, ERRORCLIENTVALUE).content(" ")).andExpect(status().isUnauthorized());
+ }
+
+ @Test
+ public void getNotificationTopicFailureTest() throws Exception{
+ mockMvc.perform(post("/getNotification")).andExpect(status().isBadRequest());
+ mockMvc.perform(post("/getNotification").headers(headers).content("")).andExpect(status().isBadRequest());
+ }
+
+ @Test
+ public void getNotificationTopicValidFailTest() throws Exception{
+ // Check failures.
+ mockMvc.perform(post("/getNotification").headers(headers).content(" ")).andExpect(status().isBadRequest());
+ mockMvc.perform(post("/stopNotification").headers(headers).content(" ")).andExpect(status().isBadRequest());
+ mockMvc.perform(post("/sendHeartbeat").headers(headers).content(" ")).andExpect(status().isBadRequest());
+ }
+
+ @Test
+ public void getNotificationTopicValidPassTest() throws Exception{
+ // Add a Topic.
+ mockMvc.perform(post("/getNotification").headers(headers).header(UUIDHEADER, "123").content("test")).andExpect(status().isOk());
+ // Try to add same topic should fail.
+ mockMvc.perform(post("/getNotification").headers(headers).header(UUIDHEADER, UUID.randomUUID()).content("test")).andExpect(status().isBadRequest());
+ // do a heart beat.
+ mockMvc.perform(post("/sendHeartbeat").headers(headers).content("test")).andExpect(status().isOk());
+ // remove the added Topic.
+ mockMvc.perform(post("/stopNotification").headers(headers).content("test")).andExpect(status().isOk());
+ // try to remove again should fail.
+ mockMvc.perform(post("/sendHeartbeat").headers(headers).content("test")).andExpect(status().isBadRequest());
+ }
+
+ @Test
+ public void sendEventTest() throws Exception{
+ EventRequestParameters pep = new EventRequestParameters();
+ Map<String,String> eventAttributes = new HashMap<>();
+ eventAttributes.put("TEST", "test");
+ pep.setEventAttributes(eventAttributes);
+ //Failure Tests.
+ mockMvc.perform(post("/sendEvent")).andExpect(status().isBadRequest());
+ mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ //Service Tests.
+ mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "123")).andExpect(status().isOk());
+ pep.setEventAttributes(null);
+ mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setEventAttributes(eventAttributes);
+ mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isOk());
+ pep.setEventAttributes(eventAttributes);
+ pep.setRequestID(UUID.randomUUID());
+ mockMvc.perform(post("/sendEvent").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isOk());
+ }
+
+ @Test
+ public void getDecisionTest() throws Exception{
+ DecisionRequestParameters pep = new DecisionRequestParameters();
+ Map<String,String> eventAttributes = new HashMap<>();
+ eventAttributes.put("TEST", "test");
+ pep.setECOMPComponentName("te123");
+ pep.setDecisionAttributes(eventAttributes);
+ //Failure Tests.
+ mockMvc.perform(post("/getDecision")).andExpect(status().isBadRequest());
+ mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ //Service Tests.
+ mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "123")).andExpect(status().isOk());
+ pep.setDecisionAttributes(null);
+ pep.setECOMPComponentName(null);
+ mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setECOMPComponentName("testing");
+ mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setDecisionAttributes(eventAttributes);
+ pep.setRequestID(UUID.randomUUID());
+ mockMvc.perform(post("/getDecision").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isOk());
+ }
+
+ @Test
+ public void pushPolicyTest() throws Exception{
+ PushPolicyParameters pep = new PushPolicyParameters();
+ //Failure Tests.
+ mockMvc.perform(put("/pushPolicy")).andExpect(status().isBadRequest());
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ //Service Tests.
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyName("scopeless");
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyName("testing.test");
+ pep.setPolicyType("wrong");
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyType("BRMS_PARAM");
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyType("BRMS_RAW");
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyType("MicroService");
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyType("ClosedLoop_PM");
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyType("ClosedLoop_Fault");
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyType("Base");
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyType("Decision");
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyType("Action");
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyType("Firewall");
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPdpGroup("default");
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "123")).andExpect(status().isBadRequest());
+ pep.setRequestID(UUID.randomUUID());
+ mockMvc.perform(put("/pushPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ }
+
+ @Test
+ public void deletePolicyTest() throws Exception{
+ DeletePolicyParameters pep = new DeletePolicyParameters();
+ //Failure Tests.
+ mockMvc.perform(delete("/deletePolicy")).andExpect(status().isBadRequest());
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ //Service Tests.
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyName("testing");
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "test123")).andExpect(status().isBadRequest());
+ pep.setPolicyName("testscope.name");
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyName("testscope.name");
+ pep.setPolicyType("wrong");
+ pep.setRequestID(UUID.randomUUID());
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyType("BRMS_PARAM");
+ pep.setPolicyComponent("wrong");
+ pep.setRequestID(null);
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyType("BRMS_RAW");
+ pep.setPolicyComponent("PDP");
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyType("MicroService");
+ pep.setPolicyComponent("PAP");
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyType("ClosedLoop_PM");
+ pep.setPolicyComponent("PDP");
+ pep.setDeleteCondition(DeletePolicyCondition.ALL);
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyType("ClosedLoop_Fault");
+ pep.setDeleteCondition(DeletePolicyCondition.ONE);
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyType("Base");
+ pep.setPolicyComponent("PAP");
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyType("Decision");
+ pep.setPolicyComponent("PDP");
+ pep.setPolicyName("test.xml");
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyType("Action");
+ pep.setPolicyName("scope.Config_test.xml");
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPdpGroup("default");
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyComponent("PAP");
+ pep.setPolicyType("Firewall");
+ pep.setDeleteCondition(null);
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyComponent("PAP");
+ pep.setDeleteCondition(DeletePolicyCondition.ONE);
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyComponent("fail");
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyComponent("PDP");
+ pep.setPolicyName("testscope.policyName");
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyComponent(null);
+ mockMvc.perform(delete("/deletePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ }
+
+ @Test
+ public void createUpdatePolicyTest() throws Exception{
+ PolicyParameters pep = new PolicyParameters();
+ //Failure Tests.
+ mockMvc.perform(put("/createPolicy")).andExpect(status().isBadRequest());
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ //Service Tests.
+ setCreateUpdateImpl();
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyName("failName");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "test 123")).andExpect(status().isBadRequest());
+ pep.setPolicyName("test. name");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setPolicyName(" ");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyName("test. ");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyName("te st.name");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyName("test.name");
+ pep.setPolicyDescription("testá");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setPolicyName("test.name");
+ pep.setPolicyDescription("good");
+ pep.setTtlDate(new Date());
+ pep.setRequestID(UUID.randomUUID());
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ }
+
+ @Test
+ public void brmsPolicyCreationTests() throws Exception{
+ PolicyParameters pep = new PolicyParameters();
+ pep.setPolicyName("test.name");
+ pep.setPolicyDescription("good");
+ pep.setTtlDate(new Date());
+ pep.setRequestID(UUID.randomUUID());
+ setCreateUpdateImpl();
+ // Checks for BRMS Param Policy.
+ pep.setPolicyConfigType(PolicyConfigType.BRMS_PARAM);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setRiskLevel("test");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ Map<AttributeType, Map<String,String>> attributes = new HashMap<>();
+ Map<String,String> matching = new HashMap<>();
+ matching.put("key", "value");
+ attributes.put(AttributeType.MATCHING, matching);
+ pep.setAttributes(attributes);
+ pep.setRiskLevel("5");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ // Checks for BRMS Raw Policy
+ pep.setPolicyConfigType(PolicyConfigType.BRMS_RAW);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("test");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setRiskLevel(null);
+ 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");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setRiskLevel("5");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ }
+
+ @Test
+ public void baseConfigTests() throws Exception{
+ PolicyParameters pep = new PolicyParameters();
+ pep.setPolicyName("test.name");
+ pep.setPolicyDescription("good");
+ pep.setTtlDate(new Date());
+ pep.setRequestID(UUID.randomUUID());
+ setCreateUpdateImpl();
+ // Checks for Base config Policy.
+ pep.setPolicyConfigType(PolicyConfigType.Base);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("testbody");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBodyType(PolicyType.OTHER);
+ pep.setRiskLevel("test");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setRiskLevel("4");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setEcompName("ec nam-e");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setEcompName("ecompName");
+ pep.setConfigName("tes config");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigName("configName");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ pep.setConfigBody("{'test':'test}");
+ pep.setConfigBodyType(PolicyType.JSON);
+ mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ Map<AttributeType, Map<String,String>> attributes = new HashMap<>();
+ Map<String,String> matching = new HashMap<>();
+ matching.put("key", "value");
+ attributes.put(AttributeType.MATCHING, matching);
+ pep.setAttributes(attributes);
+ pep.setConfigBody("testBody");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ }
+
+ @Test
+ public void closedLoopPolicyTests() throws Exception{
+ PolicyParameters pep = new PolicyParameters();
+ pep.setPolicyName("test.name");
+ pep.setPolicyDescription("good");
+ pep.setTtlDate(new Date());
+ pep.setRequestID(UUID.randomUUID());
+ setCreateUpdateImpl();
+ // Checks for Closed loop Policy.
+ pep.setPolicyConfigType(PolicyConfigType.ClosedLoop_Fault);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("te stá");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("testBody");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("{\"key\":\"value\"}");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("{\"ecompname\":\"\"}");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("{\"ecompname\":\"test\"}");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ pep.setRiskLevel("test");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setRiskLevel("4");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ }
+
+ @Test
+ public void closedLoopPMTests() throws Exception{
+ PolicyParameters pep = new PolicyParameters();
+ pep.setPolicyName("test.name");
+ pep.setPolicyDescription("good");
+ pep.setTtlDate(new Date());
+ pep.setRequestID(UUID.randomUUID());
+ setCreateUpdateImpl();
+ // Checks for Closed loop Policy.
+ pep.setPolicyConfigType(PolicyConfigType.ClosedLoop_PM);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("te stá");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("testBody");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("{\"key\":\"value\"}");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("{\"ecompname\":\"\"}");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("{\"ecompname\":\"test\"}");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("{\"ecompname\":\"test\", \"serviceTypePolicyName\":\"value\"}");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ pep.setRiskLevel("test");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setRiskLevel("4");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ }
+
+ @Test
+ public void firewallPolicyTests() throws Exception{
+ PolicyParameters pep = new PolicyParameters();
+ pep.setPolicyName("test.name");
+ pep.setPolicyDescription("good");
+ pep.setTtlDate(new Date());
+ pep.setRequestID(UUID.randomUUID());
+ setCreateUpdateImpl();
+ // Checks for Closed loop Policy.
+ pep.setPolicyConfigType(PolicyConfigType.Firewall);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("te st");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("{}");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("{\"test\":\"test\"}");
+ pep.setRiskLevel("test");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setRiskLevel("4");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("{\"configName\":\"test\"}");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ }
+
+ @Test
+ public void microServicePolicyTests() throws Exception{
+ PolicyParameters pep = new PolicyParameters();
+ pep.setPolicyName("test.name");
+ pep.setPolicyDescription("good");
+ pep.setTtlDate(new Date());
+ pep.setRequestID(UUID.randomUUID());
+ setCreateUpdateImpl();
+ // Checks for Closed loop Policy.
+ pep.setPolicyConfigType(PolicyConfigType.MicroService);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("te st");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("{}");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setConfigBody("{\"test\":\"test\"}");
+ pep.setEcompName(" ");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setEcompName("testecomp");
+ pep.setRiskLevel("fail");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setRiskLevel("4");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ pep.setConfigBody("{\"service\":\"test\",\"uuid\":\"test\",\"location\":\"test\",\"configName\":\"test\",\"description\":\"test\",\"priority\":\"test\",\"version\":\"test\"}");
+ mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ }
+
+ @Test
+ public void actionDecisionPolicyCreationTests() throws Exception{
+ PolicyParameters pep = new PolicyParameters();
+ pep.setPolicyName("test.name");
+ pep.setPolicyDescription("good");
+ pep.setTtlDate(new Date());
+ pep.setRequestID(UUID.randomUUID());
+ setCreateUpdateImpl();
+ // Checks for action Policy.
+ pep.setPolicyClass(PolicyClass.Action);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ Map<AttributeType, Map<String,String>> attributes = new HashMap<>();
+ pep.setAttributes(attributes);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ attributes.put(AttributeType.MATCHING, new HashMap<>());
+ pep.setAttributes(attributes);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ Map<String,String> matching = new HashMap<>();
+ matching.put("key", "value");
+ attributes.put(AttributeType.MATCHING, matching);
+ pep.setAttributes(attributes);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setActionAttribute("A1");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setActionPerformer("PEX");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setActionPerformer("PEP");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ // Checks for Decision Policy.
+ pep.setPolicyClass(PolicyClass.Decision);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setEcompName("xyz");
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ attributes.remove(AttributeType.MATCHING);
+ attributes.put(AttributeType.SETTINGS, matching);
+ pep.setAttributes(attributes);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ attributes.put(AttributeType.MATCHING, matching);
+ pep.setAttributes(attributes);
+ mockMvc.perform(put("/createPolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ mockMvc.perform(put("/updatePolicy").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ }
+
+ @Test
+ public void createUpdateDictionaryTests() throws Exception{
+ DictionaryParameters pep = new DictionaryParameters();
+ //Failure Tests.
+ mockMvc.perform(put("/createDictionaryItem")).andExpect(status().isBadRequest());
+ mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ mockMvc.perform(put("/updateDictionaryItem").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ //Service Tests.
+ mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+ pep.setDictionaryType(DictionaryType.MicroService);
+ mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isBadRequest());
+ pep.setDictionary("test dict");
+ pep.setRequestID(UUID.randomUUID());
+ mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ pep.setDictionaryJson("{\"test\":\"value\"}");
+ mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID())).andExpect(status().isInternalServerError());
+ pep.setDictionaryJson("test123");
+ mockMvc.perform(put("/updateDictionaryItem").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "123")).andExpect(status().isBadRequest());
+ pep.setDictionary("MicroServiceDictionary");
+ mockMvc.perform(put("/createDictionaryItem").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isBadRequest());
+ }
+
+ @Test
+ public void getDictionaryTests() throws Exception{
+ DictionaryParameters pep = new DictionaryParameters();
+ //Failure Tests.
+ mockMvc.perform(post("/getDictionaryItems")).andExpect(status().isBadRequest());
+ mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ //Service Tests.
+ mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+ pep.setDictionaryType(DictionaryType.Common);
+ mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, UUID.randomUUID().toString())).andExpect(status().isBadRequest());
+ pep.setDictionary("EcompName");
+ mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ pep.setRequestID(UUID.randomUUID());
+ mockMvc.perform(post("/getDictionaryItems").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers)).andExpect(status().isInternalServerError());
+ }
+
+ @Test
+ public void policyEngineImportTests() throws Exception{
+ //Failure Tests.
+ mockMvc.perform(post("/policyEngineImport")).andExpect(status().isBadRequest());
+ }
+
+ @Test
+ public void oldConfigAPITests() throws Exception{
+ ConfigPolicyAPIRequest pep = new ConfigPolicyAPIRequest();
+ //Failure Tests.
+ mockMvc.perform(put("/createConfig")).andExpect(status().isBadRequest());
+ mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ mockMvc.perform(put("/updateConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ //Service Tests.
+ mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+ pep.setPolicyScope("test");
+ mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+ pep.setPolicyName("name");
+ mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+ pep.setConfigType("OTHER");
+ mockMvc.perform(put("/createConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+ pep.setTtlDate(new Date().toString());
+ mockMvc.perform(put("/updateConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+ }
+
+ @Test
+ public void oldFirewallAPITests() throws Exception{
+ ConfigFirewallPolicyAPIRequest pep = new ConfigFirewallPolicyAPIRequest();
+ //Failure Tests.
+ mockMvc.perform(put("/createFirewallConfig")).andExpect(status().isBadRequest());
+ mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ mockMvc.perform(put("/updateFirewallConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON).header(CLIENTAUTHHEADER, "Basic 123")).andExpect(status().isUnauthorized());
+ //Service Tests.
+ mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+ pep.setPolicyScope("test");
+ mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+ pep.setPolicyName("name");
+ mockMvc.perform(put("/createFirewallConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+ pep.setTtlDate(new Date().toString());
+ mockMvc.perform(put("/updateFirewallConfig").content(PolicyUtils.objectToJsonString(pep)).contentType(MediaType.APPLICATION_JSON)
+ .headers(headers).header(UUIDHEADER, "tes123")).andExpect(status().isBadRequest());
+ }
+
+ private void setCreateUpdateImpl() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
+ Method setter = XACMLPdpServlet.class.getDeclaredMethod("setCreateUpdatePolicyConstructor", String.class);
+ setter.setAccessible(true);
+ setter.invoke(new XACMLPdpServlet(), CreateUpdatePolicyServiceImpl.class.getName());
+ }
+
+ //Health Check Tests
+ @Test
+ public void getCountTest() throws Exception {
+ mockMvc.perform(get("/count"))
+ .andExpect(status().isOk());
+ }
+}
diff --git a/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/getConfigTest.java b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/getConfigTest.java
new file mode 100644
index 000000000..ebe86b0d8
--- /dev/null
+++ b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/getConfigTest.java
@@ -0,0 +1,70 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ECOMP-PDP-REST
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.openecomp.policy.pdp.rest.api.test;
+
+import static org.junit.Assert.assertEquals;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Test;
+import org.openecomp.policy.api.ConfigRequestParameters;
+import org.openecomp.policy.api.PolicyConfigStatus;
+import org.openecomp.policy.pdp.rest.api.models.PolicyConfig;
+import org.openecomp.policy.pdp.rest.api.services.GetConfigService;
+
+public class getConfigTest {
+ private static final String TEST = "test";
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void filterMethodTest() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
+ ConfigRequestParameters configRequestParameters = new ConfigRequestParameters();
+ GetConfigService getConfigService= new GetConfigService(configRequestParameters, null);
+ Method filter = GetConfigService.class.getDeclaredMethod("filterResults", Collection.class,ConfigRequestParameters.class);
+ filter.setAccessible(true);
+ List<PolicyConfig> policyConfigs = new LinkedList<>();
+
+ List<PolicyConfig> filterResults = (List<PolicyConfig>) filter.invoke(getConfigService, policyConfigs,configRequestParameters);
+ assertEquals(PolicyConfigStatus.CONFIG_NOT_FOUND, filterResults.get(0).getPolicyConfigStatus());
+ // Check again with some values
+ configRequestParameters.setPolicyName(TEST);
+ configRequestParameters.setEcompName(TEST);
+ configRequestParameters.setConfigName(TEST);
+ Map<String,String> configAttributes = new HashMap<>();
+ configAttributes.put(TEST, TEST);
+ configRequestParameters.setConfigAttributes(configAttributes);
+ PolicyConfig pConfig = new PolicyConfig();
+ pConfig.setPolicyName(TEST);
+ Map<String,String> matching = new HashMap<>();
+ matching.put("ECOMPName", TEST);
+ matching.put("ConfigName", TEST);
+ matching.put("TEST", TEST);
+ pConfig.setMatchingConditions(matching);
+ policyConfigs.add(pConfig);
+ filterResults = (List<PolicyConfig>) filter.invoke(getConfigService, policyConfigs,configRequestParameters);
+ assertEquals(PolicyConfigStatus.CONFIG_NOT_FOUND, filterResults.get(0).getPolicyConfigStatus());
+ }
+}
diff --git a/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/getDictionaryTest.java b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/getDictionaryTest.java
new file mode 100644
index 000000000..3ade07ccb
--- /dev/null
+++ b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/api/test/getDictionaryTest.java
@@ -0,0 +1,231 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ECOMP-PDP-REST
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.openecomp.policy.pdp.rest.api.test;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.lang.reflect.Method;
+
+import org.junit.Test;
+import org.openecomp.policy.api.DictionaryParameters;
+import org.openecomp.policy.pdp.rest.api.services.GetDictionaryService;
+
+public class getDictionaryTest {
+
+ @Test
+ public void dictionaryJsonTest() throws Exception{
+ Method formatDictionary = GetDictionaryService.class.getDeclaredMethod("formatDictionaryJson", String.class);
+ formatDictionary.setAccessible(true);
+ String input="{\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\","
+ + "\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\","
+ + "\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\"}";
+ DictionaryParameters dp = new DictionaryParameters();
+ dp.setDictionary("test");
+ GetDictionaryService gds = new GetDictionaryService(dp, null);
+ String result = (String) formatDictionary.invoke(gds, input);
+ assertNull(result);
+ //
+ dp.setDictionary("EcompName");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("Attribute");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("Action");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("BRMSParamTemplate");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("VSCLAction");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("VNFType");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("PEPOptions");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("Varbind");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("Service");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("Site");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("Settings");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("DescriptiveScope");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("Enforcer");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("ActionList");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("ProtocolList");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("Zone");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("SecurityZone");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("PrefixList");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("AddressGroup");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("ServiceGroup");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("ServiceList");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("TermList");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("RuleList");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("FirewallRuleList");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("Term");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("MicroServiceLocation");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("MicroServiceConfigName");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("DCAEUUID");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("MicroServiceModels");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("PolicyScopeService");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("PolicyScopeResource");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("PolicyScopeType");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("PolicyScopeClosedLoop");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("GroupPolicyScopeList");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("RiskType");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("SafePolicyWarning");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ //
+ dp.setDictionary("MicroServiceDictionary");
+ gds = new GetDictionaryService(dp, null);
+ result = (String) formatDictionary.invoke(gds, input);
+ assertNotNull(result);
+ }
+}
diff --git a/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/auth/test/FilterTests.java b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/auth/test/FilterTests.java
new file mode 100644
index 000000000..944dd90a9
--- /dev/null
+++ b/ECOMP-PDP-REST/src/test/java/org/openecomp/policy/pdp/rest/auth/test/FilterTests.java
@@ -0,0 +1,199 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ECOMP-PDP-REST
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.policy.pdp.rest.auth.test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.policy.pdp.rest.restAuth.PDPAuthenticationFilter;
+
+import com.att.research.xacml.util.XACMLProperties;
+import com.mockrunner.mock.web.MockRequestDispatcher;
+
+public class FilterTests {
+
+ private PDPAuthenticationFilter authenticationFilter = new PDPAuthenticationFilter();
+ private final String VALIDHEADERVALUE = "Basic dGVzdHBkcDphbHBoYTQ1Ng==";
+
+ @Before
+ public void setUp() throws Exception{
+ authenticationFilter.init(null);
+ XACMLProperties.reloadProperties();
+ System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "src/test/resources/pass.xacml.pdp.properties");
+ XACMLProperties.getProperties();
+ }
+
+ @Test
+ public void testDoFilterError() throws IOException, ServletException {
+ // create the objects to be mocked
+ HttpServletRequest httpServletRequest = mock(HttpServletRequest.class);
+ HttpServletResponse httpServletResponse = mock(HttpServletResponse.class);
+ FilterChain filterChain = mock(FilterChain.class);
+ //
+ when(httpServletRequest.getRequestURI()).thenReturn("error");
+ authenticationFilter.doFilter(httpServletRequest, httpServletResponse,
+ filterChain);
+ // verify if unauthorized
+ verify(httpServletResponse).setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+ }
+
+ @Test
+ public void testDoFilterNotification() throws IOException, ServletException {
+ // create the objects to be mocked
+ HttpServletRequest httpServletRequest = mock(HttpServletRequest.class);
+ HttpServletResponse httpServletResponse = mock(HttpServletResponse.class);
+ FilterChain filterChain = mock(FilterChain.class);
+ //
+ when(httpServletRequest.getRequestURI()).thenReturn("notifications");
+ authenticationFilter.doFilter(httpServletRequest, httpServletResponse,
+ filterChain);
+ verify(filterChain).doFilter(httpServletRequest,httpServletResponse);
+ }
+
+ @Test
+ public void testDoFilterSwagger() throws Exception{
+ // create the objects to be mocked
+ HttpServletRequest httpServletRequest = mock(HttpServletRequest.class);
+ HttpServletResponse httpServletResponse = mock(HttpServletResponse.class);
+ FilterChain filterChain = mock(FilterChain.class);
+ //
+ when(httpServletRequest.getRequestURI()).thenReturn("/pdp/swagger");
+ when(httpServletRequest.getRequestDispatcher("/api/swagger")).thenReturn(new MockRequestDispatcher());
+ authenticationFilter.doFilter(httpServletRequest, httpServletResponse,
+ filterChain);
+ verify(httpServletRequest).getRequestDispatcher("/api/swagger");
+ when(httpServletRequest.getRequestURI()).thenReturn("/pdp/api-docs/");
+ when(httpServletRequest.getRequestDispatcher("/api/api-docs/")).thenReturn(new MockRequestDispatcher());
+ authenticationFilter.doFilter(httpServletRequest, httpServletResponse,
+ filterChain);
+ verify(httpServletRequest).getRequestDispatcher("/api/api-docs/");
+ when(httpServletRequest.getRequestURI()).thenReturn("/pdp/configuration");
+ when(httpServletRequest.getRequestDispatcher("/api/configuration")).thenReturn(new MockRequestDispatcher());
+ authenticationFilter.doFilter(httpServletRequest, httpServletResponse,
+ filterChain);
+ verify(httpServletRequest).getRequestDispatcher("/api/configuration");
+ }
+
+ @Test
+ public void newRequestAuthFailTest() throws Exception{
+ // create the objects to be mocked
+ HttpServletRequest httpServletRequest = mock(HttpServletRequest.class);
+ HttpServletResponse httpServletResponse = mock(HttpServletResponse.class);
+ FilterChain filterChain = mock(FilterChain.class);
+ //
+ when(httpServletRequest.getRequestURI()).thenReturn("/pdp/api/getConfig");
+ when(httpServletRequest.getHeader(PDPAuthenticationFilter.AUTHENTICATION_HEADER)).thenReturn("error");
+ authenticationFilter.doFilter(httpServletRequest, httpServletResponse,
+ filterChain);
+ // verify if unauthorized
+ verify(httpServletResponse).setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+ }
+
+ @Test
+ public void tokenFailureTest() throws Exception{
+ // create the objects to be mocked
+ HttpServletRequest httpServletRequest = mock(HttpServletRequest.class);
+ HttpServletResponse httpServletResponse = mock(HttpServletResponse.class);
+ FilterChain filterChain = mock(FilterChain.class);
+ //
+ when(httpServletRequest.getRequestURI()).thenReturn("/pdp/api/getConfig");
+ when(httpServletRequest.getHeader(PDPAuthenticationFilter.AUTHENTICATION_HEADER)).thenReturn("Basic test123");
+ authenticationFilter.doFilter(httpServletRequest, httpServletResponse,
+ filterChain);
+ // verify if unauthorized
+ verify(httpServletResponse).setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+ }
+
+ @Test
+ public void oldRequestAuthPassTest() throws Exception{
+ // create the objects to be mocked
+ HttpServletRequest httpServletRequest = mock(HttpServletRequest.class);
+ HttpServletResponse httpServletResponse = mock(HttpServletResponse.class);
+ FilterChain filterChain = mock(FilterChain.class);
+ // New request no environment header check
+ when(httpServletRequest.getRequestURI()).thenReturn("/pdp/api/getConfig");
+ when(httpServletRequest.getRequestDispatcher("/api/getConfig")).thenReturn(new MockRequestDispatcher());
+ when(httpServletRequest.getHeader(PDPAuthenticationFilter.AUTHENTICATION_HEADER)).thenReturn(VALIDHEADERVALUE);
+ authenticationFilter.doFilter(httpServletRequest, httpServletResponse,
+ filterChain);
+ // verify if authorized
+ verify(httpServletRequest).getRequestDispatcher("/api/getConfig");
+ //
+ // Old Requests Checks
+ //
+ when(httpServletRequest.getRequestURI()).thenReturn("/pdp/getConfig");
+ when(httpServletRequest.getRequestDispatcher("/api//getConfig")).thenReturn(new MockRequestDispatcher());
+ when(httpServletRequest.getHeader(PDPAuthenticationFilter.AUTHENTICATION_HEADER)).thenReturn(VALIDHEADERVALUE);
+ authenticationFilter.doFilter(httpServletRequest, httpServletResponse,
+ filterChain);
+ // verify if authorized
+ verify(httpServletRequest).getRequestDispatcher("/api//getConfig");
+ }
+
+ @Test
+ public void newRequestAuthPassTest() throws Exception{
+ // create the objects to be mocked
+ HttpServletRequest httpServletRequest = mock(HttpServletRequest.class);
+ HttpServletResponse httpServletResponse = mock(HttpServletResponse.class);
+ FilterChain filterChain = mock(FilterChain.class);
+ //
+ // Requests with Valid Environment Header values.
+ //
+ when(httpServletRequest.getRequestURI()).thenReturn("/pdp/getConfig");
+ when(httpServletRequest.getRequestDispatcher("/api//getConfig")).thenReturn(new MockRequestDispatcher());
+ when(httpServletRequest.getHeader(PDPAuthenticationFilter.ENVIRONMENT_HEADER)).thenReturn("DEVL");
+ when(httpServletRequest.getHeader(PDPAuthenticationFilter.AUTHENTICATION_HEADER)).thenReturn(VALIDHEADERVALUE);
+ authenticationFilter.doFilter(httpServletRequest, httpServletResponse,
+ filterChain);
+ // verify if authorized
+ verify(httpServletRequest).getRequestDispatcher("/api//getConfig");
+ // New request no environment header check
+ when(httpServletRequest.getRequestURI()).thenReturn("/pdp/api/getConfig");
+ when(httpServletRequest.getRequestDispatcher("/api/getConfig")).thenReturn(new MockRequestDispatcher());
+ when(httpServletRequest.getHeader(PDPAuthenticationFilter.AUTHENTICATION_HEADER)).thenReturn(VALIDHEADERVALUE);
+ authenticationFilter.doFilter(httpServletRequest, httpServletResponse,
+ filterChain);
+ // verify if authorized
+ verify(httpServletRequest).getRequestDispatcher("/api/getConfig");
+ //
+ //
+ // Requests with InValid Environment Header
+ //
+ when(httpServletRequest.getRequestURI()).thenReturn("/pdp/getConfig");
+ when(httpServletRequest.getRequestDispatcher("/api//getConfig")).thenReturn(new MockRequestDispatcher());
+ when(httpServletRequest.getHeader(PDPAuthenticationFilter.ENVIRONMENT_HEADER)).thenReturn("TEST");
+ when(httpServletRequest.getHeader(PDPAuthenticationFilter.AUTHENTICATION_HEADER)).thenReturn(VALIDHEADERVALUE);
+ authenticationFilter.doFilter(httpServletRequest, httpServletResponse,
+ filterChain);
+ // verify if unauthorized
+ verify(httpServletResponse).setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+ }
+}