UT-asdctool ArtifactUuidFix 88/70488/3
authorSindhuri.A <arcot.sindhuri@huawei.com>
Mon, 15 Oct 2018 16:42:55 +0000 (22:12 +0530)
committerMichael Lando <michael.lando@intl.att.com>
Wed, 17 Oct 2018 06:33:45 +0000 (06:33 +0000)
UT for asdctool impl ArtifactUuidFix class

Issue-ID: SDC-1775

Change-Id: Idcf66bf73cdf013d615f4b7967197c3b99ee70e2
Signed-off-by: Sindhuri.A <arcot.sindhuri@huawei.com>
asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/ArtifactUuidFixTest.java

index 3fce1b6..891946d 100644 (file)
 package org.openecomp.sdc.asdctool.impl;
 
+import com.thinkaurelius.titan.core.TitanVertex;
+import fj.data.Either;
 import org.junit.Assert;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentMatchers;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao;
+import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus;
+import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
+import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
+import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
 import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
 import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
-import org.openecomp.sdc.be.model.Component;
-
+import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
+import org.openecomp.sdc.be.model.*;
+import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
+import org.openecomp.sdc.be.resources.data.ESArtifactData;
+import org.openecomp.sdc.common.api.ArtifactTypeEnum;
+import org.openecomp.sdc.common.api.Constants;
+
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.ArrayList;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
 
+@RunWith(MockitoJUnitRunner.class)
 public class ArtifactUuidFixTest {
+       @InjectMocks
+       private ArtifactUuidFix test;
 
-       private ArtifactUuidFix createTestSubject() {
-               return new ArtifactUuidFix();
-       }
+       @Mock
+       private TitanDao titanDao;
+
+       @Mock
+       private TitanVertex vertex;
 
-       @Test(expected=NullPointerException.class)
-       public void testDoFix() throws Exception {
-               ArtifactUuidFix testSubject;
+       @Mock
+       ToscaOperationFacade toscaOperationFacade;
+
+       @Mock
+       ArtifactCassandraDao artifactCassandraDao;
+
+       @Mock
+       Service service;
+
+       @Test
+       public void testDoFixVf() {
                String fixComponent = "";
                String runMode = "";
+               String uniqueId = "uniqueId";
                boolean result;
-
-               // test 1
-               testSubject = createTestSubject();
                fixComponent = "vf_only";
-               result = testSubject.doFix(fixComponent, runMode);
-               Assert.assertEquals(false, result);
-
-               // test 2
-               testSubject = createTestSubject();
-               runMode = "service_vf";
-               result = testSubject.doFix(fixComponent, runMode);
-               Assert.assertEquals(false, result);
-
-               // test 3
-               testSubject = createTestSubject();
-               runMode = "fix";
-               result = testSubject.doFix(fixComponent, runMode);
-               Assert.assertEquals(false, result);
-
-               // test 4
-               testSubject = createTestSubject();
-               runMode = "fix";
-               result = testSubject.doFix(fixComponent, runMode);
-               Assert.assertEquals(false, result);
-
-               // test 5
-               testSubject = createTestSubject();
-               runMode = "fix_only_services";
-               result = testSubject.doFix(fixComponent, runMode);
-               Assert.assertEquals(false, result);
+               Map<GraphPropertyEnum, Object> hasProps1 = new HashMap<>();
+               hasProps1.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+               hasProps1.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+               List<GraphVertex> list = new ArrayList<>();
+               GraphVertex graphVertex = new GraphVertex();
+               graphVertex.setVertex(vertex);
+               graphVertex.setUniqueId(uniqueId);
+               graphVertex.setMetadataProperties(hasProps1);
+               list.add(graphVertex);
+               when(titanDao.getByCriteria(VertexTypeEnum.NODE_TYPE, hasProps1)).thenReturn(Either.left(list));
+
+               Map<GraphPropertyEnum, Object> hasProps2 = new HashMap<>();
+               hasProps2.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+               hasProps2.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF);
+               hasProps2.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+               when(titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps2)).thenReturn(Either.left(list));
+
+               Map<GraphPropertyEnum, Object> hasProps3 = new HashMap<>();
+               hasProps3.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+               hasProps3.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+               when(titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps3)).thenReturn(Either.left(list));
+
+               Map<GraphPropertyEnum, Object> hasProps = new HashMap<>();
+               hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+               hasProps.put(GraphPropertyEnum.RESOURCE_TYPE, ResourceTypeEnum.VF.name());
+               Map<GraphPropertyEnum, Object> hasNotProps = new HashMap<>();
+               hasNotProps.put(GraphPropertyEnum.IS_DELETED, true);
+               when(titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(list));
+               Resource resource = new Resource();
+               resource.setName(uniqueId);
+               Map<String, ArtifactDefinition> deployArtifact = new HashMap<>();
+               ArtifactDefinition artifactDefinition = new ArtifactDefinition();
+               artifactDefinition.setArtifactType(ArtifactTypeEnum.VF_MODULES_METADATA.getType());
+               artifactDefinition.setUniqueId("one.two");
+               artifactDefinition.setArtifactUUID("one.two");
+               deployArtifact.put("two", artifactDefinition);
+               resource.setDeploymentArtifacts(deployArtifact);
+               List<GroupDefinition> groups = new ArrayList<>();
+               GroupDefinition groupDefinition = new GroupDefinition();
+               groupDefinition.setType(Constants.DEFAULT_GROUP_VF_MODULE);
+               List<String> artifacts = new ArrayList<>();
+               artifacts.add("one.two");
+               groupDefinition.setArtifacts(artifacts);
+               groupDefinition.setArtifactsUuid(artifacts);
+               groups.add(groupDefinition);
+               resource.setGroups(groups);
+               when(toscaOperationFacade.getToscaElement(graphVertex.getUniqueId())).thenReturn(Either.left(resource));
+               List<Service> serviceList = new ArrayList<>();
+               serviceList.add(service);
+
+               result = test.doFix(fixComponent, runMode);
+               assertEquals(true, result);
        }
 
        @Test
-       public void testDoFixTosca() throws Exception {
-               ArtifactUuidFix testSubject;
-               Map<String, List<Component>> nodeToFix = null;
-               Map<String, List<Component>> vfToFix = null;
-               Map<String, List<Component>> serviceToFix = null;
+       public void testDoFixServiceVf()
+       {
+               String fixComponent = "distributed_only";
+               String runMode = "service_vf";
+               String uniqueId = "uniqueId";
                boolean result;
-
-               // default test
-               testSubject = createTestSubject();
-       }
-
-       @Test(expected=NullPointerException.class)
-       public void testGetVerticesToValidate() throws Exception {
-               ArtifactUuidFix testSubject;
-               VertexTypeEnum type = null;
-               Map<GraphPropertyEnum, Object> hasProps = null;
-               Map<String, List<Component>> result;
-
-               // default test
-               testSubject = createTestSubject();
-               result = testSubject.getVerticesToValidate(type, hasProps);
+               Map<GraphPropertyEnum, Object> hasProps = new HashMap<>();
+               hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+               hasProps.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+               hasProps.put(GraphPropertyEnum.DISTRIBUTION_STATUS, DistributionStatusEnum.DISTRIBUTED.name());
+               Map<GraphPropertyEnum, Object> hasNotProps = new HashMap<>();
+               hasNotProps.put(GraphPropertyEnum.IS_DELETED, true);
+               Map<GraphPropertyEnum, Object> hasProps1 = new HashMap<>();
+               hasProps1.put(GraphPropertyEnum.NAME, "name");
+               List<GraphVertex> list = new ArrayList<>();
+               GraphVertex graphVertex = new GraphVertex();
+               graphVertex.setUniqueId(uniqueId);
+               graphVertex.setMetadataProperties(hasProps1);
+               list.add(graphVertex);
+
+               Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
+               ArtifactDefinition artifactDefinition = new ArtifactDefinition();
+               artifactDefinition.setArtifactType(ArtifactTypeEnum.VF_MODULES_METADATA.name());
+               artifactDefinition.setEsId("esID");
+               deploymentArtifacts.put("1",artifactDefinition);
+               List<GroupInstance> groupInstances = new ArrayList<>();
+               GroupInstance groupInstance = new GroupInstance();
+               groupInstances.add(groupInstance);
+
+               ComponentInstance componentInstance = new ComponentInstance();
+               componentInstance.setDeploymentArtifacts(deploymentArtifacts);
+               componentInstance.setGroupInstances(groupInstances);
+
+               Service service = new Service();
+               service.setUniqueId(uniqueId);
+               List<ComponentInstance> componentInstances = new ArrayList<>();
+               componentInstances.add(componentInstance);
+               service.setComponentInstances(componentInstances);
+
+               when(titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(list));
+               when(toscaOperationFacade.getToscaElement(ArgumentMatchers.eq(graphVertex.getUniqueId()),any(ComponentParametersView.class)))
+                               .thenReturn(Either.left(service));
+               byte[] payload = "value".getBytes();
+
+               ESArtifactData esArtifactData =new ESArtifactData();
+               esArtifactData.setDataAsArray(payload);
+               Either<ESArtifactData, CassandraOperationStatus> artifactfromESres = Either.left(esArtifactData);
+               when(artifactCassandraDao.getArtifact(anyString())).thenReturn(artifactfromESres);
+               result = test.doFix(fixComponent, runMode);
+               assertEquals(false, result);
        }
 
-       @Test(expected=NullPointerException.class)
-       public void testValidateTosca() throws Exception {
-               ArtifactUuidFix testSubject;
-               Map<String, List<Component>> vertices = null;
-               Map<String, List<Component>> compToFix = null;
-               String name = "";
+       @Test
+       public void testDoFixOnly()
+       {
+               String runMode = "fix_only_services";
+               String fixComponent = "";
                boolean result;
-
-               // default test
-               testSubject = createTestSubject();
-               result = testSubject.validateTosca(vertices, compToFix, name);
+               Map<GraphPropertyEnum, Object> hasProps1 = new HashMap<>();
+               hasProps1.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
+               hasProps1.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
+               List<GraphVertex> list = new ArrayList<>();
+               GraphVertex graphVertex = new GraphVertex();
+               graphVertex.setVertex(vertex);
+               graphVertex.setUniqueId("uniqueId");
+               graphVertex.setMetadataProperties(hasProps1);
+               graphVertex.addMetadataProperty(GraphPropertyEnum.NAME, "name");
+               list.add(graphVertex);
+               Map<GraphPropertyEnum, Object> hasProps = new HashMap<>();
+               hasProps.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.SERVICE.name());
+               Map<GraphPropertyEnum, Object> hasNotProps = new HashMap<>();
+               hasNotProps.put(GraphPropertyEnum.IS_DELETED, true);
+               when(titanDao.getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, hasProps, hasNotProps, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(list));
+               result = test.doFix(fixComponent, runMode);
+               assertEquals(false,result);
        }
 }
\ No newline at end of file