aboutsummaryrefslogtreecommitdiffstats
path: root/asdc-controller/src/test/java/org/openecomp/mso/asdc/tenantIsolation/WatchdogDistributionTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'asdc-controller/src/test/java/org/openecomp/mso/asdc/tenantIsolation/WatchdogDistributionTest.java')
-rw-r--r--asdc-controller/src/test/java/org/openecomp/mso/asdc/tenantIsolation/WatchdogDistributionTest.java259
1 files changed, 259 insertions, 0 deletions
diff --git a/asdc-controller/src/test/java/org/openecomp/mso/asdc/tenantIsolation/WatchdogDistributionTest.java b/asdc-controller/src/test/java/org/openecomp/mso/asdc/tenantIsolation/WatchdogDistributionTest.java
new file mode 100644
index 0000000000..2e5c4c8152
--- /dev/null
+++ b/asdc-controller/src/test/java/org/openecomp/mso/asdc/tenantIsolation/WatchdogDistributionTest.java
@@ -0,0 +1,259 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.openecomp.mso.asdc.tenantIsolation;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.openecomp.mso.asdc.client.ASDCConfiguration;
+import org.openecomp.mso.client.aai.AAIResourcesClient;
+import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
+import org.openecomp.mso.db.catalog.CatalogDatabase;
+import org.openecomp.mso.db.catalog.beans.Service;
+import org.openecomp.mso.properties.MsoJavaProperties;
+import org.openecomp.mso.properties.MsoPropertiesException;
+import org.openecomp.mso.properties.MsoPropertiesFactory;
+import org.openecomp.mso.requestsdb.WatchdogComponentDistributionStatus;
+import org.openecomp.mso.requestsdb.WatchdogComponentDistributionStatusDb;
+import org.openecomp.mso.requestsdb.WatchdogDistributionStatusDb;
+import org.openecomp.mso.requestsdb.WatchdogServiceModVerIdLookupDb;
+
+public class WatchdogDistributionTest {
+
+ public static final String ASDC_PROP = MsoJavaProperties.class.getClassLoader().getResource("mso.asdc.json").toString().substring(5);
+
+ private static MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
+
+ @Before
+ public final void initBeforeEachTest() throws MsoPropertiesException {
+ // load the config
+ msoPropertiesFactory.removeAllMsoProperties();
+ msoPropertiesFactory.initializeMsoProperties(ASDCConfiguration.MSO_PROP_ASDC, ASDC_PROP);
+ }
+
+ @AfterClass
+ public static final void kill () throws MsoPropertiesException {
+
+ msoPropertiesFactory.removeMsoProperties(ASDCConfiguration.MSO_PROP_ASDC);
+ }
+
+ @Test
+ @Ignore // 1802 merge
+ public void testGetOverallDistributionStatusSuccess() {
+ WatchdogDistribution distribution = new WatchdogDistribution();
+ WatchdogDistributionStatusDb watchdogDisdb = mock(WatchdogDistributionStatusDb.class);
+ WatchdogComponentDistributionStatusDb watchdogComp = mock(WatchdogComponentDistributionStatusDb.class);
+
+ distribution.setWatchdogDistDb(watchdogDisdb);
+ distribution.setWatchdogCompDistDb(watchdogComp);
+ try {
+ WatchdogComponentDistributionStatus watchDogDisStatus1 = new WatchdogComponentDistributionStatus();
+ watchDogDisStatus1.setComponentDistributionStatus("SUCCESS");
+ watchDogDisStatus1.setComponentName("AAI");
+
+ WatchdogComponentDistributionStatus watchDogDisStatus2 = new WatchdogComponentDistributionStatus();
+ watchDogDisStatus2.setComponentDistributionStatus("SUCCESS");
+ watchDogDisStatus2.setComponentName("APP");
+
+ List<WatchdogComponentDistributionStatus> results = new ArrayList<>();
+ results.add(watchDogDisStatus1);
+ results.add(watchDogDisStatus2);
+
+ when(watchdogDisdb.getWatchdogDistributionIdStatus(any(String.class))).thenReturn(null);
+ when(watchdogComp.getWatchdogComponentDistributionStatus(any(String.class))).thenReturn(results);
+ doNothing().when(watchdogDisdb).updateWatchdogDistributionIdStatus(any(String.class), any(String.class));
+
+ String result = distribution.getOverallDistributionStatus("ff3514e3-5a33-55df-13ab-12abad84e7fe");
+
+ assertEquals("SUCCESS", result);
+ } catch (Exception e) {
+ fail("Unexpected result");
+ }
+ }
+
+ @Test
+ @Ignore // 1802 merge
+ public void testGetOverallDistributionStatusFailure() {
+ WatchdogDistribution distribution = new WatchdogDistribution();
+ WatchdogDistributionStatusDb watchdogDisdb = mock(WatchdogDistributionStatusDb.class);
+ WatchdogComponentDistributionStatusDb watchdogComp = mock(WatchdogComponentDistributionStatusDb.class);
+
+ distribution.setWatchdogDistDb(watchdogDisdb);
+ distribution.setWatchdogCompDistDb(watchdogComp);
+
+ try {
+ WatchdogComponentDistributionStatus watchDogDisStatus1 = new WatchdogComponentDistributionStatus();
+ watchDogDisStatus1.setComponentDistributionStatus("SUCCESS");
+ watchDogDisStatus1.setComponentName("AAI");
+
+ WatchdogComponentDistributionStatus watchDogDisStatus2 = new WatchdogComponentDistributionStatus();
+ watchDogDisStatus2.setComponentDistributionStatus("FAILURE");
+ watchDogDisStatus2.setComponentName("APP");
+
+ List<WatchdogComponentDistributionStatus> results = new ArrayList<>();
+ results.add(watchDogDisStatus1);
+ results.add(watchDogDisStatus2);
+
+ when(watchdogDisdb.getWatchdogDistributionIdStatus(any(String.class))).thenReturn(null);
+ when(watchdogComp.getWatchdogComponentDistributionStatus(any(String.class))).thenReturn(results);
+ doNothing().when(watchdogDisdb).updateWatchdogDistributionIdStatus(any(String.class), any(String.class));
+
+ String result = distribution.getOverallDistributionStatus("ff3514e3-5a33-55df-13ab-12abad84e7fe");
+
+ assertEquals("FAILURE", result);
+ } catch (Exception e) {
+ fail("Unexpected result");
+ }
+ }
+
+ @Test
+ public void testGetOverallDistributionStatusException() {
+ WatchdogDistribution distribution = new WatchdogDistribution();
+ WatchdogDistributionStatusDb watchdogDisdb = mock(WatchdogDistributionStatusDb.class);
+ WatchdogComponentDistributionStatusDb watchdogComp = mock(WatchdogComponentDistributionStatusDb.class);
+
+ distribution.setWatchdogDistDb(watchdogDisdb);
+ distribution.setWatchdogCompDistDb(watchdogComp);
+ try {
+ WatchdogComponentDistributionStatus watchDogDisStatus1 = new WatchdogComponentDistributionStatus();
+ watchDogDisStatus1.setComponentDistributionStatus("SUCCESS");
+ watchDogDisStatus1.setComponentName("AAI");
+
+ WatchdogComponentDistributionStatus watchDogDisStatus2 = new WatchdogComponentDistributionStatus();
+ watchDogDisStatus2.setComponentDistributionStatus("TESTING");
+ watchDogDisStatus2.setComponentName("APP");
+
+ List<WatchdogComponentDistributionStatus> results = new ArrayList<>();
+ results.add(watchDogDisStatus1);
+ results.add(watchDogDisStatus2);
+
+ when(watchdogDisdb.getWatchdogDistributionIdStatus(any(String.class))).thenReturn(null);
+ when(watchdogComp.getWatchdogComponentDistributionStatus(any(String.class))).thenReturn(results);
+ doNothing().when(watchdogDisdb).updateWatchdogDistributionIdStatus(any(String.class), any(String.class));
+
+ distribution.getOverallDistributionStatus("ff3514e3-5a33-55df-13ab-12abad84e7fe");
+
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("Invalid Component distribution status:"));
+ }
+ }
+
+ @Test
+ @Ignore // 1802 merge
+ public void testGetOverallDistributionStatusIncomplete() {
+ WatchdogDistribution distribution = new WatchdogDistribution();
+ WatchdogDistributionStatusDb watchdogDisdb = mock(WatchdogDistributionStatusDb.class);
+ WatchdogComponentDistributionStatusDb watchdogComp = mock(WatchdogComponentDistributionStatusDb.class);
+
+ distribution.setWatchdogDistDb(watchdogDisdb);
+ distribution.setWatchdogCompDistDb(watchdogComp);
+ try {
+ WatchdogComponentDistributionStatus watchDogDisStatus1 = new WatchdogComponentDistributionStatus();
+ watchDogDisStatus1.setComponentDistributionStatus("SUCCESS");
+ watchDogDisStatus1.setComponentName("AAI");
+
+ List<WatchdogComponentDistributionStatus> results = new ArrayList<>();
+ results.add(watchDogDisStatus1);
+
+ when(watchdogDisdb.getWatchdogDistributionIdStatus(any(String.class))).thenReturn(null);
+ when(watchdogComp.getWatchdogComponentDistributionStatus(any(String.class))).thenReturn(results);
+
+ String result = distribution.getOverallDistributionStatus("ff3514e3-5a33-55df-13ab-12abad84e7fe");
+
+ assertEquals("INCOMPLETE", result);
+ } catch (Exception e) {
+ fail("Unexpected result");
+ }
+ }
+
+ @Test
+ public void testGetOverallDistributionStatusTimeout() {
+ WatchdogDistribution distribution = new WatchdogDistribution();
+ WatchdogDistributionStatusDb watchdogDisdb = mock(WatchdogDistributionStatusDb.class);
+
+ distribution.setWatchdogDistDb(watchdogDisdb);
+ try {
+ when(watchdogDisdb.getWatchdogDistributionIdStatus(any(String.class))).thenReturn("timeout");
+
+ String result = distribution.getOverallDistributionStatus("ff3514e3-5a33-55df-13ab-12abad84e7fe");
+
+ assertEquals("TIMEOUT", result);
+ } catch (Exception e) {
+ fail("Unexpected result");
+ }
+ }
+
+ @Test
+ @Ignore // 1802 merge
+ public void testExecutePatchAAI() throws Exception {
+ WatchdogDistribution distribution = new WatchdogDistribution();
+ WatchdogServiceModVerIdLookupDb serviceLookupDb = mock(WatchdogServiceModVerIdLookupDb.class);
+ CatalogDatabase catalogDb = mock(CatalogDatabase.class);
+ AAIResourcesClient aaiClient = mock(AAIResourcesClient.class);
+
+ Service service = new Service();
+ service.setModelInvariantUUID("modelInvariantUUID");
+
+ when(serviceLookupDb.getWatchdogServiceModVerId(any(String.class))).thenReturn("ff3514e3-5a33-55df");
+ when(catalogDb.getServiceByModelUUID(any(String.class))).thenReturn(service);
+ doNothing().when(aaiClient).update(any(AAIResourceUri.class), any(Object.class));
+
+ distribution.setAaiClient(aaiClient);
+ distribution.setCatalogDb(catalogDb);
+ distribution.setWatchdogSerlookupDb(serviceLookupDb);
+ distribution.executePatchAAI("ff3514e3-5a33-55df-13ab-12abad84e7fe", "model-id", "SUCCESS");
+
+ verify(aaiClient, times(1)).update(any(AAIResourceUri.class), any(Object.class));
+ }
+
+ @Test
+ @Ignore // 1802 merge
+ public void testExecutePatchAAIException() throws Exception {
+ WatchdogDistribution distribution = new WatchdogDistribution();
+ CatalogDatabase catalogDb = mock(CatalogDatabase.class);
+ WatchdogServiceModVerIdLookupDb serviceLookupDb = mock(WatchdogServiceModVerIdLookupDb.class);
+
+ when(serviceLookupDb.getWatchdogServiceModVerId(any(String.class))).thenReturn("ff3514e3-5a33-55df");
+ when(catalogDb.getServiceByModelUUID(any(String.class))).thenReturn(null);
+
+ try {
+ distribution.setCatalogDb(catalogDb);
+ distribution.setWatchdogSerlookupDb(serviceLookupDb);
+ distribution.executePatchAAI("ff3514e3-5a33-55df-13ab-12abad84e7fe", "model-id", "SUCCESS");
+ } catch(Exception e) {
+ assertTrue(e.getMessage().contains("No Service found with serviceModelVersionId:"));
+ }
+ }
+}