Merge "Modelloader: base image update"
[aai/model-loader.git] / src / test / java / org / onap / aai / modelloader / notification / TestEventCallback.java
index b5d7fd3..08fbb71 100644 (file)
  */
 package org.onap.aai.modelloader.notification;
 
-import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
-
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
-import org.onap.aai.modelloader.entity.model.BabelArtifactParsingException;
+import org.onap.aai.modelloader.entity.Artifact;
+import org.onap.aai.modelloader.entity.ArtifactType;
 import org.onap.aai.modelloader.fixture.NotificationDataFixtureBuilder;
 import org.onap.aai.modelloader.service.ArtifactDeploymentManager;
 import org.onap.sdc.api.IDistributionClient;
@@ -75,34 +76,49 @@ public class TestEventCallback {
 
     @Test
     @SuppressWarnings("unchecked")
-    public void activateCallback_downloadFails() {
+    public void activateCallback_downloadFails() throws Exception {
         INotificationData data = NotificationDataFixtureBuilder.getNotificationDataWithToscaCsarFile();
 
-        when(mockArtifactDownloadManager.downloadArtifacts(any(INotificationData.class), any(List.class),
-                any(List.class), any(List.class))).thenReturn(false);
+        when(mockArtifactDownloadManager.downloadArtifacts(any(INotificationData.class), any(List.class)
+        )).thenThrow(DownloadFailureException.class);
 
         eventCallback.activateCallback(data);
 
-        verify(mockArtifactDownloadManager).downloadArtifacts(any(INotificationData.class), any(List.class),
-                any(List.class), any(List.class));
+        verify(mockArtifactDownloadManager).downloadArtifacts(any(INotificationData.class), any(List.class));
         Mockito.verifyNoInteractions(mockArtifactDeploymentManager);
     }
 
     @SuppressWarnings("unchecked")
     @Test
-    public void activateCallback() throws BabelArtifactParsingException {
+    public void activateCallback() throws Exception {
         INotificationData data = NotificationDataFixtureBuilder.getNotificationDataWithToscaCsarFile();
 
-        when(mockArtifactDownloadManager.downloadArtifacts(any(INotificationData.class), any(List.class),
-                any(List.class), any(List.class))).thenReturn(true);
+        when(mockArtifactDownloadManager.downloadArtifacts(any(INotificationData.class), any(List.class)))
+                .thenReturn(Collections.emptyList());
 
         when(mockArtifactDeploymentManager.deploy(any(String.class), any(List.class), any(List.class)))
                 .thenReturn(true);
 
         eventCallback.activateCallback(data);
 
-        verify(mockArtifactDownloadManager).downloadArtifacts(any(INotificationData.class), any(List.class),
-                any(List.class), any(List.class));
+        verify(mockArtifactDownloadManager).downloadArtifacts(any(INotificationData.class), any(List.class));
         verify(mockArtifactDeploymentManager).deploy(any(String.class), any(List.class), any(List.class));
     }
+    @Test
+    public void testActivateCallback_withVnfCatalogArtifacts() throws Exception {
+        INotificationData data = NotificationDataFixtureBuilder.getNotificationDataWithCatalogFile();
+
+        List<Artifact> downloadedArtifacts = new ArrayList<>();
+        downloadedArtifacts.add(new Artifact(ArtifactType.MODEL));
+        downloadedArtifacts.add(new Artifact(ArtifactType.VNF_CATALOG));
+
+        when(mockArtifactDownloadManager.downloadArtifacts(any(INotificationData.class), any(List.class)))
+                .thenReturn(downloadedArtifacts);
+
+        eventCallback.activateCallback(data);
+
+        verify(mockArtifactDeploymentManager).deploy(eq("ID"),
+                argThat(list -> list.stream().anyMatch(a -> a.getType() == ArtifactType.MODEL)),
+                anyList());
+    }
 }