X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=datarouter-node%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdatarouter%2Fnode%2FNodeConfigManagerTest.java;h=9c9457257c6d768b811db585a5ecfa1b8cbb06ba;hb=adb2ad2d16e851fbf8dcc71af68949a74463204d;hp=578053aa464ad77148e9074d1cb3d021e921f02f;hpb=9df67948f715f9cddd51287cd3e91f7cbcf1912b;p=dmaap%2Fdatarouter.git diff --git a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeConfigManagerTest.java b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeConfigManagerTest.java index 578053aa..9c945725 100644 --- a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeConfigManagerTest.java +++ b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeConfigManagerTest.java @@ -20,30 +20,69 @@ package org.onap.dmaap.datarouter.node; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.net.InetAddress; import java.net.URL; +import java.net.URLStreamHandler; +import java.net.URLStreamHandlerFactory; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.Map; import org.apache.commons.io.FileUtils; +import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; +import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; -import org.junit.runner.RunWith; +import org.mockito.Mock; import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; +import sun.net.www.URLConnection; -@RunWith(PowerMockRunner.class) @PowerMockIgnore({"javax.net.ssl.*", "javax.security.auth.x500.X500Principal", "javax.crypto.*"}) -@PrepareForTest({InetAddress.class, URL.class}) +@PrepareForTest({InetAddress.class}) public class NodeConfigManagerTest { - private NodeConfigManager nodeConfigManager = NodeConfigManager.getInstance(); + private static HttpUrlStreamHandler httpUrlStreamHandler; + + @Mock + InputStream inputStream; + + @Mock + NodeConfig nodeConfig; @BeforeClass public static void init() { System.setProperty("org.onap.dmaap.datarouter.node.properties", "src/test/resources/node_test.properties"); + // Allows for mocking URL connections + URLStreamHandlerFactory urlStreamHandlerFactory = mock(URLStreamHandlerFactory.class); + URL.setURLStreamHandlerFactory(urlStreamHandlerFactory); + httpUrlStreamHandler = new HttpUrlStreamHandler(); + given(urlStreamHandlerFactory.createURLStreamHandler("https")).willReturn(httpUrlStreamHandler); + } + + @Before + public void reset() throws IOException { + String href = "https://dmaap-dr-prov:8443/internal/prov"; + URLConnection urlConnection = mock(URLConnection.class); + httpUrlStreamHandler.addConnection(new URL(href), urlConnection); + //File prov = new File("src/test/resources/prov_data.json"); + InputStream anyInputStream = new ByteArrayInputStream(Files.readAllBytes(Paths.get("src/test/resources/prov_data.json"))); + when(urlConnection.getInputStream()).thenReturn(anyInputStream); + } + + @After + public void resetHandler() { + httpUrlStreamHandler.resetConnections(); } @AfterClass @@ -54,6 +93,7 @@ public class NodeConfigManagerTest { @Test public void Verify_NodeConfigMan_Getters() { + NodeConfigManager nodeConfigManager = NodeConfigManager.getInstance(); Assert.assertEquals("legacy", nodeConfigManager.getAafInstance()); Assert.assertEquals("src/test/resources/spool/f", nodeConfigManager.getSpoolDir()); Assert.assertEquals("src/test/resources/spool", nodeConfigManager.getSpoolBase()); @@ -70,10 +110,55 @@ public class NodeConfigManagerTest { Assert.assertEquals(new String[] {"TLSv1.1", "TLSv1.2"}, nodeConfigManager.getEnabledprotocols()); Assert.assertEquals("org.onap.dmaap-dr.feed", nodeConfigManager.getAafType()); Assert.assertEquals("publish", nodeConfigManager.getAafAction()); - Assert.assertEquals("https://aaf-locate:8095", nodeConfigManager.getAafURL()); Assert.assertFalse(nodeConfigManager.getCadiEnabled()); Assert.assertFalse(nodeConfigManager.isShutdown()); - Assert.assertFalse(nodeConfigManager.isConfigured()); + Assert.assertTrue(nodeConfigManager.isConfigured()); + Assert.assertEquals("legacy", nodeConfigManager.getAafInstance("1")); + Assert.assertNotNull(nodeConfigManager.getPublishId()); + Assert.assertNotNull(nodeConfigManager.getAllDests()); + Assert.assertEquals(10000, nodeConfigManager.getInitFailureTimer()); + Assert.assertEquals(600000, nodeConfigManager.getWaitForFileProcessFailureTimer()); + Assert.assertEquals(3600000, nodeConfigManager.getMaxFailureTimer()); + Assert.assertEquals(2.0, nodeConfigManager.getFailureBackoff(),0.0); + Assert.assertEquals(86400000, nodeConfigManager.getExpirationTimer()); + Assert.assertEquals(100, nodeConfigManager.getFairFileLimit()); + Assert.assertEquals(60000, nodeConfigManager.getFairTimeLimit()); + Assert.assertNotNull(nodeConfigManager.getTargets("1")); + Assert.assertEquals("src/test/resources/spool/f", nodeConfigManager.getSpoolDir()); + Assert.assertEquals("src/test/resources/aaf/org.onap.dmaap-dr.p12", nodeConfigManager.getKSFile()); + Assert.assertEquals("jks", nodeConfigManager.getTstype()); + Assert.assertEquals("src/test/resources/aaf/org.onap.dmaap-dr.trust.jks", nodeConfigManager.getTsfile()); + Assert.assertEquals(40, nodeConfigManager.getDeliveryThreads()); + Assert.assertEquals("30", nodeConfigManager.getEventLogInterval()); + Assert.assertFalse(nodeConfigManager.isFollowRedirects()); + Assert.assertNotNull(nodeConfigManager.getTimer()); + Assert.assertEquals("1", nodeConfigManager.getFeedId("1")); + Assert.assertEquals("Basic ZG1hYXAtZHItbm9kZTpsaEFUNHY2N3F3blY3QVFxV3ByMm84WXNuVjg9", nodeConfigManager.getMyAuth()); + Assert.assertEquals(0.05, nodeConfigManager.getFreeDiskStart(), 0.0); + Assert.assertEquals(0.2, nodeConfigManager.getFreeDiskStop(), 0.0); + Assert.assertEquals("org.onap.dmaap-dr.feed|legacy|publish", nodeConfigManager.getPermission("legacy")); } + /** + * {@link URLStreamHandler} that allows us to control the {@link URLConnection URLConnections} that are returned + * by {@link URL URLs} in the code under test. + */ + public static class HttpUrlStreamHandler extends URLStreamHandler { + + private Map connections = new HashMap(); + + @Override + protected URLConnection openConnection(URL url) { + return connections.get(url); + } + + void resetConnections() { + connections = new HashMap(); + } + + HttpUrlStreamHandler addConnection(URL url, URLConnection urlConnection) { + connections.put(url, urlConnection); + return this; + } + } } \ No newline at end of file