summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java')
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java105
1 files changed, 61 insertions, 44 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java
index 2d181ccbf6..1ba2c44a24 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java
@@ -20,27 +20,8 @@
package org.openecomp.sdc.be.servlets;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyMap;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.when;
-import static org.openecomp.sdc.common.api.Constants.GET_POLICY;
-
import com.fasterxml.jackson.databind.DeserializationFeature;
import fj.data.Either;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Objects;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.GenericType;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
import org.glassfish.grizzly.http.util.HttpStatus;
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider;
@@ -58,8 +39,13 @@ import org.mockito.Spy;
import org.mockito.junit.MockitoJUnitRunner;
import org.openecomp.sdc.be.components.impl.BaseBusinessLogic;
import org.openecomp.sdc.be.components.impl.PolicyBusinessLogic;
+import org.openecomp.sdc.be.components.impl.ResponseFormatManager;
+import org.openecomp.sdc.be.components.impl.aaf.RoleAuthorizationHandler;
+import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException;
+import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException;
import org.openecomp.sdc.be.components.property.PropertyDeclarationOrchestrator;
import org.openecomp.sdc.be.components.utils.PropertyDataDefinitionBuilder;
+import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.datatypes.elements.GetPolicyValueDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
@@ -82,9 +68,37 @@ import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation;
import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation;
import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder;
import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
+import org.openecomp.sdc.common.api.ConfigurationSource;
import org.openecomp.sdc.common.api.Constants;
+import org.openecomp.sdc.common.api.FilterDecisionEnum;
+import org.openecomp.sdc.common.impl.ExternalConfiguration;
+import org.openecomp.sdc.common.impl.FSConfigurationSource;
+import org.openecomp.sdc.common.util.ThreadLocalsHolder;
import org.openecomp.sdc.exception.ResponseFormat;
+import javax.ws.rs.client.ClientBuilder;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.Invocation;
+import javax.ws.rs.core.GenericType;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Objects;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyMap;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.when;
+import static org.openecomp.sdc.common.api.Constants.GET_POLICY;
+
+
+
@RunWith(MockitoJUnitRunner.class)
public class PolicyServletTest extends JerseySpringBaseTest{
@@ -95,6 +109,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{
private static ServletUtils servletUtils;
private static PropertyDeclarationOrchestrator propertyDeclarationOrchestrator;
private static ToscaOperationFacade toscaOperationFacade;
+ private static RoleAuthorizationHandler roleAuthorizationHandler;
private static ResponseFormat responseFormat;
@Captor
private static ArgumentCaptor<PolicyDefinition> policyCaptor;
@@ -114,25 +129,33 @@ public class PolicyServletTest extends JerseySpringBaseTest{
private static final String PROP_1 = "prop1";
private static final String UPDATE_TARGETS_URL = "/v1/catalog/{componentType}/{componentId}/policies/{policyId}/targets";
+ static ConfigurationSource configurationSource = new FSConfigurationSource(
+ ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be");
+ static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource);
@BeforeClass
public static void initClass() {
+ ResponseFormatManager.getInstance();
createMocks();
when(servletUtils.getComponentsUtils()).thenReturn(componentsUtils);
}
-
+
@Before
public void beforeMethod() {
+ Mockito.reset(businessLogic);
final JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
setClient(ClientBuilder.newClient(new ClientConfig(jacksonJsonProvider)));
+ ThreadLocalsHolder.setApiType(FilterDecisionEnum.EXTERNAL);
+ when(request.isUserInRole(anyString())).thenReturn(true);
+
}
+
@Test
public void testGetPolicySuccess(){
String path = "/v1/catalog/" + validComponentType + "/" + componentId + "/policies/" + POLICY_ID;
- Either<PolicyDefinition, ResponseFormat> successResponse = Either.left(new PolicyDefinition());
+ PolicyDefinition successResponse = new PolicyDefinition();
when(businessLogic.getPolicy(eq(ComponentTypeEnum.RESOURCE), eq(componentId), eq(POLICY_ID), eq(USER_ID))).thenReturn(successResponse);
- when(responseFormat.getStatus()).thenReturn(HttpStatus.OK_200.getStatusCode());
Response response = target()
.path(path)
.request(MediaType.APPLICATION_JSON)
@@ -145,8 +168,6 @@ public class PolicyServletTest extends JerseySpringBaseTest{
@Test
public void testGetPolicyFailure(){
String path = "/v1/catalog/" + unsupportedComponentType + "/" + componentId + "/policies/" + POLICY_ID;
- when(responseFormat.getStatus()).thenReturn(HttpStatus.BAD_REQUEST_400.getStatusCode());
- when(componentsUtils.getResponseFormat(eq(ActionStatus.UNSUPPORTED_ERROR), eq(unsupportedComponentType))).thenReturn(responseFormat);
Response response = target()
.path(path)
.request(MediaType.APPLICATION_JSON)
@@ -160,7 +181,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{
public void testPostPolicySuccess(){
String path = "/v1/catalog/" + validComponentType + "/" + componentId + "/policies/" + policyTypeName;
PolicyDefinition policy = new PolicyDefinition();
- Either<PolicyDefinition, ResponseFormat> successResponse = Either.left(policy);
+ PolicyDefinition successResponse = policy;
when(businessLogic.createPolicy(eq(ComponentTypeEnum.RESOURCE), eq(componentId), eq(policyTypeName), eq(USER_ID), eq(true))).thenReturn(successResponse);
when(responseFormat.getStatus()).thenReturn(HttpStatus.CREATED_201.getStatusCode());
when(componentsUtils.getResponseFormat(ActionStatus.CREATED)).thenReturn(responseFormat);
@@ -177,8 +198,6 @@ public class PolicyServletTest extends JerseySpringBaseTest{
public void testPostPolicyFailure(){
String path = "/v1/catalog/" + unsupportedComponentType + "/" + componentId + "/policies/" + policyTypeName;
PolicyDefinition policy = new PolicyDefinition();
- when(responseFormat.getStatus()).thenReturn(HttpStatus.BAD_REQUEST_400.getStatusCode());
- when(componentsUtils.getResponseFormat(eq(ActionStatus.UNSUPPORTED_ERROR), eq(unsupportedComponentType))).thenReturn(responseFormat);
Response response = target()
.path(path)
.request(MediaType.APPLICATION_JSON)
@@ -193,9 +212,8 @@ public class PolicyServletTest extends JerseySpringBaseTest{
String path = "/v1/catalog/" + validComponentType + "/" + componentId + "/policies/" + POLICY_ID;
PolicyDefinition policy = new PolicyDefinition();
policy.setUniqueId(POLICY_ID);
- Either<PolicyDefinition, ResponseFormat> successResponse = Either.left(policy);
+ PolicyDefinition successResponse = policy;
when(businessLogic.updatePolicy(eq(ComponentTypeEnum.RESOURCE), eq(componentId), any(PolicyDefinition.class), eq(USER_ID), eq(true))).thenReturn(successResponse);
- when(responseFormat.getStatus()).thenReturn(HttpStatus.OK_200.getStatusCode());
Response response = target()
.path(path)
.request(MediaType.APPLICATION_JSON)
@@ -209,8 +227,6 @@ public class PolicyServletTest extends JerseySpringBaseTest{
public void testPutPolicyFailure(){
String path = "/v1/catalog/" + unsupportedComponentType + "/" + componentId + "/policies/" + POLICY_ID;
PolicyDefinition policy = new PolicyDefinition();
- when(responseFormat.getStatus()).thenReturn(HttpStatus.BAD_REQUEST_400.getStatusCode());
- when(componentsUtils.getResponseFormat(eq(ActionStatus.UNSUPPORTED_ERROR), eq(unsupportedComponentType))).thenReturn(responseFormat);
Response response = target()
.path(path)
.request(MediaType.APPLICATION_JSON)
@@ -223,9 +239,8 @@ public class PolicyServletTest extends JerseySpringBaseTest{
@Test
public void testDeletePolicySuccess(){
String path = "/v1/catalog/" + validComponentType + "/" + componentId + "/policies/" + POLICY_ID;
- Either<PolicyDefinition, ResponseFormat> successResponse = Either.left(new PolicyDefinition());
+ PolicyDefinition successResponse = new PolicyDefinition();
when(businessLogic.deletePolicy(eq(ComponentTypeEnum.RESOURCE), eq(componentId), eq(POLICY_ID), eq(USER_ID), eq(true))).thenReturn(successResponse);
- when(responseFormat.getStatus()).thenReturn(HttpStatus.OK_200.getStatusCode());
Response response = target()
.path(path)
.request(MediaType.APPLICATION_JSON)
@@ -238,8 +253,6 @@ public class PolicyServletTest extends JerseySpringBaseTest{
@Test
public void testDeletePolicyFailure(){
String path = "/v1/catalog/" + unsupportedComponentType + "/" + componentId + "/policies/" + POLICY_ID;
- when(responseFormat.getStatus()).thenReturn(HttpStatus.BAD_REQUEST_400.getStatusCode());
- when(componentsUtils.getResponseFormat(eq(ActionStatus.UNSUPPORTED_ERROR), eq(unsupportedComponentType))).thenReturn(responseFormat);
Response response = target()
.path(path)
.request(MediaType.APPLICATION_JSON)
@@ -251,12 +264,14 @@ public class PolicyServletTest extends JerseySpringBaseTest{
@Test
public void getPolicyProperties_operationForbidden() {
- when(businessLogic.getPolicyProperties(ComponentTypeEnum.SERVICE, SERVICE_ID, POLICY_ID, USER_ID)).thenReturn(Either.right(new ResponseFormat(Response.Status.FORBIDDEN.getStatusCode())));
+ // doThrow(new ComponentException(ActionStatus.GENERAL_ERROR)).when(businessLogic).getPolicyProperties(ComponentTypeEnum.SERVICE, SERVICE_ID, POLICY_ID, USER_ID);
+ when(businessLogic.getPolicyProperties(ComponentTypeEnum.SERVICE, SERVICE_ID, POLICY_ID, USER_ID))
+ .thenThrow(new ByActionStatusComponentException(ActionStatus.AUTH_FAILED, USER_ID));
Response response = buildGetPropertiesRequest().get();
assertThat(response.getStatus()).isEqualTo(Response.Status.FORBIDDEN.getStatusCode());
}
- @Test
+ @Test//(expected = ComponentException.class)
public void getPolicyProperties_unHandledError_returnGeneralError() {
when(businessLogic.getPolicyProperties(ComponentTypeEnum.SERVICE, SERVICE_ID, POLICY_ID, USER_ID)).thenThrow(new RuntimeException());
Response response = buildGetPropertiesRequest().get();
@@ -266,14 +281,14 @@ public class PolicyServletTest extends JerseySpringBaseTest{
@Test
public void getPolicyProperties_wrongComponentType() {
Response response = buildGetPropertiesRequest("unknownType").get();
- assertThat(response.getStatus()).isEqualTo(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
+ assertThat(response.getStatus()).isEqualTo(Response.Status.BAD_REQUEST.getStatusCode());
//verifyZeroInteractions(businessLogic);
}
@Test
public void getPolicyProperties() {
List<PropertyDataDefinition> properties = getPropertiesList();
- when(businessLogic.getPolicyProperties(ComponentTypeEnum.SERVICE, SERVICE_ID, POLICY_ID, USER_ID)).thenReturn(Either.left(properties));
+ when(businessLogic.getPolicyProperties(ComponentTypeEnum.SERVICE, SERVICE_ID, POLICY_ID, USER_ID)).thenReturn(properties);
List<PropertyDataDefinition> policyProps = buildGetPropertiesRequest().get(new GenericType<List<PropertyDataDefinition>>() {});
assertThat(policyProps)
.usingElementComparatorOnFields("uniqueId")
@@ -283,7 +298,8 @@ public class PolicyServletTest extends JerseySpringBaseTest{
@Test
public void updatePolicyPropertiesSuccess() {
List<PropertyDataDefinition> properties = getPropertiesList();
- when(businessLogic.updatePolicyProperties(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID), eq(POLICY_ID), any(PropertyDataDefinition[].class), eq(USER_ID), eq(true))).thenReturn(Either.left(properties));
+ when(businessLogic.updatePolicyProperties(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID), eq(POLICY_ID),
+ any(PropertyDataDefinition[].class), eq(USER_ID), eq(true))).thenReturn(properties);
List<PropertyDataDefinition> policyProps = buildUpdatePropertiesRequest(ComponentTypeEnum.SERVICE_PARAM_NAME, properties).invoke(new GenericType<List<PropertyDataDefinition>>() {});
assertThat(policyProps)
.usingElementComparatorOnFields("uniqueId")
@@ -293,7 +309,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{
@Test
public void updatePolicyTargetsSuccess() {
List<PolicyTargetDTO> targets = getTargetDTOList();
- when(businessLogic.updatePolicyTargets(eq(ComponentTypeEnum.RESOURCE), eq(COMPONENT_ID), eq(POLICY_ID), anyMap(), eq(USER_ID))).thenReturn(Either.left(new PolicyDefinition()));
+ when(businessLogic.updatePolicyTargets(eq(ComponentTypeEnum.RESOURCE), eq(COMPONENT_ID), eq(POLICY_ID), anyMap(), eq(USER_ID))).thenReturn(new PolicyDefinition());
Response policyTargets = buildUpdateTargetsRequest(ComponentTypeEnum.RESOURCE_PARAM_NAME, targets).invoke();
assertThat(policyTargets.getStatus()).isEqualTo(200);
}
@@ -302,7 +318,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{
public void updatePolicyPropertiesFailure() {
List<PropertyDataDefinition> properties = getPropertiesList();
ResponseFormat notFoundResponse = new ResponseFormat(HttpStatus.NOT_FOUND_404.getStatusCode());
- when(businessLogic.updatePolicyProperties(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID), eq(POLICY_ID), any(PropertyDataDefinition[].class), eq(USER_ID), eq(true))).thenReturn(Either.right(notFoundResponse));
+ when(businessLogic.updatePolicyProperties(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID), eq(POLICY_ID), any(PropertyDataDefinition[].class), eq(USER_ID), eq(true))).thenThrow(new ByResponseFormatComponentException(notFoundResponse));
Response policyProps = buildUpdatePropertiesRequest(ComponentTypeEnum.SERVICE_PARAM_NAME, properties).invoke();
assertEquals(HttpStatus.NOT_FOUND_404.getStatusCode(), policyProps.getStatus());
}
@@ -338,7 +354,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{
addGetPolicyValueToProperty(origProperty, policyDefinition);
- when(businessLogic.deletePolicy(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID), eq(policyDefinition.getUniqueId()), eq(USER_ID), eq(true))).thenReturn(Either.left(policyDefinition));
+ when(businessLogic.deletePolicy(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID), eq(policyDefinition.getUniqueId()), eq(USER_ID), eq(true))).thenReturn(policyDefinition);
Response deleteResponse = buildDeletePolicyRequest(policyDefinition).invoke();
assertEquals(HttpStatus.OK_200.getStatusCode(), deleteResponse.getStatus());
@@ -470,7 +486,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{
return componentInstInputsMap;
}
-
+
@Override
protected ResourceConfig configure() {
return super.configure()
@@ -495,6 +511,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{
componentsUtils = Mockito.mock(ComponentsUtils.class);
servletUtils = Mockito.mock(ServletUtils.class);
responseFormat = Mockito.mock(ResponseFormat.class);
+ roleAuthorizationHandler = Mockito.mock(RoleAuthorizationHandler.class);
}
private static class BaseBusinessLogicTest extends BaseBusinessLogic {