aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java')
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java104
1 files changed, 77 insertions, 27 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java
index 2d30616ebb..1af04ac207 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java
@@ -11,20 +11,25 @@ import org.glassfish.jersey.server.ResourceConfig;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.openecomp.sdc.be.DummyConfigurationManager;
import org.openecomp.sdc.be.components.impl.GroupTypeBusinessLogic;
-import org.openecomp.sdc.be.components.impl.ResponseFormatManager;
import org.openecomp.sdc.be.components.utils.GroupTypeBuilder;
import org.openecomp.sdc.be.components.validation.UserValidations;
import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
+import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
+import org.openecomp.sdc.be.datatypes.elements.GroupTypeDataDefinition;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
import org.openecomp.sdc.be.impl.ComponentsUtils;
import org.openecomp.sdc.be.model.GroupTypeDefinition;
import org.openecomp.sdc.be.model.User;
-import org.openecomp.sdc.be.model.operations.impl.GroupTypeOperation;
+import org.openecomp.sdc.be.model.operations.api.DerivedFromOperation;
+import org.openecomp.sdc.be.model.operations.impl.*;
+import org.openecomp.sdc.be.resources.data.GroupTypeData;
+import org.openecomp.sdc.common.api.ConfigurationSource;
import org.openecomp.sdc.common.api.Constants;
+import org.openecomp.sdc.common.impl.ExternalConfiguration;
+import org.openecomp.sdc.common.impl.FSConfigurationSource;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import javax.ws.rs.client.Invocation;
@@ -38,27 +43,34 @@ import java.util.stream.Stream;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class GroupTypesEndpointTest extends JerseySpringBaseTest {
private static final String USER_ID = "a001";
- private static final String INVALID_USER_ID = "a002";
private static final GroupTypeDefinition EMPTY_GROUP_TYPE = new GroupTypeDefinition();
private static final String COMPONENT_TYPE = "VF";
private static final HashSet<String> EXCLUDED_TYPES = Sets.newHashSet("Root", "Heat");
private static ComponentsUtils componentsUtils;
- private static GroupTypeOperation groupTypeOperation;
+ private static TitanGenericDao titanGenericDao;
+ private static CapabilityTypeOperation capabilityTypeOperation;
+ private static DerivedFromOperation derivedFromOperation;
private static TitanDao titanDao;
+ private static PropertyOperation propertyOperation;
+ private static CapabilityOperation capabilityOperation;
private static UserValidations userValidations;
+ private static OperationUtils operationUtils;
private static User user;
- @Configuration
+ static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be");
+ static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource);
+
+ @org.springframework.context.annotation.Configuration
@Import(BaseTestConfig.class)
static class GroupTypesTestConfig {
@@ -69,27 +81,31 @@ public class GroupTypesEndpointTest extends JerseySpringBaseTest {
@Bean
GroupTypeBusinessLogic groupTypeBusinessLogic() {
- return new GroupTypeBusinessLogic(groupTypeOperation, titanDao, userValidations);
+ return new GroupTypeBusinessLogic(groupTypeOperation(), titanDao, userValidations, componentsUtils);
+ }
+
+ @Bean
+ GroupTypeOperation groupTypeOperation() {
+ return new GroupTypeOperation(titanGenericDao, propertyOperation, capabilityTypeOperation, capabilityOperation, derivedFromOperation, operationUtils);
}
}
@BeforeClass
public static void initClass() {
componentsUtils = mock(ComponentsUtils.class);
- groupTypeOperation = mock(GroupTypeOperation.class);
+ propertyOperation = mock(PropertyOperation.class);
+ capabilityTypeOperation = mock(CapabilityTypeOperation.class);
titanDao = mock(TitanDao.class);
+ titanGenericDao = mock(TitanGenericDao.class);
userValidations = mock(UserValidations.class);
+ operationUtils = mock(OperationUtils.class);
user = mock(User.class);
}
@Before
public void init() {
- new DummyConfigurationManager();
- when(ConfigurationManager.getConfigurationManager().getConfiguration().getExcludedGroupTypesMapping()).thenReturn(buildExcludeGroupTypesMap());
- ResponseFormatManager responseFormatManager = ResponseFormatManager.getInstance();
- when(userValidations.validateUserExists(eq(USER_ID), anyString(), anyBoolean())).thenReturn(Either.left(user));
- // TODO: handle for invalid user test
-// when(userValidations.validateUserExists(eq(INVALID_USER_ID), anyString(), anyBoolean())).thenReturn(Either.right(???)));
+ when(userValidations.validateUserExists(eq(USER_ID), anyString(), anyBoolean())).thenReturn(user);
+ when(titanGenericDao.getByCriteriaWithPredicate(eq(NodeTypeEnum.GroupType), any(), eq(GroupTypeData.class))).thenReturn(Either.left(buildGroupTypeDataList()));
}
@Override
@@ -105,26 +121,31 @@ public class GroupTypesEndpointTest extends JerseySpringBaseTest {
}
@Test
+ public void verifyExclusionMapIsCaseInsensitive() {
+ Map<String, Set<String>> excludedGroupTypesMapping = configurationManager.getConfiguration().getExcludedGroupTypesMapping();
+ assertThat(excludedGroupTypesMapping.get(COMPONENT_TYPE)).hasSameElementsAs(excludedGroupTypesMapping.get(COMPONENT_TYPE.toLowerCase()));
+ }
+
+ @Test
public void getGroupTypes_validUser_Success() {
List<GroupTypeDefinition> testConfigGroupTypes = buildGroupTypesList();
- when(groupTypeOperation.getAllGroupTypes(EXCLUDED_TYPES)).thenReturn(buildGroupTypesList());
- List<GroupTypeDefinition> fetchedGroupTypes = buildGetGroupTypesCall(USER_ID).get(new GenericType<List<GroupTypeDefinition>>(){});
+ List<GroupTypeDefinition> fetchedGroupTypes = buildGetGroupTypesCall(USER_ID, COMPONENT_TYPE).get(new GenericType<List<GroupTypeDefinition>>(){});
verifyGroupTypesList(testConfigGroupTypes, fetchedGroupTypes);
}
@Test
public void getGroupTypes_whenNoInteranlComponentType_passEmptyAsExcludedTypes() {
List<GroupTypeDefinition> testConfigGroupTypes = buildGroupTypesList();
- when(groupTypeOperation.getAllGroupTypes(null)).thenReturn(buildGroupTypesList());
List<GroupTypeDefinition> fetchedGroupTypes = buildGetGroupTypesCallNoInternalComponent(USER_ID).get(new GenericType<List<GroupTypeDefinition>>(){});
verifyGroupTypesList(testConfigGroupTypes, fetchedGroupTypes);
}
private void verifyGroupTypesList(List<GroupTypeDefinition> groupTypes, List<GroupTypeDefinition> fetchedGroupTypes) {
+ String[] expectedReturnFields = {"version", "type", "uniqueId", "name", "icon"};
assertThat(fetchedGroupTypes)
- .usingElementComparatorOnFields("version", "type", "uniqueId")
+ .usingElementComparatorOnFields(expectedReturnFields)
.isEqualTo(groupTypes);
- verifyOnlySpecificFieldsInResponse(fetchedGroupTypes, "version", "type", "uniqueId");
+ verifyOnlySpecificFieldsInResponse(fetchedGroupTypes, expectedReturnFields);
}
private void verifyOnlySpecificFieldsInResponse(List<GroupTypeDefinition> fetchedGroupTypes, String ... fields) {
@@ -133,9 +154,9 @@ public class GroupTypesEndpointTest extends JerseySpringBaseTest {
.containsOnly(EMPTY_GROUP_TYPE);
}
- private Invocation.Builder buildGetGroupTypesCall(String userId) {
+ private Invocation.Builder buildGetGroupTypesCall(String userId, String componentType) {
return target("/v1/catalog/groupTypes")
- .queryParam("internalComponentType", COMPONENT_TYPE)
+ .queryParam("internalComponentType", componentType)
.request(MediaType.APPLICATION_JSON)
.header(Constants.USER_ID_HEADER, userId);
}
@@ -157,14 +178,43 @@ public class GroupTypesEndpointTest extends JerseySpringBaseTest {
private List<GroupTypeDefinition> buildGroupTypesList() {
GroupTypeDefinition type1 = GroupTypeBuilder.create()
.setDerivedFrom("root")
- .setType("VFModule")
+ .setType("org.openecomp.groups.VfModule")
.setUniqueId("id1")
.setVersion("1.0")
+ .setName("vf module")
+ .setIcon("vf module icon")
+ .build();
+ GroupTypeDefinition type2 = GroupTypeBuilder.create()
+ .setDerivedFrom("root")
+ .setType("org.openecomp.groups.NetworkCollection")
+ .setUniqueId("id2")
+ .setVersion("1.0")
+ .setName("network collection")
+ .setIcon("network collection icon")
.build();
- GroupTypeDefinition type2 = GroupTypeBuilder.create().setDerivedFrom("root").setType("Heat").setUniqueId("id2").build();
return asList(type1, type2);
}
+ private List<GroupTypeData> buildGroupTypeDataList() {
+ GroupTypeDataDefinition d1 = new GroupTypeDataDefinition();
+ d1.setType("org.openecomp.groups.VfModule");
+ d1.setDerivedFrom("root");
+ d1.setUniqueId("id1");
+ d1.setVersion("1.0");
+ d1.setName("vf module");
+ d1.setIcon("vf module icon");
+ GroupTypeData gt1 = new GroupTypeData(d1);
+ GroupTypeDataDefinition d2 = new GroupTypeDataDefinition();
+ d2.setType("org.openecomp.groups.NetworkCollection");
+ d2.setDerivedFrom("root");
+ d2.setUniqueId("id2");
+ d2.setVersion("1.0");
+ d2.setName("network collection");
+ d2.setIcon("network collection icon");
+ GroupTypeData gt2 = new GroupTypeData(d2);
+ return asList(gt1, gt2);
+ }
+
private GroupTypeDefinition[] listOfEmptyGroupTypes(int size) {
return Stream.generate(GroupTypeDefinition::new).limit(size).toArray(GroupTypeDefinition[]::new);
}