Revisions made to the Model Loader to use Babel
[aai/model-loader.git] / src / test / java / org / onap / aai / modelloader / notification / EventCallbackTest.java
1 /**\r
2  * ============LICENSE_START==========================================\r
3  * org.onap.aai\r
4  * ===================================================================\r
5  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.\r
6  * Copyright © 2017-2018 Amdocs\r
7  * ===================================================================\r
8  * Licensed under the Apache License, Version 2.0 (the "License");\r
9  * you may not use this file except in compliance with the License.\r
10  * You may obtain a copy of the License at\r
11  *\r
12  *        http://www.apache.org/licenses/LICENSE-2.0\r
13  *\r
14  * Unless required by applicable law or agreed to in writing, software\r
15  * distributed under the License is distributed on an "AS IS" BASIS,\r
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17  * See the License for the specific language governing permissions and\r
18  * limitations under the License.\r
19  * ============LICENSE_END============================================\r
20  */\r
21 package org.onap.aai.modelloader.notification;\r
22 \r
23 import java.io.IOException;\r
24 import java.util.List;\r
25 import java.util.Properties;\r
26 import org.junit.After;\r
27 import org.junit.Before;\r
28 import org.junit.Test;\r
29 import org.junit.runner.RunWith;\r
30 import org.mockito.Mockito;\r
31 import org.onap.aai.modelloader.config.ModelLoaderConfig;\r
32 import org.onap.aai.modelloader.entity.model.BabelArtifactParsingException;\r
33 import org.onap.aai.modelloader.fixture.NotificationDataFixtureBuilder;\r
34 import org.openecomp.sdc.api.IDistributionClient;\r
35 import org.openecomp.sdc.api.notification.INotificationData;\r
36 import org.powermock.api.mockito.PowerMockito;\r
37 import org.powermock.modules.junit4.PowerMockRunner;\r
38 import org.powermock.reflect.Whitebox;\r
39 \r
40 /**\r
41  * Tests {@link EventCallback}\r
42  */\r
43 @RunWith(PowerMockRunner.class)\r
44 public class EventCallbackTest {\r
45 \r
46     private static final String CONFIG_FILE = "model-loader.properties";\r
47 \r
48     private ModelLoaderConfig config;\r
49     private Properties configProperties;\r
50     private EventCallback eventCallback;\r
51 \r
52     private ArtifactDeploymentManager mockArtifactDeploymentManager;\r
53     private ArtifactDownloadManager mockArtifactDownloadManager;\r
54     private IDistributionClient mockDistributionClient;\r
55 \r
56     @Before\r
57     public void setup() throws IOException {\r
58         configProperties = new Properties();\r
59         configProperties.load(this.getClass().getClassLoader().getResourceAsStream(CONFIG_FILE));\r
60         config = new ModelLoaderConfig(configProperties, null);\r
61 \r
62         mockArtifactDeploymentManager = PowerMockito.mock(ArtifactDeploymentManager.class);\r
63         mockArtifactDownloadManager = PowerMockito.mock(ArtifactDownloadManager.class);\r
64         mockDistributionClient = PowerMockito.mock(IDistributionClient.class);\r
65 \r
66         eventCallback = new EventCallback(mockDistributionClient, config);\r
67 \r
68         Whitebox.setInternalState(eventCallback, mockArtifactDeploymentManager);\r
69         Whitebox.setInternalState(eventCallback, mockArtifactDownloadManager);\r
70     }\r
71 \r
72     @After\r
73     public void tearDown() {\r
74         config = null;\r
75         configProperties = null;\r
76         eventCallback = null;\r
77         mockArtifactDeploymentManager = null;\r
78         mockArtifactDownloadManager = null;\r
79         mockDistributionClient = null;\r
80     }\r
81 \r
82     @Test\r
83     @SuppressWarnings("unchecked")\r
84     public void activateCallback_downloadFails() {\r
85         INotificationData data = NotificationDataFixtureBuilder.getNotificationDataWithToscaCsarFile();\r
86 \r
87         PowerMockito.when(mockArtifactDownloadManager.downloadArtifacts(Mockito.any(INotificationData.class),\r
88                 Mockito.any(List.class), Mockito.any(List.class), Mockito.any(List.class)))\r
89                 .thenReturn(false);\r
90 \r
91         eventCallback.activateCallback(data);\r
92 \r
93         Mockito.verify(mockArtifactDownloadManager).downloadArtifacts(Mockito.any(INotificationData.class),\r
94                 Mockito.any(List.class), Mockito.any(List.class), Mockito.any(List.class));\r
95         Mockito.verifyZeroInteractions(mockArtifactDeploymentManager);\r
96     }\r
97 \r
98     @SuppressWarnings("unchecked")\r
99     @Test\r
100     public void activateCallback() throws BabelArtifactParsingException {\r
101         INotificationData data = NotificationDataFixtureBuilder.getNotificationDataWithToscaCsarFile();\r
102 \r
103         PowerMockito.when(mockArtifactDownloadManager.downloadArtifacts(Mockito.any(INotificationData.class),\r
104                 Mockito.any(List.class), Mockito.any(List.class), Mockito.any(List.class)))\r
105                 .thenReturn(true);\r
106 \r
107         PowerMockito\r
108                 .when(mockArtifactDeploymentManager.deploy(Mockito.any(INotificationData.class),\r
109                         Mockito.any(List.class), Mockito.any(List.class), Mockito.any(List.class)))\r
110                 .thenReturn(true);\r
111 \r
112         eventCallback.activateCallback(data);\r
113 \r
114         Mockito.verify(mockArtifactDownloadManager).downloadArtifacts(Mockito.any(INotificationData.class),\r
115                 Mockito.any(List.class), Mockito.any(List.class), Mockito.any(List.class));\r
116         Mockito.verify(mockArtifactDeploymentManager).deploy(Mockito.any(INotificationData.class),\r
117                 Mockito.any(List.class), Mockito.any(List.class), Mockito.any(List.class));\r
118     }\r
119 }\r