X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Forg%2Fonap%2Faai%2Fmodelloader%2Fnotification%2FArtifactDeploymentManagerTest.java;fp=src%2Ftest%2Fjava%2Forg%2Fonap%2Faai%2Fmodelloader%2Fnotification%2FArtifactDeploymentManagerTest.java;h=0000000000000000000000000000000000000000;hb=c5aea4a8bc398fc1c6220875e55b9520fd7f7524;hp=9d6f3c4b4c8da61a0296d14a5fc3da9700237c17;hpb=ce332032dd208c5c769a2297409d8aca3f780fa8;p=aai%2Fmodel-loader.git diff --git a/src/test/java/org/onap/aai/modelloader/notification/ArtifactDeploymentManagerTest.java b/src/test/java/org/onap/aai/modelloader/notification/ArtifactDeploymentManagerTest.java deleted file mode 100644 index 9d6f3c4..0000000 --- a/src/test/java/org/onap/aai/modelloader/notification/ArtifactDeploymentManagerTest.java +++ /dev/null @@ -1,189 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 European Software Marketing Ltd. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ -package org.onap.aai.modelloader.notification; - -import static org.junit.Assert.assertFalse; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import static org.onap.aai.modelloader.fixture.NotificationDataFixtureBuilder.getNotificationDataWithCatalogFile; -import static org.onap.aai.modelloader.fixture.NotificationDataFixtureBuilder.getNotificationDataWithOneOfEach; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mockito; -import org.mockito.internal.util.reflection.Whitebox; -import org.onap.aai.babel.service.data.BabelArtifact; -import org.onap.aai.modelloader.config.ModelLoaderConfig; -import org.onap.aai.modelloader.entity.Artifact; -import org.onap.aai.modelloader.entity.catalog.VnfCatalogArtifact; -import org.onap.aai.modelloader.entity.catalog.VnfCatalogArtifactHandler; -import org.onap.aai.modelloader.entity.model.BabelArtifactParsingException; -import org.onap.aai.modelloader.entity.model.ModelArtifactHandler; -import org.onap.aai.modelloader.extraction.InvalidArchiveException; -import org.onap.aai.modelloader.util.ArtifactTestUtils; -import org.onap.sdc.api.IDistributionClient; -import org.onap.sdc.api.notification.INotificationData; - -/** - * Tests {@link ArtifactDeploymentManager } - */ -public class ArtifactDeploymentManagerTest { - - private static final String CONFIG_FILE = "model-loader.properties"; - private static final String SHOULD_HAVE_RETURNED_FALSE = "This should have returned false"; - - private Properties configProperties; - private ArtifactDeploymentManager manager; - - private IDistributionClient mockDistributionClient; - private ModelArtifactHandler mockModelArtifactHandler; - private NotificationPublisher mockNotificationPublisher; - private VnfCatalogArtifactHandler mockVnfCatalogArtifactHandler; - - @Before - public void setup() throws IOException { - configProperties = new Properties(); - configProperties.load(this.getClass().getClassLoader().getResourceAsStream(CONFIG_FILE)); - ModelLoaderConfig config = new ModelLoaderConfig(configProperties, null); - - mockDistributionClient = mock(IDistributionClient.class); - mockModelArtifactHandler = mock(ModelArtifactHandler.class); - mockNotificationPublisher = mock(NotificationPublisher.class); - mockVnfCatalogArtifactHandler = mock(VnfCatalogArtifactHandler.class); - - manager = new ArtifactDeploymentManager(mockDistributionClient, config); - - Whitebox.setInternalState(manager, "modelArtifactHandler", mockModelArtifactHandler); - Whitebox.setInternalState(manager, "notificationPublisher", mockNotificationPublisher); - Whitebox.setInternalState(manager, "vnfCatalogArtifactHandler", mockVnfCatalogArtifactHandler); - } - - @After - public void tearDown() { - configProperties = null; - mockDistributionClient = null; - mockModelArtifactHandler = null; - mockNotificationPublisher = null; - mockVnfCatalogArtifactHandler = null; - manager = null; - } - - private List setupTest(byte[] xml, INotificationData data) throws IOException { - List toscaArtifacts = new ArrayList<>(); - org.onap.sdc.api.notification.IArtifactInfo artifactInfo = data.getServiceArtifacts().get(0); - - BabelArtifact xmlArtifact = - new BabelArtifact(artifactInfo.getArtifactName(), BabelArtifact.ArtifactType.MODEL, new String(xml)); - toscaArtifacts.add(xmlArtifact); - - return toscaArtifacts; - } - - @Test - public void deploy_catalogDeploymentsFailed() - throws IOException, BabelArtifactParsingException, InvalidArchiveException { - INotificationData data = getNotificationDataWithCatalogFile(); - - List catalogFiles = new ArrayList<>(); - catalogFiles.add(new VnfCatalogArtifact("Some catalog content")); - - when(mockModelArtifactHandler.pushArtifacts(any(), any(), any(), any())).thenReturn(true); - when(mockVnfCatalogArtifactHandler.pushArtifacts(eq(catalogFiles), eq(data.getDistributionID()), any(), any())) - .thenReturn(false); - Mockito.doNothing().when(mockNotificationPublisher).publishDeployFailure(mockDistributionClient, data, - data.getServiceArtifacts().get(0)); - - assertFalse(SHOULD_HAVE_RETURNED_FALSE, - manager.deploy(data, data.getServiceArtifacts(), new ArrayList<>(), catalogFiles)); - - Mockito.verify(mockModelArtifactHandler).pushArtifacts(eq(new ArrayList()), - eq(data.getDistributionID()), any(), any()); - Mockito.verify(mockVnfCatalogArtifactHandler).pushArtifacts(eq(catalogFiles), eq(data.getDistributionID()), - any(), any()); - Mockito.verify(mockModelArtifactHandler).rollback(eq(new ArrayList()), eq(data.getDistributionID()), - any()); - Mockito.verify(mockVnfCatalogArtifactHandler).rollback(eq(new ArrayList()), - eq(data.getDistributionID()), any()); - Mockito.verify(mockNotificationPublisher).publishDeployFailure(mockDistributionClient, data, - data.getServiceArtifacts().get(0)); - } - - private void doFailedCombinedTests(boolean modelsOK, boolean catalogsOK) - throws IOException, BabelArtifactParsingException, InvalidArchiveException { - INotificationData data = getNotificationDataWithOneOfEach(); - ArtifactTestUtils artifactTestUtils = new ArtifactTestUtils(); - byte[] xml = artifactTestUtils.loadResource("convertedYmls/AAI-SCP-Test-VSP-resource-1.0.xml"); - List toscaArtifacts = setupTest(xml, data); - List modelArtifacts = new BabelArtifactConverter().convertToModel(toscaArtifacts); - - List catalogFiles = new ArrayList<>(); - catalogFiles.add(new VnfCatalogArtifact("Some catalog content")); - - when(mockVnfCatalogArtifactHandler.pushArtifacts(eq(catalogFiles), eq(data.getDistributionID()), any(), any())) - .thenReturn(catalogsOK); - when(mockModelArtifactHandler.pushArtifacts(eq(modelArtifacts), eq(data.getDistributionID()), any(), any())) - .thenReturn(modelsOK); - - Mockito.doNothing().when(mockNotificationPublisher).publishDeploySuccess(mockDistributionClient, data, - data.getServiceArtifacts().get(0)); - Mockito.doNothing().when(mockNotificationPublisher).publishDeployFailure(mockDistributionClient, data, - data.getServiceArtifacts().get(0)); - - assertFalse(SHOULD_HAVE_RETURNED_FALSE, - manager.deploy(data, data.getServiceArtifacts(), modelArtifacts, catalogFiles)); - - // Catalog artifacts are only pushed if models are successful. - Mockito.verify(mockModelArtifactHandler).pushArtifacts(eq(modelArtifacts), eq(data.getDistributionID()), any(), - any()); - if (modelsOK) { - Mockito.verify(mockVnfCatalogArtifactHandler).pushArtifacts(eq(catalogFiles), eq(data.getDistributionID()), - any(), any()); - } - - if (modelsOK && catalogsOK) { - Mockito.verify(mockNotificationPublisher).publishDeploySuccess(mockDistributionClient, data, - data.getServiceArtifacts().get(0)); - Mockito.verify(mockModelArtifactHandler, Mockito.never()).rollback(any(), any(), any()); - Mockito.verify(mockVnfCatalogArtifactHandler, Mockito.never()).rollback(any(), any(), any()); - } else { - Mockito.verify(mockNotificationPublisher).publishDeployFailure(mockDistributionClient, data, - data.getServiceArtifacts().get(0)); - if (modelsOK) { - Mockito.verify(mockModelArtifactHandler).rollback(eq(new ArrayList()), - eq(data.getDistributionID()), any()); - Mockito.verify(mockVnfCatalogArtifactHandler).rollback(eq(new ArrayList()), - eq(data.getDistributionID()), any()); - } else { - Mockito.verify(mockModelArtifactHandler).rollback(eq(new ArrayList()), - eq(data.getDistributionID()), any()); - Mockito.verify(mockVnfCatalogArtifactHandler, Mockito.never()).rollback(any(), any(), any()); - } - } - } - -}