2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.mso.asdc.tenantIsolation;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertTrue;
25 import static org.junit.Assert.fail;
26 import static org.mockito.Matchers.any;
27 import static org.mockito.Mockito.doNothing;
28 import static org.mockito.Mockito.mock;
29 import static org.mockito.Mockito.times;
30 import static org.mockito.Mockito.verify;
31 import static org.mockito.Mockito.when;
33 import java.util.ArrayList;
34 import java.util.List;
36 import org.junit.AfterClass;
37 import org.junit.Before;
38 import org.junit.Ignore;
39 import org.junit.Test;
40 import org.openecomp.mso.asdc.client.ASDCConfiguration;
41 import org.openecomp.mso.client.aai.AAIResourcesClient;
42 import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
43 import org.openecomp.mso.db.catalog.CatalogDatabase;
44 import org.openecomp.mso.db.catalog.beans.Service;
45 import org.openecomp.mso.properties.MsoJavaProperties;
46 import org.openecomp.mso.properties.MsoPropertiesException;
47 import org.openecomp.mso.properties.MsoPropertiesFactory;
48 import org.openecomp.mso.requestsdb.WatchdogComponentDistributionStatus;
49 import org.openecomp.mso.requestsdb.WatchdogComponentDistributionStatusDb;
50 import org.openecomp.mso.requestsdb.WatchdogDistributionStatusDb;
51 import org.openecomp.mso.requestsdb.WatchdogServiceModVerIdLookupDb;
53 public class WatchdogDistributionTest {
55 public static final String ASDC_PROP = MsoJavaProperties.class.getClassLoader().getResource("mso.asdc.json").toString().substring(5);
57 private static MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
60 public final void initBeforeEachTest() throws MsoPropertiesException {
62 msoPropertiesFactory.removeAllMsoProperties();
63 msoPropertiesFactory.initializeMsoProperties(ASDCConfiguration.MSO_PROP_ASDC, ASDC_PROP);
67 public static final void kill () throws MsoPropertiesException {
69 msoPropertiesFactory.removeMsoProperties(ASDCConfiguration.MSO_PROP_ASDC);
74 public void testGetOverallDistributionStatusSuccess() {
75 WatchdogDistribution distribution = new WatchdogDistribution();
76 WatchdogDistributionStatusDb watchdogDisdb = mock(WatchdogDistributionStatusDb.class);
77 WatchdogComponentDistributionStatusDb watchdogComp = mock(WatchdogComponentDistributionStatusDb.class);
79 distribution.setWatchdogDistDb(watchdogDisdb);
80 distribution.setWatchdogCompDistDb(watchdogComp);
82 WatchdogComponentDistributionStatus watchDogDisStatus1 = new WatchdogComponentDistributionStatus();
83 watchDogDisStatus1.setComponentDistributionStatus("SUCCESS");
84 watchDogDisStatus1.setComponentName("AAI");
86 WatchdogComponentDistributionStatus watchDogDisStatus2 = new WatchdogComponentDistributionStatus();
87 watchDogDisStatus2.setComponentDistributionStatus("SUCCESS");
88 watchDogDisStatus2.setComponentName("APP");
90 List<WatchdogComponentDistributionStatus> results = new ArrayList<>();
91 results.add(watchDogDisStatus1);
92 results.add(watchDogDisStatus2);
94 when(watchdogDisdb.getWatchdogDistributionIdStatus(any(String.class))).thenReturn(null);
95 when(watchdogComp.getWatchdogComponentDistributionStatus(any(String.class))).thenReturn(results);
96 doNothing().when(watchdogDisdb).updateWatchdogDistributionIdStatus(any(String.class), any(String.class));
98 String result = distribution.getOverallDistributionStatus("ff3514e3-5a33-55df-13ab-12abad84e7fe");
100 assertEquals("SUCCESS", result);
101 } catch (Exception e) {
102 fail("Unexpected result");
107 @Ignore // 1802 merge
108 public void testGetOverallDistributionStatusFailure() {
109 WatchdogDistribution distribution = new WatchdogDistribution();
110 WatchdogDistributionStatusDb watchdogDisdb = mock(WatchdogDistributionStatusDb.class);
111 WatchdogComponentDistributionStatusDb watchdogComp = mock(WatchdogComponentDistributionStatusDb.class);
113 distribution.setWatchdogDistDb(watchdogDisdb);
114 distribution.setWatchdogCompDistDb(watchdogComp);
117 WatchdogComponentDistributionStatus watchDogDisStatus1 = new WatchdogComponentDistributionStatus();
118 watchDogDisStatus1.setComponentDistributionStatus("SUCCESS");
119 watchDogDisStatus1.setComponentName("AAI");
121 WatchdogComponentDistributionStatus watchDogDisStatus2 = new WatchdogComponentDistributionStatus();
122 watchDogDisStatus2.setComponentDistributionStatus("FAILURE");
123 watchDogDisStatus2.setComponentName("APP");
125 List<WatchdogComponentDistributionStatus> results = new ArrayList<>();
126 results.add(watchDogDisStatus1);
127 results.add(watchDogDisStatus2);
129 when(watchdogDisdb.getWatchdogDistributionIdStatus(any(String.class))).thenReturn(null);
130 when(watchdogComp.getWatchdogComponentDistributionStatus(any(String.class))).thenReturn(results);
131 doNothing().when(watchdogDisdb).updateWatchdogDistributionIdStatus(any(String.class), any(String.class));
133 String result = distribution.getOverallDistributionStatus("ff3514e3-5a33-55df-13ab-12abad84e7fe");
135 assertEquals("FAILURE", result);
136 } catch (Exception e) {
137 fail("Unexpected result");
142 public void testGetOverallDistributionStatusException() {
143 WatchdogDistribution distribution = new WatchdogDistribution();
144 WatchdogDistributionStatusDb watchdogDisdb = mock(WatchdogDistributionStatusDb.class);
145 WatchdogComponentDistributionStatusDb watchdogComp = mock(WatchdogComponentDistributionStatusDb.class);
147 distribution.setWatchdogDistDb(watchdogDisdb);
148 distribution.setWatchdogCompDistDb(watchdogComp);
150 WatchdogComponentDistributionStatus watchDogDisStatus1 = new WatchdogComponentDistributionStatus();
151 watchDogDisStatus1.setComponentDistributionStatus("SUCCESS");
152 watchDogDisStatus1.setComponentName("AAI");
154 WatchdogComponentDistributionStatus watchDogDisStatus2 = new WatchdogComponentDistributionStatus();
155 watchDogDisStatus2.setComponentDistributionStatus("TESTING");
156 watchDogDisStatus2.setComponentName("APP");
158 List<WatchdogComponentDistributionStatus> results = new ArrayList<>();
159 results.add(watchDogDisStatus1);
160 results.add(watchDogDisStatus2);
162 when(watchdogDisdb.getWatchdogDistributionIdStatus(any(String.class))).thenReturn(null);
163 when(watchdogComp.getWatchdogComponentDistributionStatus(any(String.class))).thenReturn(results);
164 doNothing().when(watchdogDisdb).updateWatchdogDistributionIdStatus(any(String.class), any(String.class));
166 distribution.getOverallDistributionStatus("ff3514e3-5a33-55df-13ab-12abad84e7fe");
168 } catch (Exception e) {
169 assertTrue(e.getMessage().contains("Invalid Component distribution status:"));
174 @Ignore // 1802 merge
175 public void testGetOverallDistributionStatusIncomplete() {
176 WatchdogDistribution distribution = new WatchdogDistribution();
177 WatchdogDistributionStatusDb watchdogDisdb = mock(WatchdogDistributionStatusDb.class);
178 WatchdogComponentDistributionStatusDb watchdogComp = mock(WatchdogComponentDistributionStatusDb.class);
180 distribution.setWatchdogDistDb(watchdogDisdb);
181 distribution.setWatchdogCompDistDb(watchdogComp);
183 WatchdogComponentDistributionStatus watchDogDisStatus1 = new WatchdogComponentDistributionStatus();
184 watchDogDisStatus1.setComponentDistributionStatus("SUCCESS");
185 watchDogDisStatus1.setComponentName("AAI");
187 List<WatchdogComponentDistributionStatus> results = new ArrayList<>();
188 results.add(watchDogDisStatus1);
190 when(watchdogDisdb.getWatchdogDistributionIdStatus(any(String.class))).thenReturn(null);
191 when(watchdogComp.getWatchdogComponentDistributionStatus(any(String.class))).thenReturn(results);
193 String result = distribution.getOverallDistributionStatus("ff3514e3-5a33-55df-13ab-12abad84e7fe");
195 assertEquals("INCOMPLETE", result);
196 } catch (Exception e) {
197 fail("Unexpected result");
202 public void testGetOverallDistributionStatusTimeout() {
203 WatchdogDistribution distribution = new WatchdogDistribution();
204 WatchdogDistributionStatusDb watchdogDisdb = mock(WatchdogDistributionStatusDb.class);
206 distribution.setWatchdogDistDb(watchdogDisdb);
208 when(watchdogDisdb.getWatchdogDistributionIdStatus(any(String.class))).thenReturn("timeout");
210 String result = distribution.getOverallDistributionStatus("ff3514e3-5a33-55df-13ab-12abad84e7fe");
212 assertEquals("TIMEOUT", result);
213 } catch (Exception e) {
214 fail("Unexpected result");
219 @Ignore // 1802 merge
220 public void testExecutePatchAAI() throws Exception {
221 WatchdogDistribution distribution = new WatchdogDistribution();
222 WatchdogServiceModVerIdLookupDb serviceLookupDb = mock(WatchdogServiceModVerIdLookupDb.class);
223 CatalogDatabase catalogDb = mock(CatalogDatabase.class);
224 AAIResourcesClient aaiClient = mock(AAIResourcesClient.class);
226 Service service = new Service();
227 service.setModelInvariantUUID("modelInvariantUUID");
229 when(serviceLookupDb.getWatchdogServiceModVerId(any(String.class))).thenReturn("ff3514e3-5a33-55df");
230 when(catalogDb.getServiceByModelUUID(any(String.class))).thenReturn(service);
231 doNothing().when(aaiClient).update(any(AAIResourceUri.class), any(Object.class));
233 distribution.setAaiClient(aaiClient);
234 distribution.setCatalogDb(catalogDb);
235 distribution.setWatchdogSerlookupDb(serviceLookupDb);
236 distribution.executePatchAAI("ff3514e3-5a33-55df-13ab-12abad84e7fe", "model-id", "SUCCESS");
238 verify(aaiClient, times(1)).update(any(AAIResourceUri.class), any(Object.class));
242 @Ignore // 1802 merge
243 public void testExecutePatchAAIException() throws Exception {
244 WatchdogDistribution distribution = new WatchdogDistribution();
245 CatalogDatabase catalogDb = mock(CatalogDatabase.class);
246 WatchdogServiceModVerIdLookupDb serviceLookupDb = mock(WatchdogServiceModVerIdLookupDb.class);
248 when(serviceLookupDb.getWatchdogServiceModVerId(any(String.class))).thenReturn("ff3514e3-5a33-55df");
249 when(catalogDb.getServiceByModelUUID(any(String.class))).thenReturn(null);
252 distribution.setCatalogDb(catalogDb);
253 distribution.setWatchdogSerlookupDb(serviceLookupDb);
254 distribution.executePatchAAI("ff3514e3-5a33-55df-13ab-12abad84e7fe", "model-id", "SUCCESS");
255 } catch(Exception e) {
256 assertTrue(e.getMessage().contains("No Service found with serviceModelVersionId:"));