summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java')
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java95
1 files changed, 95 insertions, 0 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java
index 88eff3372a..58d93fbfb8 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java
@@ -32,6 +32,7 @@ import org.mockito.stubbing.Answer;
import org.openecomp.sdc.be.auditing.impl.AuditingManager;
import org.openecomp.sdc.be.components.impl.ImportUtils;
import org.openecomp.sdc.be.components.impl.ImportUtilsTest;
+import org.openecomp.sdc.be.components.impl.InterfaceOperationBusinessLogic;
import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic;
import org.openecomp.sdc.be.components.impl.ResourceImportManager;
import org.openecomp.sdc.be.components.impl.ResponseFormatManager;
@@ -40,8 +41,10 @@ import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction;
import org.openecomp.sdc.be.config.Configuration;
import org.openecomp.sdc.be.config.ConfigurationManager;
import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.datatypes.elements.OperationDataDefinition;
import org.openecomp.sdc.be.impl.ComponentsUtils;
import org.openecomp.sdc.be.model.CapabilityDefinition;
+import org.openecomp.sdc.be.model.InterfaceDefinition;
import org.openecomp.sdc.be.model.PropertyConstraint;
import org.openecomp.sdc.be.model.PropertyDefinition;
import org.openecomp.sdc.be.model.RequirementDefinition;
@@ -68,6 +71,7 @@ import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.when;
@@ -79,6 +83,8 @@ public class ResourceImportManagerTest {
static AuditingManager auditingManager = Mockito.mock(AuditingManager.class);
static ResponseFormatManager responseFormatManager = Mockito.mock(ResponseFormatManager.class);
static ResourceBusinessLogic resourceBusinessLogic = Mockito.mock(ResourceBusinessLogic.class);
+ static InterfaceOperationBusinessLogic interfaceOperationBusinessLogic = Mockito.mock(InterfaceOperationBusinessLogic.class);
+
static UserBusinessLogic userAdmin = Mockito.mock(UserBusinessLogic.class);
static ToscaOperationFacade toscaOperationFacade = Mockito.mock(ToscaOperationFacade.class);
@@ -92,6 +98,7 @@ public class ResourceImportManagerTest {
when(toscaOperationFacade.getLatestByToscaResourceName(Mockito.anyString())).thenReturn(Either.left(null));
importManager.setResponseFormatManager(responseFormatManager);
importManager.setResourceBusinessLogic(resourceBusinessLogic);
+ importManager.setInterfaceOperationBusinessLogic(interfaceOperationBusinessLogic);
importManager.setToscaOperationFacade(toscaOperationFacade);
String appConfigDir = "src/test/resources/config/catalog-be";
@@ -195,6 +202,78 @@ public class ResourceImportManagerTest {
testSetRequirments(createResource.left);
}
+
+ @Test
+ public void testResourceCreationWithInterfaceImplementation() throws IOException {
+ UploadResourceInfo resourceMD = createDummyResourceMD();
+ User user = new User();
+ user.setUserId(resourceMD.getContactId());
+ when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(user);
+
+ setResourceBusinessLogicMock();
+
+ String jsonContent = ImportUtilsTest.loadCustomTypeFileNameToJsonString("custom-types-node-type-with-interface-impl.yml");
+
+ Map<String, InterfaceDefinition> interfaceTypes = new HashMap<>();
+ final InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
+ interfaceDefinition.setType("tosca.interfaces.node.lifecycle.Standard");
+ Map<String, OperationDataDefinition> operations = new HashMap<>();
+ operations.put("configure", new OperationDataDefinition());
+ interfaceDefinition.setOperations(operations );
+ interfaceTypes.put("tosca.interfaces.node.lifecycle.standard", interfaceDefinition);
+ when(interfaceOperationBusinessLogic.getAllInterfaceLifecycleTypes()).thenReturn(Either.left(interfaceTypes));
+
+ ImmutablePair<Resource, ActionStatus> createResource = importManager.importNormativeResource(jsonContent, resourceMD, user, true, true);
+ testSetInterfaceImplementation(createResource.left);
+ }
+
+ @Test
+ public void testResourceCreationWithInterfaceImplementation_UnknownInterface() throws IOException {
+ UploadResourceInfo resourceMD = createDummyResourceMD();
+ User user = new User();
+ user.setUserId(resourceMD.getContactId());
+ when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(user);
+
+ setResourceBusinessLogicMock();
+
+ String jsonContent = ImportUtilsTest.loadCustomTypeFileNameToJsonString("custom-types-node-type-with-unknown-interface-impl.yml");
+
+ Map<String, InterfaceDefinition> interfaceTypes = new HashMap<>();
+ final InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
+ interfaceDefinition.setType("tosca.interfaces.node.lifecycle.Standard");
+ Map<String, OperationDataDefinition> operations = new HashMap<>();
+ operations.put("configure", new OperationDataDefinition());
+ interfaceDefinition.setOperations(operations );
+ interfaceTypes.put("tosca.interfaces.node.lifecycle.standard", interfaceDefinition);
+ when(interfaceOperationBusinessLogic.getAllInterfaceLifecycleTypes()).thenReturn(Either.left(interfaceTypes));
+
+ ImmutablePair<Resource, ActionStatus> createResource = importManager.importNormativeResource(jsonContent, resourceMD, user, true, true);
+ assertNull(createResource.left.getInterfaces());
+ }
+
+ @Test
+ public void testResourceCreationWitInterfaceImplementation_UnknownOperation() throws IOException {
+ UploadResourceInfo resourceMD = createDummyResourceMD();
+ User user = new User();
+ user.setUserId(resourceMD.getContactId());
+ when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(user);
+
+ setResourceBusinessLogicMock();
+
+ String jsonContent = ImportUtilsTest.loadCustomTypeFileNameToJsonString("custom-types-node-type-with-interface-impl-unknown-operation.yml");
+
+ Map<String, InterfaceDefinition> interfaceTypes = new HashMap<>();
+ final InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
+ interfaceDefinition.setType("tosca.interfaces.node.lifecycle.Standard");
+ Map<String, OperationDataDefinition> operations = new HashMap<>();
+ operations.put("configure", new OperationDataDefinition());
+ interfaceDefinition.setOperations(operations );
+ interfaceTypes.put("tosca.interfaces.node.lifecycle.standard", interfaceDefinition);
+ when(interfaceOperationBusinessLogic.getAllInterfaceLifecycleTypes()).thenReturn(Either.left(interfaceTypes));
+
+ ImmutablePair<Resource, ActionStatus> createResource = importManager.importNormativeResource(jsonContent, resourceMD, user, true, true);
+ assertNull(createResource.left.getInterfaces());
+ }
private void setResourceBusinessLogicMock() {
when(resourceBusinessLogic.getUserAdmin()).thenReturn(userAdmin);
@@ -318,6 +397,22 @@ public class ResourceImportManagerTest {
assertEquals("binding", requirement.getName());
}
+
+ private void testSetInterfaceImplementation(Resource resource) {
+ Map<String, InterfaceDefinition> interfaces = resource.getInterfaces();
+ assertEquals(1, interfaces.size());
+ assertTrue(interfaces.containsKey("Standard"));
+
+ InterfaceDefinition interfaceDefinition = interfaces.get("Standard");
+ assertEquals("tosca.interfaces.node.lifecycle.Standard", interfaceDefinition.getType());
+ assertEquals("tosca.interfaces.node.lifecycle.standard", interfaceDefinition.getUniqueId());
+ Map<String, OperationDataDefinition> operations = interfaceDefinition.getOperations();
+ assertEquals(1, operations.size());
+
+ OperationDataDefinition operation = operations.get("configure");
+ assertEquals("\"camunda/vnfConfigure\"", operation.getImplementation().getArtifactName());
+
+ }
private void testSetDerivedFrom(Resource resource) {
assertEquals(1, resource.getDerivedFrom().size());