diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java')
-rw-r--r-- | openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java | 117 |
1 files changed, 94 insertions, 23 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java index c01f986ab1..65444b9c46 100644 --- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java +++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/external/artifact/MonitoringMibEnricherTest.java @@ -20,6 +20,7 @@ package org.openecomp.sdc.enrichment.impl.external.artifact; +import org.apache.commons.collections4.CollectionUtils; import org.mockito.ArgumentCaptor; import org.mockito.InjectMocks; import org.mockito.Mock; @@ -32,7 +33,11 @@ import org.openecomp.core.model.types.ServiceArtifact; import org.openecomp.core.utilities.file.FileUtils; import org.openecomp.sdc.enrichment.EnrichmentInfo; import org.openecomp.sdc.tosca.datatypes.ToscaNodeType; +import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; +import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate; import org.openecomp.sdc.tosca.services.DataModelUtil; +import org.openecomp.sdc.tosca.services.ToscaUtil; +import org.openecomp.sdc.tosca.services.YamlUtil; import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao; import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; @@ -43,10 +48,18 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.io.File; +import java.io.IOException; import java.nio.ByteBuffer; import java.util.ArrayList; -import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.Set; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; import static org.mockito.Matchers.anyObject; import static org.mockito.Mockito.atLeastOnce; @@ -73,20 +86,23 @@ public class MonitoringMibEnricherTest { @Test public void testEnrichComponent() throws Exception { String vspId = "123"; - String componentId = "1111111111"; + String componentId = "1"; Version version = new Version(); version.setMajor(1); version.setMinor(0); - ComponentEntity componentEntity = getComponentEntity(vspId, version, componentId); - setMockToEnrichComponent(vspId, componentId, version); - monitoringMibEnricher.enrichComponent(componentEntity, vspId, version); - + ComponentEntity componentEntity = getComponentEntity(vspId, version, componentId, vspId + + "enrichMib_server"); + setMockToEnrichComponent(vspId, version, componentId); String componentName = componentEntity.getComponentCompositionData().getName(); String unifiedComponentName = ToscaNodeType.ABSTRACT_NODE_TYPE_PREFIX + DataModelUtil.getNamespaceSuffix(componentName); + ArgumentCaptor<ServiceArtifact> expectedServiceArtifact = ArgumentCaptor.forClass(ServiceArtifact.class); + monitoringMibEnricher.enrichComponent(vspId, version, componentEntity, + Stream.of(unifiedComponentName).collect(Collectors.toSet())); + Mockito.verify(enrichedServiceModelDaoMock, atLeastOnce()) .storeExternalArtifact(expectedServiceArtifact.capture()); Assert.assertEquals(expectedServiceArtifact.getValue().getName() @@ -98,7 +114,7 @@ public class MonitoringMibEnricherTest { } @Test - public void testEnrich() throws Exception { + public void testEnrichmentOfTwoComponentsFromSameType() throws IOException { EnrichmentInfo enrichmentInfo = new EnrichmentInfo(); Version version = new Version(); version.setMajor(1); @@ -106,24 +122,43 @@ public class MonitoringMibEnricherTest { String vspId = "123"; enrichmentInfo.setKey(vspId); enrichmentInfo.setVersion(version); - String componentId1 = "1111111111"; - String componentId2 = "2222222222"; + String componentId1 = "1"; + String componentId2 = "2"; + String abstType = "org.openecomp.resource.abstract.nodes.pd_server"; + String abstType1 = "org.openecomp.resource.abstract.nodes.pd_server_1"; + + List<ComponentEntity> returnedComponents = new ArrayList<>(); + returnedComponents.add(getComponentEntity(vspId, version, componentId1, + "pd_server")); + returnedComponents.add(getComponentEntity(vspId, version, componentId2, + "pd_server")); + Mockito.when(componentDaoMock.list(anyObject())) + .thenReturn(returnedComponents); + setMockToEnrichComponent(vspId, version, componentId1); + ToscaServiceModel mockServiceModel = + getMockServiceModel("/mock/enrichMib/toscaModel/twoAbstractNodesFromSameType"); - Collection<ComponentEntity> returnedComponents = new ArrayList<>(); - returnedComponents.add(getComponentEntity(vspId, version, componentId1)); - returnedComponents.add(getComponentEntity(vspId, version, componentId2)); + ArgumentCaptor<ServiceArtifact> expectedServiceArtifact = + ArgumentCaptor.forClass(ServiceArtifact.class); + monitoringMibEnricher.enrich(enrichmentInfo, mockServiceModel); - Mockito.when(componentDaoMock.list(anyObject())) - .thenReturn(returnedComponents); - setMockToEnrichComponent(vspId, componentId1, version); + Mockito.verify(enrichedServiceModelDaoMock, times(24)) + .storeExternalArtifact(expectedServiceArtifact.capture()); + + Set<String> prefixes = getAllMibDirectoryPrefixes(expectedServiceArtifact.getAllValues()); - monitoringMibEnricher.enrich(enrichmentInfo); - Mockito.verify(enrichedServiceModelDaoMock, times(12)).storeExternalArtifact(anyObject()); + validateExpectedAbstractTypes(Stream.of(abstType, abstType1).collect(Collectors.toSet()), prefixes); + } + private void validateExpectedAbstractTypes(Set<String> expectedAbstractTypes, + Set<String> prefixes) { + for(String abstType : expectedAbstractTypes){ + Assert.assertTrue(prefixes.contains(abstType)); + } } - private void setMockToEnrichComponent(String vspId, String componentId, Version version) { + private void setMockToEnrichComponent(String vspId, Version version, String componentId) { ComponentMonitoringUploadEntity returnedArtifact = new ComponentMonitoringUploadEntity(); returnedArtifact.setVspId(vspId); returnedArtifact.setVersion(version); @@ -137,16 +172,18 @@ public class MonitoringMibEnricherTest { Mockito.doNothing().when(enrichedServiceModelDaoMock).storeExternalArtifact(anyObject()); } - private ComponentEntity getComponentEntity(String vspId, Version version, String componentId) { + private ComponentEntity getComponentEntity(String vspId, + Version version, + String componentId, + String componentNameSuffix) { ComponentEntity componentEntity = new ComponentEntity(); componentEntity.setId(componentId); componentEntity.setVspId(vspId); componentEntity.setVersion(version); - String componentName = vspId + "enrichMib_server"; String compositionData = "{\n" + - " \"name\": \"org.openecomp.resource.vfc.nodes.heat." + componentName + "\",\n" + - " \"displayName\": \"" + componentName + "\"\n" + + " \"name\": \"org.openecomp.resource.vfc.nodes.heat." + componentNameSuffix + "\",\n" + + " \"displayName\": \"" + componentNameSuffix + "\"\n" + "}"; componentEntity.setCompositionData(compositionData); return componentEntity; @@ -154,8 +191,42 @@ public class MonitoringMibEnricherTest { private ByteBuffer getMibByteBuffer(String fileName) { byte[] mibBytes = FileUtils.readViaInputStream(this.getClass().getResource(fileName), - stream -> FileUtils.toByteArray(stream)); + FileUtils::toByteArray); return ByteBuffer.wrap(mibBytes); } + private ToscaServiceModel getMockServiceModel(String serviceTemplatesDirectory) + throws IOException { + File directory = new File(this.getClass().getResource(serviceTemplatesDirectory).getFile()); + ToscaServiceModel serviceModel = new ToscaServiceModel(); + Map<String, ServiceTemplate> serviceTemplates = new HashMap<>(); + + for (final File serviceTemplateFile : directory.listFiles()) { + byte[] content = FileUtils + .readViaInputStream(this.getClass().getResource(serviceTemplatesDirectory + File + .separator + serviceTemplateFile.getName()), + FileUtils::toByteArray); + ServiceTemplate serviceTemplate = + new YamlUtil().yamlToObject(new String(content), ServiceTemplate.class); + serviceTemplates.put(ToscaUtil.getServiceTemplateFileName(serviceTemplate), serviceTemplate); + } + + serviceModel.setServiceTemplates(serviceTemplates); + return serviceModel; + } + + private Set<String> getAllMibDirectoryPrefixes(List<ServiceArtifact> serviceArtifacts) { + if(CollectionUtils.isEmpty(serviceArtifacts)){ + return new HashSet<>(); + } + + Set<String> prefixes = new HashSet<>(); + for(ServiceArtifact serviceArtifact : serviceArtifacts){ + String absolutePath = serviceArtifact.getName(); + prefixes.add(absolutePath.split(Pattern.quote(File.separator))[0]); + } + + return prefixes; + } + } |