From 21fe25182f8c2f56500b5777587acb19e0cb2df7 Mon Sep 17 00:00:00 2001 From: Martin Bobak Date: Wed, 8 Jan 2014 10:54:18 +0100 Subject: [PATCH] increased test coverage of config-persister Change-Id: Ib614a90723575ac96b3bd2b3e2e5fe9f16a7653b Signed-off-by: Martin Bobak --- .../config/config-persister-api/pom.xml | 4 ++ .../persist/test/PropertiesProviderTest.java | 29 ++++++++++ .../pom.xml | 6 ++ .../DirectoryStorageAdapterTest.java | 30 +++++++--- .../pom.xml | 6 ++ .../xml/DirectoryStorageAdapterTest.java | 25 ++++++--- .../config-persister-file-adapter/pom.xml | 6 ++ .../storage/file/FileStorageAdapter.java | 19 +++---- .../storage/file/FileStorageAdapterTest.java | 55 +++++++++++++++++-- opendaylight/config/pom.xml | 6 ++ 10 files changed, 154 insertions(+), 32 deletions(-) create mode 100644 opendaylight/config/config-persister-api/src/test/java/org/opendaylight/controller/config/persist/test/PropertiesProviderTest.java diff --git a/opendaylight/config/config-persister-api/pom.xml b/opendaylight/config/config-persister-api/pom.xml index 80016a804b..f622992bb5 100644 --- a/opendaylight/config/config-persister-api/pom.xml +++ b/opendaylight/config/config-persister-api/pom.xml @@ -24,6 +24,10 @@ + + org.apache.maven.plugins + maven-jar-plugin + org.apache.felix maven-bundle-plugin diff --git a/opendaylight/config/config-persister-api/src/test/java/org/opendaylight/controller/config/persist/test/PropertiesProviderTest.java b/opendaylight/config/config-persister-api/src/test/java/org/opendaylight/controller/config/persist/test/PropertiesProviderTest.java new file mode 100644 index 0000000000..2df07b114c --- /dev/null +++ b/opendaylight/config/config-persister-api/src/test/java/org/opendaylight/controller/config/persist/test/PropertiesProviderTest.java @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.config.persist.test; + +import java.util.HashMap; +import java.util.Map; +import org.opendaylight.controller.config.persist.api.PropertiesProvider; + +public class PropertiesProviderTest implements PropertiesProvider { + private final Map properties = new HashMap(); + + public void addProperty(String key,String value){ + properties.put(key,value); + } + @Override + public String getProperty(String key) { + return properties.get(key); + } + + @Override + public String getFullKeyForReporting(String key) { + return null; + } +} diff --git a/opendaylight/config/config-persister-directory-adapter/pom.xml b/opendaylight/config/config-persister-directory-adapter/pom.xml index b2da71eea2..c67a08c7af 100644 --- a/opendaylight/config/config-persister-directory-adapter/pom.xml +++ b/opendaylight/config/config-persister-directory-adapter/pom.xml @@ -42,6 +42,12 @@ mockito-configuration test + + ${project.groupId} + config-persister-api + test-jar + test + diff --git a/opendaylight/config/config-persister-directory-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/directory/DirectoryStorageAdapterTest.java b/opendaylight/config/config-persister-directory-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/directory/DirectoryStorageAdapterTest.java index f17e414c49..72bd208ff3 100644 --- a/opendaylight/config/config-persister-directory-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/directory/DirectoryStorageAdapterTest.java +++ b/opendaylight/config/config-persister-directory-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/directory/DirectoryStorageAdapterTest.java @@ -8,28 +8,32 @@ package org.opendaylight.controller.config.persist.storage.directory; -import org.apache.commons.io.IOUtils; -import org.junit.Test; -import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder; - import java.io.File; import java.util.Collections; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; - +import org.apache.commons.io.IOUtils; +import org.junit.Test; +import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder; +import org.opendaylight.controller.config.persist.api.Persister; +import org.opendaylight.controller.config.persist.test.PropertiesProviderTest; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; public class DirectoryStorageAdapterTest { - DirectoryPersister tested; + Persister tested; @Test public void testEmptyDirectory() throws Exception { File folder = new File("target/emptyFolder"); folder.mkdir(); - tested = new DirectoryPersister((folder)); + + PropertiesProviderTest pp = new PropertiesProviderTest(); + pp.addProperty("directoryStorage",folder.getPath()); + DirectoryStorageAdapter dsa = new DirectoryStorageAdapter(); + tested = dsa.instantiate(pp); assertEquals(Collections.emptyList(), tested.loadLastConfigs()); try { @@ -60,7 +64,11 @@ public class DirectoryStorageAdapterTest { @Test public void testOneFile() throws Exception { File folder = getFolder("oneFile"); - tested = new DirectoryPersister((folder)); + PropertiesProviderTest pp = new PropertiesProviderTest(); + pp.addProperty("directoryStorage",folder.getPath()); + DirectoryStorageAdapter dsa = new DirectoryStorageAdapter(); + tested = dsa.instantiate(pp); + List results = tested.loadLastConfigs(); assertEquals(1, results.size()); ConfigSnapshotHolder result = results.get(0); @@ -71,7 +79,11 @@ public class DirectoryStorageAdapterTest { @Test public void testTwoFiles() throws Exception { File folder = getFolder("twoFiles"); - tested = new DirectoryPersister((folder)); + PropertiesProviderTest pp = new PropertiesProviderTest(); + pp.addProperty("directoryStorage",folder.getPath()); + DirectoryStorageAdapter dsa = new DirectoryStorageAdapter(); + tested = dsa.instantiate(pp); + List results = tested.loadLastConfigs(); assertEquals(2, results.size()); assertSnapshot(results.get(0), "twoFilesExpected1"); diff --git a/opendaylight/config/config-persister-directory-xml-adapter/pom.xml b/opendaylight/config/config-persister-directory-xml-adapter/pom.xml index b2ea632834..96d3a71c30 100644 --- a/opendaylight/config/config-persister-directory-xml-adapter/pom.xml +++ b/opendaylight/config/config-persister-directory-xml-adapter/pom.xml @@ -57,6 +57,12 @@ mockito-configuration test + + ${project.groupId} + config-persister-api + test-jar + test + diff --git a/opendaylight/config/config-persister-directory-xml-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/directory/xml/DirectoryStorageAdapterTest.java b/opendaylight/config/config-persister-directory-xml-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/directory/xml/DirectoryStorageAdapterTest.java index 73061f81de..0a36db9e2e 100644 --- a/opendaylight/config/config-persister-directory-xml-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/directory/xml/DirectoryStorageAdapterTest.java +++ b/opendaylight/config/config-persister-directory-xml-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/directory/xml/DirectoryStorageAdapterTest.java @@ -8,20 +8,21 @@ package org.opendaylight.controller.config.persist.storage.directory.xml; -import org.junit.Test; -import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder; - import java.io.File; import java.util.Collections; import java.util.List; import java.util.SortedSet; - +import org.junit.Test; +import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder; +import org.opendaylight.controller.config.persist.api.Persister; +import org.opendaylight.controller.config.persist.test.PropertiesProviderTest; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; public class DirectoryStorageAdapterTest { - XmlDirectoryPersister tested; + + Persister tested; @Test public void testEmptyDirectory() throws Exception { @@ -58,7 +59,12 @@ public class DirectoryStorageAdapterTest { @Test public void testOneFile() throws Exception { File folder = getFolder("oneFile"); - tested = new XmlDirectoryPersister((folder)); + + PropertiesProviderTest pp = new PropertiesProviderTest(); + pp.addProperty("directoryStorage",folder.getPath()); + XmlDirectoryStorageAdapter xmlDsa = new XmlDirectoryStorageAdapter(); + tested = xmlDsa.instantiate(pp); + List results = tested.loadLastConfigs(); assertEquals(1, results.size()); ConfigSnapshotHolder result = results.get(0); @@ -76,7 +82,12 @@ public class DirectoryStorageAdapterTest { @Test public void testTwoFiles() throws Exception { File folder = getFolder("twoFiles"); - tested = new XmlDirectoryPersister((folder)); + + PropertiesProviderTest pp = new PropertiesProviderTest(); + pp.addProperty("directoryStorage",folder.getPath()); + XmlDirectoryStorageAdapter xmlDsa = new XmlDirectoryStorageAdapter(); + tested = xmlDsa.instantiate(pp); + List results = tested.loadLastConfigs(); assertEquals(2, results.size()); diff --git a/opendaylight/config/config-persister-file-adapter/pom.xml b/opendaylight/config/config-persister-file-adapter/pom.xml index b16cb2b6f3..3cd3e907b3 100644 --- a/opendaylight/config/config-persister-file-adapter/pom.xml +++ b/opendaylight/config/config-persister-file-adapter/pom.xml @@ -38,6 +38,12 @@ mockito-configuration test + + ${project.groupId} + config-persister-api + test-jar + test + diff --git a/opendaylight/config/config-persister-file-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/FileStorageAdapter.java b/opendaylight/config/config-persister-file-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/FileStorageAdapter.java index 3ec8713b47..1b9948bf39 100644 --- a/opendaylight/config/config-persister-file-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/FileStorageAdapter.java +++ b/opendaylight/config/config-persister-file-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/FileStorageAdapter.java @@ -13,15 +13,6 @@ import com.google.common.base.Charsets; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.io.Files; -import org.apache.commons.lang3.StringUtils; -import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder; -import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolderImpl; -import org.opendaylight.controller.config.persist.api.Persister; -import org.opendaylight.controller.config.persist.api.PropertiesProvider; -import org.opendaylight.controller.config.persist.api.StorageAdapter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.File; import java.io.IOException; import java.nio.charset.Charset; @@ -31,9 +22,17 @@ import java.util.List; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; +import org.apache.commons.lang3.StringUtils; +import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder; +import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolderImpl; +import org.opendaylight.controller.config.persist.api.Persister; +import org.opendaylight.controller.config.persist.api.PropertiesProvider; +import org.opendaylight.controller.config.persist.api.StorageAdapter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** - * StorageAdapter that stores configuration in a plan file. + * StorageAdapter that stores configuration in a plain file. */ public class FileStorageAdapter implements StorageAdapter, Persister { private static final Logger logger = LoggerFactory.getLogger(FileStorageAdapter.class); diff --git a/opendaylight/config/config-persister-file-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/file/FileStorageAdapterTest.java b/opendaylight/config/config-persister-file-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/file/FileStorageAdapterTest.java index 0236598f2b..0366dbcaed 100644 --- a/opendaylight/config/config-persister-file-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/file/FileStorageAdapterTest.java +++ b/opendaylight/config/config-persister-file-adapter/src/test/java/org/opendaylight/controller/config/persist/storage/file/FileStorageAdapterTest.java @@ -11,18 +11,18 @@ package org.opendaylight.controller.config.persist.storage.file; import com.google.common.base.Charsets; import com.google.common.base.Predicate; import com.google.common.collect.Collections2; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mockito; -import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder; - import java.io.File; import java.nio.file.Files; import java.util.Collection; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; - +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; +import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder; +import org.opendaylight.controller.config.persist.api.Persister; +import org.opendaylight.controller.config.persist.test.PropertiesProviderTest; import static junit.framework.Assert.assertFalse; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertEquals; @@ -42,6 +42,49 @@ public class FileStorageAdapterTest { i = 1; } + + @Test + public void testFileAdapterAsPersister() throws Exception { + FileStorageAdapter storage = new FileStorageAdapter(); + PropertiesProviderTest pp = new PropertiesProviderTest(); + pp.addProperty("fileStorage",file.getPath()); + pp.addProperty("numberOfBackups",Integer.toString(Integer.MAX_VALUE)); + + Persister configPersister = storage.instantiate(pp); + final ConfigSnapshotHolder holder = new ConfigSnapshotHolder() { + @Override + public String getConfigSnapshot() { + return createConfig(); + } + + @Override + public SortedSet getCapabilities() { + return createCaps(); + } + }; + configPersister.persistConfig(holder); + + configPersister.persistConfig(holder); + + Collection readLines = Collections2.filter(com.google.common.io.Files.readLines(file, Charsets.UTF_8), + new Predicate() { + + @Override + public boolean apply(String input) { + if (input.equals("")) + return false; + return true; + } + }); + assertEquals(14, readLines.size()); + + List lastConf = storage.loadLastConfigs(); + assertEquals(1, lastConf.size()); + ConfigSnapshotHolder configSnapshotHolder = lastConf.get(0); + assertEquals("2", + configSnapshotHolder.getConfigSnapshot().replaceAll("\\s", "")); + assertEquals(createCaps(), configSnapshotHolder.getCapabilities()); + } @Test public void testFileAdapter() throws Exception { FileStorageAdapter storage = new FileStorageAdapter(); diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index 9f9bca9d98..36b109fcd1 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -155,6 +155,12 @@ config-persister-api ${config.version} + + ${project.groupId} + config-persister-api + ${config.version} + test-jar + org.opendaylight.bgpcep mockito-configuration -- 2.36.6