summaryrefslogtreecommitdiffstats
path: root/daexim-offsite-backup/provider/src/test
diff options
context:
space:
mode:
authorJessica Wagantall <jwagantall@linuxfoundation.org>2020-12-01 11:51:04 -0800
committerJessica Wagantall <jwagantall@linuxfoundation.org>2020-12-01 11:51:04 -0800
commit02b6c140f031c19cfcb791fd0142f03167db69b1 (patch)
tree7a5fd35bbc395a705539f9a63bd4fe5b2abc84d7 /daexim-offsite-backup/provider/src/test
parent32fb53c13342d5ad353c839b7ffd0ca85d14bd48 (diff)
parent46c69f518bd200e25d46f28cc32473ba08cdfe3d (diff)
Merge branch 'master' of /home/jwagantall/linuxfoundation/onap/IT-21112/sli-northbound
Signed-off-by: Jessica Wagantall <jwagantall@linuxfoundation.org>
Diffstat (limited to 'daexim-offsite-backup/provider/src/test')
-rw-r--r--daexim-offsite-backup/provider/src/test/java/org/onap/ccsdk/sli/northbound/daeximoffsitebackup/DaeximOffsiteBackupProviderTest.java216
-rw-r--r--daexim-offsite-backup/provider/src/test/java/org/onap/ccsdk/sli/northbound/daeximoffsitebackup/DaeximOffsiteBackupUtilTest.java40
-rwxr-xr-xdaexim-offsite-backup/provider/src/test/resources/daexim-offsite-backup.properties26
-rw-r--r--daexim-offsite-backup/provider/src/test/resources/fileToZip11
-rw-r--r--daexim-offsite-backup/provider/src/test/resources/fileToZip21
5 files changed, 284 insertions, 0 deletions
diff --git a/daexim-offsite-backup/provider/src/test/java/org/onap/ccsdk/sli/northbound/daeximoffsitebackup/DaeximOffsiteBackupProviderTest.java b/daexim-offsite-backup/provider/src/test/java/org/onap/ccsdk/sli/northbound/daeximoffsitebackup/DaeximOffsiteBackupProviderTest.java
new file mode 100644
index 000000000..d070c30e2
--- /dev/null
+++ b/daexim-offsite-backup/provider/src/test/java/org/onap/ccsdk/sli/northbound/daeximoffsitebackup/DaeximOffsiteBackupProviderTest.java
@@ -0,0 +1,216 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2018 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.onap.ccsdk.sli.northbound.daeximoffsitebackup;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import com.google.common.util.concurrent.CheckedFuture;
+import java.io.File;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Properties;
+import java.util.concurrent.ExecutionException;
+import org.eclipse.jdt.annotation.Nullable;
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.daeximoffsitebackup.rev180926.DaeximOffsiteBackupService;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.daeximoffsitebackup.rev180926.RetrieveDataInput;
+import org.opendaylight.yangtools.yang.binding.Augmentation;
+
+public class DaeximOffsiteBackupProviderTest {
+ public DataBroker dataBroker;
+ public ReadWriteTransaction writeTransaction;
+ public CheckedFuture<Void, TransactionCommitFailedException> checkedFuture;
+ public RpcProviderRegistry rpcRegistry;
+ public DaeximOffsiteBackupProvider provider;
+ public Properties resProps;
+
+ @Before
+ public void setup() {
+ resProps = new Properties();
+ resProps.put("error-code", "200");
+ resProps.put("error-message", "Success");
+ dataBroker = mock(DataBroker.class);
+ writeTransaction = mock(ReadWriteTransaction.class);
+ checkedFuture = mock(CheckedFuture.class);
+ rpcRegistry = mock(RpcProviderRegistry.class);
+ when(rpcRegistry.addRoutedRpcImplementation(any(), any(DaeximOffsiteBackupService.class))).thenReturn(null);
+ try {
+ when(checkedFuture.get()).thenReturn(null);
+ }
+ catch(InterruptedException | ExecutionException e) {
+ e.printStackTrace();
+ }
+ when(writeTransaction.submit()).thenReturn(checkedFuture);
+ when(dataBroker.newReadWriteTransaction()).thenReturn(writeTransaction);
+
+ provider = new DaeximOffsiteBackupProvider(dataBroker, rpcRegistry);
+ }
+
+ @Test
+ public void initializeTest() {
+ provider.initialize();
+ }
+
+ @Test
+ public void closeTest() {
+ try {
+ provider.close();
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void onDataTreeChangedTest() {
+ provider.onDataTreeChanged(null);
+ // onDataTreeChanged is an empty stub
+ }
+
+ @Test
+ public void backupDataTest() {
+ try {
+ assertNotNull(provider.backupData(null));
+ }
+ catch(Exception e) {
+ fail();
+ }
+ try {
+ assertNotNull(provider.backupData(null));
+ }
+ catch(Exception e) {
+ fail();
+ }
+ try {
+ assertNotNull(provider.backupData(null));
+ }
+ catch(Exception e) {
+ fail();
+ }
+ try {
+ assertNotNull(provider.backupData(null));
+ }
+ catch(Exception e) {
+ fail();
+ }
+ try {
+ assertNotNull(provider.backupData(null));
+ }
+ catch(Exception e) {
+ fail();
+ }
+ }
+
+ @Test
+ public void retrieveDataTest() {
+ RetrieveDataInput input = new RetrieveDataInput() {
+ @Override
+ public <E extends Augmentation<RetrieveDataInput>> @Nullable E augmentation(Class<E> augmentationType) {
+ return null;
+ }
+
+ @Override
+ public String getPodName() {
+ return "Some Pod";
+ }
+
+ @Override
+ public String getTimestamp() {
+ return "Some Timestamp";
+ }
+
+
+ };
+ try {
+ assertNotNull(provider.retrieveData(input));
+ }
+ catch(Exception e) {
+ fail();
+ }
+ try {
+ assertNotNull(provider.retrieveData(input));
+ }
+ catch(Exception e) {
+ fail();
+ }
+ try {
+ assertNotNull(provider.retrieveData(input));
+ }
+ catch(Exception e) {
+ fail();
+ }
+ try {
+ assertNotNull(provider.retrieveData(input));
+ }
+ catch(Exception e) {
+ fail();
+ }
+ try {
+ assertNotNull(provider.retrieveData(input));
+ }
+ catch(Exception e) {
+ fail();
+ }
+ }
+
+ @Test
+ public void archiveOperationsTest() {
+ List<String> files = Arrays.asList("src/test/resources/fileToZip1", "src/test/resources/fileToZip2");
+ String archive = "src/test/resources/zippedArchive.zip";
+ try {
+ Method method = provider.getClass().getDeclaredMethod("createArchive", List.class, String.class);
+ method.setAccessible(true);
+ method.invoke(provider, files, archive);
+
+ }
+ catch(NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
+ fail();
+ }
+
+ try {
+ Field field = provider.getClass().getDeclaredField("DAEXIM_DIR");
+ field.setAccessible(true);
+ field.set(provider, "");
+ Method method = provider.getClass().getDeclaredMethod("extractArchive", String.class);
+ method.setAccessible(true);
+ method.invoke(provider, archive);
+ }
+ catch(NoSuchMethodException | IllegalAccessException | InvocationTargetException | NoSuchFieldException e) {
+ fail();
+ }
+ finally {
+ File zip = new File(archive);
+ zip.delete();
+ }
+ }
+}
diff --git a/daexim-offsite-backup/provider/src/test/java/org/onap/ccsdk/sli/northbound/daeximoffsitebackup/DaeximOffsiteBackupUtilTest.java b/daexim-offsite-backup/provider/src/test/java/org/onap/ccsdk/sli/northbound/daeximoffsitebackup/DaeximOffsiteBackupUtilTest.java
new file mode 100644
index 000000000..16ce68198
--- /dev/null
+++ b/daexim-offsite-backup/provider/src/test/java/org/onap/ccsdk/sli/northbound/daeximoffsitebackup/DaeximOffsiteBackupUtilTest.java
@@ -0,0 +1,40 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2018 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.onap.ccsdk.sli.northbound.daeximoffsitebackup;
+
+import org.junit.Test;
+
+import java.lang.reflect.Field;
+
+public class DaeximOffsiteBackupUtilTest {
+ @Test
+ public void loadProperties() {
+ try {
+ Field field = DaeximOffsiteBackupUtil.class.getDeclaredField("PROPERTIES_FILE");
+ field.setAccessible(true);
+ field.set(new DaeximOffsiteBackupUtil(), "src/test/resources/daexim-offsite-backup.properties");
+ DaeximOffsiteBackupUtil.loadProperties();
+ } catch(Exception e) {
+ // Files don't exist on build server
+ }
+ }
+}
diff --git a/daexim-offsite-backup/provider/src/test/resources/daexim-offsite-backup.properties b/daexim-offsite-backup/provider/src/test/resources/daexim-offsite-backup.properties
new file mode 100755
index 000000000..b69027906
--- /dev/null
+++ b/daexim-offsite-backup/provider/src/test/resources/daexim-offsite-backup.properties
@@ -0,0 +1,26 @@
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# Copyright (C) 2019 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=========================================================
+
+daeximDirectory=/opt/opendaylight/current/daexim/
+credentials=admin:admin123
+nexusUrl=http://localhost:8081/nexus/content/repositories/
+podName=UNKNOWN_ODL
+file.operational=odl_backup_operational.json
+file.models=odl_backup_models.json
+file.config=odl_backup_config.json \ No newline at end of file
diff --git a/daexim-offsite-backup/provider/src/test/resources/fileToZip1 b/daexim-offsite-backup/provider/src/test/resources/fileToZip1
new file mode 100644
index 000000000..c7ef4260e
--- /dev/null
+++ b/daexim-offsite-backup/provider/src/test/resources/fileToZip1
@@ -0,0 +1 @@
+Lorem ipsum. \ No newline at end of file
diff --git a/daexim-offsite-backup/provider/src/test/resources/fileToZip2 b/daexim-offsite-backup/provider/src/test/resources/fileToZip2
new file mode 100644
index 000000000..c7ef4260e
--- /dev/null
+++ b/daexim-offsite-backup/provider/src/test/resources/fileToZip2
@@ -0,0 +1 @@
+Lorem ipsum. \ No newline at end of file