summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogicTest.java111
1 files changed, 108 insertions, 3 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogicTest.java
index 3afb86da2c..de27677a42 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogicTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogicTest.java
@@ -29,28 +29,45 @@
*/
package org.openecomp.sdc.be.components.impl;
+import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
+import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
+import org.openecomp.sdc.be.components.validation.AccessValidations;
+import org.openecomp.sdc.be.config.Configuration;
+import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.impl.ComponentsUtils;
import org.openecomp.sdc.be.model.*;
import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
+import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElementTypeEnum;
import org.openecomp.sdc.be.model.jsontitan.operations.GroupsOperation;
+import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+import org.openecomp.sdc.be.model.operations.impl.PropertyOperation;
+import org.openecomp.sdc.be.model.tosca.ToscaType;
+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.openecomp.sdc.exception.ResponseFormat;
import fj.data.Either;
+import javax.servlet.ServletContext;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Set;
-
+import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyMap;
@@ -72,6 +89,17 @@ public class GroupBusinessLogicTest {
private IGroupTypeOperation groupTypeOperation;
@Mock
private GroupsOperation groupsOperation;
+ @Mock
+ private AccessValidations accessValidations;
+ @Mock
+ private ToscaOperationFacade toscaOperationFacade;
+ @Mock
+ private PropertyOperation propertyOperation;
+
+ private final static ServletContext servletContext = Mockito.mock(ServletContext.class);
+ private final static ConfigurationManager configurationManager = Mockito.mock(ConfigurationManager.class);
+ private final static Configuration configuration = Mockito.mock(Configuration.class);
+ static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be");
@Test
public void testCreateGroups_NoDataType() {
@@ -82,7 +110,7 @@ public class GroupBusinessLogicTest {
groupDefinitions.add(groupDefinition);
when(dataTypeCache.getAll()).thenReturn(Either.right(TitanOperationStatus.NOT_FOUND));
result = test.createGroups(component, groupDefinitions, true);
- assertThat(result.isRight());
+ Assert.assertTrue(result.isRight());
}
@Test
@@ -102,6 +130,83 @@ public class GroupBusinessLogicTest {
when(groupsOperation.createGroups(any(Component.class), anyMap())).thenReturn(Either.left(groupDefinitions));
when(groupsOperation.addCalculatedCapabilitiesWithProperties(anyString(), anyMap(), anyMap())).thenReturn(StorageOperationStatus.OK);
result = test.createGroups(component, groupDefinitions, true);
- assertThat(result.isLeft());
+ Assert.assertTrue(result.isLeft());
+ }
+
+ @Test
+ public void testValidUpdateVfGrpNameOnGraph() {
+ Either<List<GroupDefinition>, ResponseFormat> result;
+ Component component = new Resource();
+ component.setSystemName("name");
+
+ List<GroupDefinition> groupDefinitions = new ArrayList<>();
+ GroupDefinition groupDefinition = new GroupDefinition();
+ groupDefinition.setName("grp_one-1. ::module-1");
+ groupDefinition.setType(Constants.DEFAULT_GROUP_VF_MODULE);
+ groupDefinition.setDescription("desc");
+ groupDefinitions.add(groupDefinition);
+
+ result = test.validateUpdateVfGroupNamesOnGraph(groupDefinitions, component);
+ Assert.assertTrue(result.isLeft());
+ }
+
+ @Test
+ public void testValidAndUpdateGrpInstancePropValues_fail() {
+ Either<GroupInstance, ResponseFormat> result;
+ String componentId = "id";
+ String instanceId = "id";
+ GroupInstance oldGroupInstance = new GroupInstance();
+ List<GroupInstanceProperty> newProperties = new ArrayList<>();
+ List<PropertyDataDefinition> properties = new LinkedList<>();
+ properties.add(new PropertyDataDefinition());
+ oldGroupInstance.setProperties(properties);
+ result = test.validateAndUpdateGroupInstancePropertyValues(componentId, instanceId, oldGroupInstance, newProperties);
+ Assert.assertTrue(result.isRight());
+ }
+
+ @Test
+ public void testCreateGroup() {
+ GroupDefinition result;
+ String componentId = "id";
+ String grpType = "grpType";
+ String userId = "userId";
+ ComponentTypeEnum compTypeEnum = ComponentTypeEnum.RESOURCE;
+ Component component = new Resource();
+ component.setName("name");
+ component.setUniqueId(componentId);
+ component.setToscaType(ToscaElementTypeEnum.TOPOLOGY_TEMPLATE.getValue());
+ List<GroupDefinition> groupDefList = new ArrayList<>();
+ Map<String, Set<String>> excludedGroupTypesMap = new HashMap<>();
+ GroupTypeDefinition groupTypeDefinition = new GroupTypeDefinition();
+ Map<String, DataTypeDefinition> map = new HashMap<>();
+ when(dataTypeCache.getAll()).thenReturn(Either.left(map));
+ when(accessValidations.validateUserCanWorkOnComponent(componentId, compTypeEnum, userId, "CreateGroup")).thenReturn(component);
+
+ ConfigurationManager configurationManager = new ConfigurationManager(configurationSource);
+ configurationManager.setConfiguration(new Configuration());
+ configurationManager.getConfiguration().setExcludedGroupTypesMapping(excludedGroupTypesMap);
+
+ List<PropertyDefinition> properties = asList(
+ buildProperty("network_collection_type", "l3-network", "network collection type, defined with default value"));
+ groupTypeDefinition.setProperties(properties);
+ when(groupTypeOperation.getLatestGroupTypeByType(grpType, false)).thenReturn(Either.left(groupTypeDefinition));
+ when(toscaOperationFacade.canAddGroups(componentId)).thenReturn(true);
+ when(groupTypeOperation.getLatestGroupTypeByType(grpType, true)).thenReturn(Either.left(groupTypeDefinition));
+ when(propertyOperation.checkInnerType(any(PropertyDefinition.class))).thenReturn(Either.left("ok"));
+ when(propertyOperation.validateAndUpdatePropertyValue("string", null, "ok", map)).thenReturn(Either.left(component));
+ when(groupsOperation.addGroups(any(Resource.class), any())).thenReturn(Either.left(groupDefList));
+ when(groupsOperation.addCalculatedCapabilitiesWithProperties(anyString(), anyMap(), anyMap())).thenReturn(StorageOperationStatus.OK);
+ result = test.createGroup(componentId, compTypeEnum, grpType, userId);
+ assertThat(result.getClass().isInstance(GroupDefinition.class));
+ }
+
+ private PropertyDefinition buildProperty(String name, String defaultValue, String description) {
+ PropertyDefinition property = new PropertyDefinition();
+ property.setName(name);
+ property.setDefaultValue(defaultValue);
+ property.setRequired(true);
+ property.setDescription(description);
+ property.setType(ToscaType.STRING.name().toLowerCase());
+ return property;
}
} \ No newline at end of file