1 package org.openecomp.sdc.be.servlets;
3 import org.apache.http.HttpStatus;
4 import org.glassfish.jersey.server.ResourceConfig;
6 import org.openecomp.sdc.be.components.impl.PolicyTypeBusinessLogic;
7 import org.openecomp.sdc.be.components.utils.PolicyTypeBuilder;
8 import org.openecomp.sdc.be.dao.api.ActionStatus;
9 import org.openecomp.sdc.be.impl.ComponentsUtils;
10 import org.openecomp.sdc.be.model.PolicyTypeDefinition;
11 import org.openecomp.sdc.common.api.Constants;
12 import org.openecomp.sdc.exception.ResponseFormat;
14 import javax.ws.rs.client.Invocation;
15 import javax.ws.rs.core.GenericType;
16 import javax.ws.rs.core.MediaType;
17 import java.util.List;
19 import static java.util.Arrays.asList;
20 import static org.assertj.core.api.Assertions.assertThat;
21 import static org.mockito.Mockito.mock;
22 import static org.mockito.Mockito.when;
24 public class PolicyTypesEndpointTest extends JerseySpringBaseTest {
26 public static final String USER_ID = "userId";
27 public static final String COMPONENT_TYPE = "VF";
28 private PolicyTypeBusinessLogic policyTypeBusinessLogic;
29 private ComponentsUtils componentUtils;
32 protected ResourceConfig configure() {
33 policyTypeBusinessLogic = mock(PolicyTypeBusinessLogic.class);
34 componentUtils = mock(ComponentsUtils.class);
35 return super.configure()
36 .register(new PolicyTypesEndpoint(policyTypeBusinessLogic));
40 public void getPolicyTypes() {
41 List<PolicyTypeDefinition> policyTypes = buildPolicyTypesList();
42 when(policyTypeBusinessLogic.getAllPolicyTypes(USER_ID, COMPONENT_TYPE)).thenReturn(policyTypes);
43 when(componentUtils.getResponseFormat(ActionStatus.OK)).thenReturn(new ResponseFormat(HttpStatus.SC_OK));
44 List<PolicyTypeDefinition> fetchedPolicyTypes = buildGetPolicyTypesCall().get(new GenericType<List<PolicyTypeDefinition>>(){});
45 verifyPolicyTypesList(policyTypes, fetchedPolicyTypes);
49 public void getPolicyTypes_whenNoInternalComponent_passNullAsComponentType() {
50 List<PolicyTypeDefinition> policyTypes = buildPolicyTypesList();
51 when(policyTypeBusinessLogic.getAllPolicyTypes(USER_ID, null)).thenReturn(policyTypes);
52 when(componentUtils.getResponseFormat(ActionStatus.OK)).thenReturn(new ResponseFormat(HttpStatus.SC_OK));
53 List<PolicyTypeDefinition> fetchedPolicyTypes = buildGetPolicyTypesCallNoInternalComponent().get(new GenericType<List<PolicyTypeDefinition>>(){});
54 verifyPolicyTypesList(policyTypes, fetchedPolicyTypes);
58 private void verifyPolicyTypesList(List<PolicyTypeDefinition> policyTypes, List<PolicyTypeDefinition> fetchedPolicyTypes) {
59 assertThat(fetchedPolicyTypes)
60 .usingElementComparatorOnFields("version", "type", "uniqueId", "name", "icon")
61 .isEqualTo(policyTypes);
62 assertThat(fetchedPolicyTypes).extracting("derivedFrom")//derivedFrom is not on the PolicyTypeMixin and should not return in response
63 .containsOnly((String)null);
66 private Invocation.Builder buildGetPolicyTypesCall() {
67 return target("/v1/catalog/policyTypes")
68 .queryParam("internalComponentType", COMPONENT_TYPE)
69 .request(MediaType.APPLICATION_JSON)
70 .header(Constants.USER_ID_HEADER, USER_ID);
73 private Invocation.Builder buildGetPolicyTypesCallNoInternalComponent() {
74 return target("/v1/catalog/policyTypes")
75 .request(MediaType.APPLICATION_JSON)
76 .header(Constants.USER_ID_HEADER, USER_ID);
79 private List<PolicyTypeDefinition> buildPolicyTypesList() {
80 PolicyTypeDefinition type1 = new PolicyTypeBuilder()
81 .setDerivedFrom("root")
88 PolicyTypeDefinition type2 = new PolicyTypeBuilder()
89 .setDerivedFrom("type1")
96 PolicyTypeDefinition type3 = new PolicyTypeBuilder()
97 .setDerivedFrom("root")
101 .setName("type3name")
104 return asList(type1, type2, type3);