Add test cases for 65% branch coverage 51/88451/13
authoreconwar <conor.ward@est.tech>
Mon, 24 Jun 2019 11:03:58 +0000 (11:03 +0000)
committereconwar <conor.ward@est.tech>
Mon, 24 Jun 2019 11:03:58 +0000 (11:03 +0000)
Format the Test classes to adhere to ONAP Java style

Change-Id: I9efad3caa532c4db73bb20327d0356b3af5ed2b1
Issue-ID: DMAAP-1195
Signed-off-by: econwar <conor.ward@est.tech>
14 files changed:
datarouter-node/pom.xml
datarouter-node/src/main/java/org/onap/dmaap/datarouter/node/Delivery.java
datarouter-node/src/main/java/org/onap/dmaap/datarouter/node/LogManager.java
datarouter-node/src/main/java/org/onap/dmaap/datarouter/node/StatusLog.java
datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/DRNodeCadiFilterTest.java
datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/DeliveryQueueTest.java
datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/DeliveryTaskTest.java [new file with mode: 0644]
datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/DeliveryTest.java
datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/DestInfoTest.java [new file with mode: 0644]
datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/LogManagerTest.java [new file with mode: 0644]
datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeConfigTest.java
datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeUtilsTest.java
datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/ProvDataTest.java
datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/StatusLogTest.java

index 06aa3fc..a4de6f7 100755 (executable)
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+            <version>3.1.6</version>
+        </dependency>
     </dependencies>
     <profiles>
         <profile>
index df73c1e..e401324 100644 (file)
@@ -28,7 +28,7 @@ import com.att.eelf.configuration.EELFManager;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Hashtable;
+import java.util.HashMap;
 import java.util.Objects;
 
 /**
@@ -50,7 +50,7 @@ public class Delivery {
     private int threads;
     private int curthreads;
     private NodeConfigManager config;
-    private Hashtable<String, DeliveryQueue> dqs = new Hashtable<>();
+    private HashMap<String, DeliveryQueue> dqs = new HashMap<>();
     private DeliveryQueue[] queues = new DeliveryQueue[0];
     private int qpos = 0;
     private long nextcheck;
@@ -178,7 +178,7 @@ public class Delivery {
         DestInfo[] alldis = config.getAllDests();
         DeliveryQueue[] nqs = new DeliveryQueue[alldis.length];
         qpos = 0;
-        Hashtable<String, DeliveryQueue> ndqs = new Hashtable<>();
+        HashMap<String, DeliveryQueue> ndqs = new HashMap<>();
         for (DestInfo di : alldis) {
             String spl = di.getSpool();
             DeliveryQueue dq = dqs.get(spl);
@@ -266,7 +266,7 @@ public class Delivery {
         return false;
     }
 
-    private static class DelItem implements Comparable<DelItem> {
+    static class DelItem implements Comparable<DelItem> {
 
         private String pubid;
         private String spool;
index 3277408..903a0c5 100644 (file)
@@ -56,6 +56,8 @@ public class LogManager extends TimerTask {
     private String uploaddir;
     private String logdir;
 
+    private static final String EXCEPTION = "Exception";
+
     /**
      * Construct a log manager
      *
@@ -68,7 +70,7 @@ public class LogManager extends TimerTask {
             isnodelog = Pattern.compile("node\\.log\\.\\d{8}").matcher("");
             iseventlog = Pattern.compile("events-\\d{12}\\.log").matcher("");
         } catch (Exception e) {
-            logger.error("Exception", e);
+            logger.error(EXCEPTION, e);
         }
         logdir = config.getLogDir();
         uploaddir = logdir + "/.spool";
@@ -87,9 +89,12 @@ public class LogManager extends TimerTask {
         worker.poke();
     }
 
-    private class Uploader extends Thread implements DeliveryQueueHelper {
+    public Uploader getWorker() {
+        return worker;
+    }
+
+    class Uploader extends Thread implements DeliveryQueueHelper {
 
-        private static final String EXCEPTION = "Exception";
         private static final String META = "/.meta";
         private EELFLogger logger = EELFManager.getInstance().getLogger(Uploader.class);
         private DeliveryQueue dq;
@@ -166,6 +171,7 @@ public class LogManager extends TimerTask {
             notify();
         }
 
+        @Override
         public void run() {
             while (true) {
                 scan();
index e616558..2d02fa6 100644 (file)
@@ -53,7 +53,7 @@ public class StatusLog {
     private long nexttime;
     private OutputStream os;
     private long intvl;
-    private NodeConfigManager config = NodeConfigManager.getInstance();
+    private static NodeConfigManager config = NodeConfigManager.getInstance();
 
     private StatusLog() {
     }
index f6737b1..bb36718 100644 (file)
@@ -1,4 +1,4 @@
-/**-\r
+/*\r
  * ============LICENSE_START=======================================================\r
  *  Copyright (C) 2019 Nordix Foundation.\r
  * ================================================================================\r
 \r
 package org.onap.dmaap.datarouter.node;\r
 \r
+import static org.mockito.Mockito.doThrow;\r
+import static org.mockito.Mockito.mock;\r
+import static org.mockito.Mockito.times;\r
+import static org.mockito.Mockito.verify;\r
+import static org.mockito.Mockito.when;\r
+\r
+import java.io.IOException;\r
+import javax.servlet.FilterChain;\r
+import javax.servlet.ServletException;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
 import org.junit.Before;\r
 import org.junit.Test;\r
 import org.junit.runner.RunWith;\r
@@ -32,19 +43,10 @@ import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;\r
 import org.powermock.modules.junit4.PowerMockRunner;\r
 \r
-import javax.servlet.FilterChain;\r
-import javax.servlet.ServletException;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-import java.io.IOException;\r
-\r
-import static org.mockito.Mockito.*;\r
-\r
 @SuppressStaticInitializationFor("org.onap.dmaap.datarouter.node.NodeConfigManager")\r
 @PrepareForTest({CadiFilter.class})\r
 @RunWith(PowerMockRunner.class)\r
-public class DRNodeCadiFilterTest\r
-{\r
+public class DRNodeCadiFilterTest {\r
 \r
     @Mock\r
     private PropAccess access;\r
@@ -67,7 +69,8 @@ public class DRNodeCadiFilterTest
     }\r
 \r
     @Test\r
-    public void Given_doFilter_Called_And_Method_Is_GET_And_AAF_DB_Instance_Is_NULL_Then_Chain_doFilter_Called() throws Exception {\r
+    public void Given_doFilter_Called_And_Method_Is_GET_And_AAF_DB_Instance_Is_NULL_Then_Chain_doFilter_Called()\r
+            throws Exception {\r
         PowerMockito.mockStatic(NodeConfigManager.class);\r
         NodeConfigManager config = mock(NodeConfigManager.class);\r
 \r
@@ -75,12 +78,13 @@ public class DRNodeCadiFilterTest
         PowerMockito.when(config.getAafInstance("/other/5")).thenReturn("legacy");\r
         when(request.getPathInfo()).thenReturn("/publish/5");\r
         when(request.getMethod()).thenReturn("GET");\r
-        cadiFilter.doFilter(request,response,chain);\r
+        cadiFilter.doFilter(request, response, chain);\r
         verify(chain, times(1)).doFilter(request, response);\r
     }\r
 \r
     @Test\r
-    public void Given_doFilter_Called_And_Method_Is_GET_And_Path_Includes_Internal_Then_Chain_doFilter_Called() throws Exception {\r
+    public void Given_doFilter_Called_And_Method_Is_GET_And_Path_Includes_Internal_Then_Chain_doFilter_Called()\r
+            throws Exception {\r
         PowerMockito.mockStatic(NodeConfigManager.class);\r
         NodeConfigManager config = mock(NodeConfigManager.class);\r
 \r
@@ -88,12 +92,13 @@ public class DRNodeCadiFilterTest
         PowerMockito.when(config.getAafInstance("/other/5")).thenReturn("legacy");\r
         when(request.getPathInfo()).thenReturn("/internal/5");\r
         when(request.getMethod()).thenReturn("GET");\r
-        cadiFilter.doFilter(request,response,chain);\r
+        cadiFilter.doFilter(request, response, chain);\r
         verify(chain, times(1)).doFilter(request, response);\r
     }\r
 \r
     @Test\r
-    public void Given_doFilter_Called_And_Method_Is_GET_And_AAF_DB_Is_Not_Null_Then_Super_doFilter_Called() throws Exception {\r
+    public void Given_doFilter_Called_And_Method_Is_GET_And_AAF_DB_Is_Not_Null_Then_Super_doFilter_Called()\r
+            throws Exception {\r
         PowerMockito.mockStatic(NodeConfigManager.class);\r
         NodeConfigManager config = mock(NodeConfigManager.class);\r
 \r
@@ -102,20 +107,22 @@ public class DRNodeCadiFilterTest
         when(request.getPathInfo()).thenReturn("/publish/5/fileId");\r
         when(request.getMethod()).thenReturn("GET");\r
         PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(CadiFilter.class));\r
-        cadiFilter.doFilter(request,response,chain);\r
+        cadiFilter.doFilter(request, response, chain);\r
         verify(chain, times(0)).doFilter(request, response);\r
     }\r
 \r
     @Test\r
-    public void Given_getFileid_Called_And_SendError_Fails_Then_Throw_IOException_And_Call_chain_doFilter() throws Exception {\r
+    public void Given_getFileid_Called_And_SendError_Fails_Then_Throw_IOException_And_Call_chain_doFilter()\r
+            throws Exception {\r
         PowerMockito.mockStatic(NodeConfigManager.class);\r
         NodeConfigManager config = mock(NodeConfigManager.class);\r
 \r
         PowerMockito.when(NodeConfigManager.getInstance()).thenReturn(config);\r
         when(request.getPathInfo()).thenReturn("/publish/5");\r
         when(request.getMethod()).thenReturn("DELETE");\r
-        doThrow(new IOException()).when(response).sendError(HttpServletResponse.SC_NOT_FOUND, "Invalid request URI.  Expecting <feed-publishing-url>/<fileid>.  Possible missing fileid.");\r
-        cadiFilter.doFilter(request,response,chain);\r
+        doThrow(new IOException()).when(response).sendError(HttpServletResponse.SC_NOT_FOUND,\r
+                "Invalid request URI.  Expecting <feed-publishing-url>/<fileid>.  Possible missing fileid.");\r
+        cadiFilter.doFilter(request, response, chain);\r
         verify(chain, times(1)).doFilter(request, response);\r
     }\r
 }\r
index fa868b2..6a5f219 100644 (file)
 
 package org.onap.dmaap.datarouter.node;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.anyLong;
+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.io.File;
+import java.util.Hashtable;
+import java.util.Vector;
 import org.apache.commons.lang3.reflect.FieldUtils;
+import org.jetbrains.annotations.NotNull;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;
 import org.powermock.modules.junit4.PowerMockRunner;
 
-import java.io.File;
-
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.when;
-
 @RunWith(PowerMockRunner.class)
+@SuppressStaticInitializationFor("org.onap.dmaap.datarouter.node.NodeConfigManager")
 public class DeliveryQueueTest {
 
+    @Mock
+    DeliveryQueueHelper deliveryQueueHelper;
     private DeliveryQueue deliveryQueue;
     @Mock
     private DestInfo destInfo;
-    @Mock
-    DeliveryQueueHelper deliveryQueueHelper;
-
     private String dirPath = "/tmp/dir001/";
     private String fileName = "10000000000004.fileName.M";
 
     @Before
-    public void setUp() {
+    public void setUp() throws IllegalAccessException {
         when(destInfo.getSpool()).thenReturn(dirPath);
+        when(destInfo.isPrivilegedSubscriber()).thenReturn(true);
         deliveryQueue = new DeliveryQueue(deliveryQueueHelper, destInfo);
+        NodeConfigManager configManager = mockNodeConfigManager();
+        FieldUtils.writeDeclaredStaticField(StatusLog.class, "config", configManager, true);
     }
 
     @Test
@@ -61,8 +75,8 @@ public class DeliveryQueueTest {
 
     @Test
     public void Given_Delivery_Task_Failed_And_Resume_Time_Not_Reached_Return_Null() throws Exception {
-        FieldUtils.writeField(deliveryQueue,"failed",true,true);
-        FieldUtils.writeField(deliveryQueue,"resumetime",System.currentTimeMillis()*2,true);
+        FieldUtils.writeField(deliveryQueue, "failed", true, true);
+        FieldUtils.writeField(deliveryQueue, "resumetime", System.currentTimeMillis() * 2, true);
         assertNull(deliveryQueue.peekNext());
     }
 
@@ -77,12 +91,148 @@ public class DeliveryQueueTest {
         deleteFile(dirPath);
     }
 
+    @Test
+    public void Given_Task_In_Todo_Is_Already_Cleaned_GetNext_Returns_Null() throws Exception {
+        when(deliveryQueueHelper.getExpirationTimer()).thenReturn(10000L);
+        deliveryQueue = new DeliveryQueue(deliveryQueueHelper, destInfo);
+        Vector<DeliveryTask> tasks = new Vector<>();
+        DeliveryTask task = new DeliveryTask(deliveryQueue, "123.node.datarouternew.com");
+        task.clean();
+        tasks.add(task);
+        FieldUtils.writeField(deliveryQueue, "todo", tasks, true);
+        DeliveryTask nt = deliveryQueue.getNext();
+        assertNull(nt);
+    }
+
+    @Test
+    public void Given_Task_In_Todo_Has_Resume_Time_In_Future_GetNext_Returns_Null() throws Exception {
+        when(destInfo.isPrivilegedSubscriber()).thenReturn(true);
+        when(deliveryQueueHelper.getExpirationTimer()).thenReturn(10000L);
+        deliveryQueue = new DeliveryQueue(deliveryQueueHelper, destInfo);
+        Vector<DeliveryTask> tasks = new Vector<>();
+        DeliveryTask task = new DeliveryTask(deliveryQueue, "123.node.datarouternew.com");
+        long timeInFuture = 2558366240223L;
+        task.setResumeTime(timeInFuture);
+        tasks.add(task);
+        FieldUtils.writeField(deliveryQueue, "todo", tasks, true);
+        DeliveryTask nt = deliveryQueue.getNext();
+        assertNull(nt);
+    }
+
+    @Test
+    public void Given_Task_In_Todo_Is_Expired_GetNext_Returns_Null() throws Exception {
+        when(destInfo.isPrivilegedSubscriber()).thenReturn(true);
+        when(deliveryQueueHelper.getExpirationTimer()).thenReturn(10000L);
+        deliveryQueue = new DeliveryQueue(deliveryQueueHelper, destInfo);
+        Vector<DeliveryTask> tasks = new Vector<>();
+        DeliveryTask task = new DeliveryTask(deliveryQueue, "123.node.datarouternew.com");
+        long timeInPast = 1058366240223L;
+        task.setResumeTime(timeInPast);
+        tasks.add(task);
+        FieldUtils.writeField(deliveryQueue, "todo", tasks, true);
+        DeliveryTask nt = deliveryQueue.getNext();
+        assertNull(nt);
+    }
+
     @Test
     public void Given_Delivery_Task_Cancel_And_FileId_Is_Null_Return_Zero() {
         long rc = deliveryQueue.cancelTask("123.node.datarouternew.com");
         assertEquals(0, rc);
     }
 
+    @Test
+    public void Given_Delivery_Task_Is_Working_Cancel_Task_Returns_Zero() throws IllegalAccessException {
+        Hashtable<String, DeliveryTask> tasks = new Hashtable<>();
+        tasks.put("123.node.datarouternew.com", new DeliveryTask(deliveryQueue, "123.node.datarouternew.com"));
+        FieldUtils.writeField(deliveryQueue, "working", tasks, true);
+        long rc = deliveryQueue.cancelTask("123.node.datarouternew.com");
+        assertEquals(0, rc);
+    }
+
+    @Test
+    public void Given_Delivery_Task_In_Todo_Cancel_Task_Returns_Zero() throws IllegalAccessException {
+        Vector<DeliveryTask> tasks = new Vector<>();
+        tasks.add(new DeliveryTask(deliveryQueue, "123.node.datarouternew.com"));
+        FieldUtils.writeField(deliveryQueue, "todo", tasks, true);
+        long rc = deliveryQueue.cancelTask("123.node.datarouternew.com");
+        assertEquals(0, rc);
+    }
+
+    @Test
+    public void Given_Ok_Status_And_Privileged_Subscriber_Then_Set_Resume_Time_Is_Called_On_DeliveryTask() {
+        DeliveryTask deliveryTask = mockDeliveryTask();
+        deliveryQueue.reportStatus(deliveryTask, 200, "123456789.dmaap-dr-node", "delivery");
+        verify(deliveryTask, times(1)).setResumeTime(anyLong());
+        cleanUpLogging();
+    }
+
+    @Test
+    public void Given_Ok_Status_And_Not_Privileged_Subscriber_Then_Clean_Is_Called_On_DeliveryTask() {
+        DeliveryTask deliveryTask = mockDeliveryTask();
+        when(destInfo.isPrivilegedSubscriber()).thenReturn(false);
+        deliveryQueue = new DeliveryQueue(deliveryQueueHelper, destInfo);
+        deliveryQueue.reportStatus(deliveryTask, 200, "123456789.dmaap-dr-node", "delivery");
+        verify(deliveryTask, times(1)).clean();
+        cleanUpLogging();
+    }
+
+    @Test
+    public void Given_Not_Ok_Status_Then_Clean_Is_Called_On_DeliveryTask() {
+        DeliveryTask deliveryTask = mockDeliveryTask();
+        deliveryQueue.reportStatus(deliveryTask, 400, "123456789.dmaap-dr-node", "delivery");
+        verify(deliveryTask, times(1)).clean();
+        cleanUpLogging();
+    }
+
+    @Test
+    public void Given_Task_In_Working_MarkTaskSuccess_Returns_True() throws IllegalAccessException {
+        Hashtable<String, DeliveryTask> tasks = new Hashtable<>();
+        tasks.put("123.node.datarouternew.com", new DeliveryTask(deliveryQueue, "123.node.datarouternew.com"));
+        FieldUtils.writeField(deliveryQueue, "working", tasks, true);
+        assertTrue(deliveryQueue.markTaskSuccess("123.node.datarouternew.com"));
+    }
+
+    @Test
+    public void Given_Task_In_Retry_MarkTaskSuccess_Returns_True() throws IllegalAccessException {
+        Hashtable<String, DeliveryTask> tasks = new Hashtable<>();
+        tasks.put("123.node.datarouternew.com", new DeliveryTask(deliveryQueue, "123.node.datarouternew.com"));
+        FieldUtils.writeField(deliveryQueue, "retry", tasks, true);
+        assertTrue(deliveryQueue.markTaskSuccess("123.node.datarouternew.com"));
+    }
+
+    @Test
+    public void Given_Task_Does_Not_Exist_MarkTaskSuccess_Returns_False() {
+        assertFalse(deliveryQueue.markTaskSuccess("false.pubId.com"));
+    }
+
+    private void cleanUpLogging() {
+        final File currentDir = new File(System.getProperty("user.dir"));
+        final File[] files = currentDir.listFiles((file, name) -> name.matches("null.*"));
+        if (files != null) {
+            for (final File file : files) {
+                file.delete();
+            }
+        }
+    }
+
+    @NotNull
+    private DeliveryTask mockDeliveryTask() {
+        DeliveryTask deliveryTask = mock(DeliveryTask.class);
+        when(deliveryTask.getPublishId()).thenReturn("123456789.dmaap-dr-node");
+        when(deliveryTask.getFeedId()).thenReturn("1");
+        when(deliveryTask.getSubId()).thenReturn("1");
+        when(deliveryTask.getURL()).thenReturn("http://subcriber.com:7070/delivery");
+        when(deliveryTask.getCType()).thenReturn("application/json");
+        when(deliveryTask.getLength()).thenReturn(486L);
+        return deliveryTask;
+    }
+
+    private NodeConfigManager mockNodeConfigManager() {
+        NodeConfigManager config = mock(NodeConfigManager.class);
+        PowerMockito.when(config.getEventLogInterval()).thenReturn("30000");
+        return config;
+    }
+
     private void prepareFiles() throws Exception {
         createFolder(dirPath);
         createFile(fileName, dirPath);
diff --git a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/DeliveryTaskTest.java b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/DeliveryTaskTest.java
new file mode 100644 (file)
index 0000000..3d17e3e
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.dmaap.datarouter.node;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.Mock;
+
+public class DeliveryTaskTest {
+
+    @Mock
+    private DeliveryQueue deliveryQueue;
+
+    @Test
+    public void Validate_Delivery_Task_Equals() {
+        DestInfo destInfo = getDestInfo();
+        deliveryQueue = mockDelvieryQueue(destInfo);
+        DeliveryTask task = new DeliveryTask(deliveryQueue, "123456789.test-dr-datafile");
+        DeliveryTask task2 = new DeliveryTask(deliveryQueue, "123456789.test-dr-datafile");
+        Assert.assertEquals(task, task2);
+        Assert.assertEquals(task.hashCode(), task2.hashCode());
+        Assert.assertEquals(task.toString(), task2.toString());
+        Assert.assertEquals(0, task.compareTo(task2));
+    }
+
+    @Test
+    public void Validate_Delivery_Tasks_Not_Equal() {
+        DestInfo destInfo = getDestInfo();
+        deliveryQueue = mockDelvieryQueue(destInfo);
+        DeliveryTask task = new DeliveryTask(deliveryQueue, "123456789.test-dr-node");
+        DeliveryTask task2 = new DeliveryTask(deliveryQueue, "123456789.test-dr-datafile");
+        Assert.assertNotEquals(task, task2);
+        Assert.assertNotEquals(0, task.compareTo(task2));
+    }
+
+    private DestInfo getDestInfo() {
+        return new DestInfoBuilder().setName("n:" + "dmaap-dr-node")
+                .setSpool(System.getProperty("user.dir") + "/src/test/resources")
+                .setSubid("1").setLogdata("n2n-dmaap-dr-node").setUrl("https://dmaap-dr-node:8443/internal/publish")
+                .setAuthuser("dmaap-dr-node").setAuthentication("Auth").setMetaonly(false).setUse100(true)
+                .setPrivilegedSubscriber(false).setFollowRedirects(false).setDecompress(false).createDestInfo();
+    }
+
+    private DeliveryQueue mockDelvieryQueue(DestInfo destInfo) {
+        DeliveryQueue mockedDeliveryQueue = mock(DeliveryQueue.class);
+        when(mockedDeliveryQueue.getDestinationInfo()).thenReturn(destInfo);
+        return mockedDeliveryQueue;
+    }
+
+}
index c21bdec..18d9d56 100644 (file)
  ******************************************************************************/
 package org.onap.dmaap.datarouter.node;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Hashtable;
 import org.apache.commons.lang3.reflect.FieldUtils;
 import org.junit.After;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
+import org.onap.dmaap.datarouter.node.Delivery.DelItem;
 import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;
 import org.powermock.modules.junit4.PowerMockRunner;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.Hashtable;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
 @RunWith(PowerMockRunner.class)
 @SuppressStaticInitializationFor("org.onap.dmaap.datarouter.node.NodeConfigManager")
 public class DeliveryTest {
 
-  @Mock
-  private DeliveryQueue deliveryQueue;
+    @Mock
+    private DeliveryQueue deliveryQueue;
+    @Mock
+    private NodeConfigManager config;
+    private File nDir = new File("tmp/n");
+    private File newNDir = new File("tmp/n/0");
+    private File newNFile = new File("tmp/n/0/testN.txt");
+    private File sDir = new File("tmp/s");
+    private File newSDir = new File("tmp/s/0/1");
+    private File newSpoolFile = new File("tmp/s/0/1/123456789.dmaap-dr-node");
+    private File spoolFileMeta = new File("tmp/s/0/1/123456789.dmaap-dr-node.M");
+
+    @Before
+    public void setUp() throws IOException {
+        nDir.mkdirs();
+        sDir.mkdirs();
+        newNDir.mkdirs();
+        newNFile.createNewFile();
+        newSDir.mkdirs();
+        newSpoolFile.createNewFile();
+        spoolFileMeta.createNewFile();
+        config = mockNodeConfigManager();
+    }
+
+    @Test
+    public void Validate_Reset_Queue_Calls_Reset_Queue_On_Delivery_Queue_Object() throws IllegalAccessException {
+        Delivery delivery = new Delivery(config);
+        HashMap<String, DeliveryQueue> dqs = new HashMap<>();
+        dqs.put("tmp/s/0/1", deliveryQueue);
+        FieldUtils.writeDeclaredField(delivery, "dqs", dqs, true);
+        delivery.resetQueue("tmp/s/0/1");
+        verify(deliveryQueue, times(1)).resetQueue();
+    }
 
-  private File nDir = new File("tmp/n");
-  private File sDir = new File("tmp/s");
+    @Test
+    public void Validate_Mark_Success_Calls_Mark_Success_On_Delivery_Queue_Object() throws IllegalAccessException {
+        Delivery delivery = new Delivery(config);
+        HashMap<String, DeliveryQueue> dqs = new HashMap<>();
+        dqs.put("tmp/s/0/1", deliveryQueue);
+        FieldUtils.writeDeclaredField(delivery, "dqs", dqs, true);
+        delivery.markTaskSuccess("tmp/s/0/1", "123456789.dmaap-dr-node");
+        verify(deliveryQueue, times(1)).markTaskSuccess("123456789.dmaap-dr-node");
+    }
 
-  @Before
-  public void setUp() throws IOException {
-    nDir.mkdirs();
-    sDir.mkdirs();
-    File newNDir = new File("tmp/n/0");
-    newNDir.mkdirs();
-    File newNFile = new File("tmp/n/0/testN.txt");
-    newNFile.createNewFile();
-    File newSDir = new File("tmp/s/0/1");
-    newSDir.mkdirs();
-    File newSpoolFile = new File("tmp/s/0/1/testSpool.txt");
-    newSpoolFile.createNewFile();
-  }
+    @Test
+    public void Validate_DelItem_With_Equal_Spool_And_PubId_Are_Equal() {
+        DelItem delItem1 = new DelItem("123456789.dmaap-dr-node", "tmp/s/0/1");
+        DelItem delItem2 = new DelItem("123456789.dmaap-dr-node", "tmp/s/0/1");
+        Assert.assertEquals(delItem1, delItem2);
+        Assert.assertEquals(0, delItem1.compareTo(delItem2));
+    }
 
-  @Test
-  public void Validate_Reset_Queue_Calls_Reset_Queue_On_Delivery_Queue_Object() throws IllegalAccessException {
-    NodeConfigManager config = mockNodeConfigManager();
-    Delivery delivery = new Delivery(config);
-    Hashtable<String, DeliveryQueue> dqs = new Hashtable<>();
-    dqs.put("spool/s/0/1", deliveryQueue);
-    FieldUtils.writeDeclaredField(delivery, "dqs", dqs, true);
-    delivery.resetQueue("spool/s/0/1");
-    verify(deliveryQueue, times(1)).resetQueue();
-  }
+    @Test
+    public void Validate_DelItem_With_Unequal_Spool_And_PubId_Are_Not_Equal() {
+        DelItem delItem1 = new DelItem("123456789.dmaap-dr-node", "tmp/s/0/1");
+        DelItem delItem2 = new DelItem("000000000.dmaap-dr-node", "tmp/s/0/2");
+        Assert.assertNotEquals(delItem1, delItem2);
+        Assert.assertNotEquals(0, delItem1.compareTo(delItem2));
+    }
 
-  @After
-  public void tearDown() {
-    nDir.delete();
-    sDir.delete();
-    File tmpDir = new File("tmp");
-    tmpDir.delete();
-  }
+    @After
+    public void tearDown() {
+        newSpoolFile.delete();
+        spoolFileMeta.delete();
+        newNFile.delete();
+        newNDir.delete();
+        newSDir.delete();
+        new File("tmp/s/0").delete();
+        nDir.delete();
+        sDir.delete();
+        File tmpDir = new File("tmp");
+        tmpDir.delete();
+    }
 
-  private NodeConfigManager mockNodeConfigManager() {
-    PowerMockito.mockStatic(NodeConfigManager.class);
-    NodeConfigManager config = mock(NodeConfigManager.class);
-    PowerMockito.when(config.isConfigured()).thenReturn(true);
-    PowerMockito.when(config.getAllDests()).thenReturn(createDestInfoObjects());
-    PowerMockito.when(config.getFreeDiskStart()).thenReturn(0.49);
-    PowerMockito.when(config.getFreeDiskStop()).thenReturn(0.5);
-    PowerMockito.when(config.getDeliveryThreads()).thenReturn(0);
-    PowerMockito.when(config.getSpoolBase()).thenReturn("tmp");
-    return config;
-  }
+    private NodeConfigManager mockNodeConfigManager() {
+        NodeConfigManager config = mock(NodeConfigManager.class);
+        PowerMockito.when(config.isConfigured()).thenReturn(true);
+        PowerMockito.when(config.getAllDests()).thenReturn(createDestInfoObjects());
+        PowerMockito.when(config.getFreeDiskStart()).thenReturn(0.9);
+        PowerMockito.when(config.getFreeDiskStop()).thenReturn(0.2);
+        PowerMockito.when(config.getDeliveryThreads()).thenReturn(0);
+        PowerMockito.when(config.getSpoolBase()).thenReturn("tmp");
+        return config;
+    }
 
-  private DestInfo[] createDestInfoObjects() {
-    DestInfo[] destInfos = new DestInfo[1];
-    DestInfo destInfo = new DestInfoBuilder().setName("node.datarouternew.com").setSpool("spool/s/0/1").setSubid("1")
-        .setLogdata("logs/").setUrl("/subs/1").setAuthuser("user1").setAuthentication("Basic dXNlcjE6cGFzc3dvcmQx")
-        .setMetaonly(false).setUse100(true).setPrivilegedSubscriber(false).setFollowRedirects(false)
-        .setDecompress(false).createDestInfo();
-    destInfos[0] = destInfo;
-    return destInfos;
-  }
+    private DestInfo[] createDestInfoObjects() {
+        DestInfo[] destInfos = new DestInfo[1];
+        DestInfo destInfo = new DestInfoBuilder().setName("node.datarouternew.com").setSpool("tmp/s/0/1")
+                .setSubid("1")
+                .setLogdata("logs/").setUrl("/subs/1").setAuthuser("user1")
+                .setAuthentication("Basic dXNlcjE6cGFzc3dvcmQx")
+                .setMetaonly(false).setUse100(true).setPrivilegedSubscriber(false).setFollowRedirects(false)
+                .setDecompress(false).createDestInfo();
+        destInfos[0] = destInfo;
+        return destInfos;
+    }
 }
diff --git a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/DestInfoTest.java b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/DestInfoTest.java
new file mode 100644 (file)
index 0000000..ed629bf
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.dmaap.datarouter.node;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class DestInfoTest {
+
+    private DestInfo destInfo;
+
+    @Before
+    public void setUp() {
+        destInfo = getDestInfo("/src/test/resources");
+    }
+
+    @Test
+    public void Validate_Getters_And_Setters() {
+        assertEquals("n:dmaap-dr-node", destInfo.getName());
+        assertEquals("/src/test/resources", destInfo.getSpool());
+        assertEquals("1", destInfo.getSubId());
+        assertEquals("n2n-dmaap-dr-node", destInfo.getLogData());
+        assertEquals("https://dmaap-dr-node:8443/internal/publish", destInfo.getURL());
+        assertEquals("dmaap-dr-node", destInfo.getAuthUser());
+        assertEquals("Auth", destInfo.getAuth());
+        assertFalse(destInfo.isMetaDataOnly());
+        assertTrue(destInfo.isUsing100());
+        assertFalse(destInfo.isPrivilegedSubscriber());
+        assertFalse(destInfo.isFollowRedirects());
+        assertFalse(destInfo.isDecompress());
+    }
+
+    @Test
+    public void Validate_DestInfo_Objects_Are_Equal() {
+        DestInfo destInfo2 = getDestInfo("/src/test/resources");
+        assertEquals(destInfo, destInfo2);
+        assertEquals(destInfo.hashCode(), destInfo2.hashCode());
+    }
+
+    @Test
+    public void Validate_DestInfo_Objects_Are_Not_Equal() {
+        DestInfo destInfo2 = getDestInfo("notEqual");
+        assertNotEquals(destInfo, destInfo2);
+        assertNotEquals(destInfo.hashCode(), destInfo2.hashCode());
+    }
+
+    private DestInfo getDestInfo(String spool) {
+        return new DestInfoBuilder().setName("n:" + "dmaap-dr-node").setSpool(spool)
+                .setSubid("1").setLogdata("n2n-dmaap-dr-node").setUrl("https://dmaap-dr-node:8443/internal/publish")
+                .setAuthuser("dmaap-dr-node").setAuthentication("Auth").setMetaonly(false).setUse100(true)
+                .setPrivilegedSubscriber(false).setFollowRedirects(false).setDecompress(false).createDestInfo();
+    }
+
+}
diff --git a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/LogManagerTest.java b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/LogManagerTest.java
new file mode 100644 (file)
index 0000000..b95fb36
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.dmaap.datarouter.node;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.util.Timer;
+import org.apache.commons.lang3.reflect.FieldUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.onap.dmaap.datarouter.node.LogManager.Uploader;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+@RunWith(PowerMockRunner.class)
+@SuppressStaticInitializationFor({"org.onap.dmaap.datarouter.node.NodeConfigManager"})
+public class LogManagerTest {
+
+    @Mock
+    private NodeConfigManager config;
+
+    private LogManager logManager;
+
+    @Before
+    public void setUp() throws IllegalAccessException {
+        mockNodeConfigManager();
+        FieldUtils.writeDeclaredStaticField(StatusLog.class, "config", config, true);
+        logManager = new LogManager(config);
+    }
+
+    @After
+    public void tearDown() {
+        File spoolDir = new File(System.getProperty("user.dir") + "/src/test/resources/.spool");
+        for (File file : spoolDir.listFiles()) {
+            if (file.exists()) {
+                file.delete();
+            }
+        }
+        spoolDir.delete();
+    }
+
+    @Test
+    public void Verify_LogManager_Attempts_To_Deliver_Log_Files_To_Prov() {
+        logManager.run();
+        try {
+            Thread.sleep(1000);
+        } catch (Exception e) {
+            System.out.println("Exception caught: " + e.getMessage());
+        }
+        File file = new File(System.getProperty("user.dir") + "/src/test/resources/.spool/.lastqueued");
+        assertTrue(file.isFile());
+    }
+
+    @Test
+    public void Validate_Uploader_Getters() {
+        Uploader worker = logManager.getWorker();
+        assertEquals(10000L, worker.getInitFailureTimer());
+        assertEquals(600000L, worker.getWaitForFileProcessFailureTimer());
+        assertEquals(2.0, worker.getFailureBackoff(), 0.0);
+        assertEquals(150000L, worker.getMaxFailureTimer());
+        assertEquals(604800000L, worker.getExpirationTimer());
+        assertEquals(10000, worker.getFairFileLimit());
+        assertEquals(86400000, worker.getFairTimeLimit());
+        assertEquals("https://dmaap-dr-prov:8443/internal/logs",
+                worker.getDestURL(new DestInfoBuilder().createDestInfo(), "String"));
+        assertFalse(worker.handleRedirection(new DestInfoBuilder().createDestInfo(), "", ""));
+        assertFalse(worker.isFollowRedirects());
+        assertNull(worker.getFeedId(""));
+    }
+
+    private void mockNodeConfigManager() {
+        PowerMockito.when(config.getLogDir()).thenReturn(System.getProperty("user.dir") + "/src/test/resources");
+        PowerMockito.when(config.getTimer()).thenReturn(new Timer("Node Configuration Timer", true));
+        PowerMockito.when(config.getEventLogPrefix())
+                .thenReturn(System.getProperty("user.dir") + "/src/test/resources/events");
+        PowerMockito.when(config.getEventLogSuffix()).thenReturn(".log");
+        PowerMockito.when(config.getLogRetention()).thenReturn(94608000000L);
+        PowerMockito.when(config.getEventLogInterval()).thenReturn("30s");
+        PowerMockito.when(config.getPublishId()).thenReturn("123456789.dmaap-dr-node");
+        PowerMockito.when(config.getEventLogUrl()).thenReturn("https://dmaap-dr-prov:8443/internal/logs");
+    }
+
+}
index 5e35737..7971924 100644 (file)
@@ -22,6 +22,9 @@
  ******************************************************************************/
 package org.onap.dmaap.datarouter.node;
 
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
 import org.json.JSONArray;
 import org.json.JSONObject;
 import org.junit.Assert;
@@ -31,10 +34,6 @@ import org.junit.runner.RunWith;
 import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;
 import org.powermock.modules.junit4.PowerMockRunner;
 
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-
 @RunWith(PowerMockRunner.class)
 @SuppressStaticInitializationFor({"org.onap.dmaap.datarouter.node.ProvData",
         "org.onap.dmaap.datarouter.node.NodeUtils"})
@@ -43,11 +42,107 @@ public class NodeConfigTest {
     private static NodeConfig nodeConfig;
 
     @BeforeClass
-    public static void setUp() throws IOException{
+    public static void setUp() throws IOException {
         ProvData provData = setUpProvData();
         nodeConfig = new NodeConfig(provData, "Name", "spool/dir", 80, "Key");
     }
 
+    private static ProvData setUpProvData() throws IOException {
+        JSONObject provData = new JSONObject();
+        createValidFeed(provData);
+        createValidSubscription(provData);
+        createValidParameters(provData);
+        createValidIngressValues(provData);
+        createValidEgressValues(provData);
+        createValidRoutingValues(provData);
+        Reader reader = new StringReader(provData.toString());
+        return new ProvData(reader);
+    }
+
+    private static void createValidFeed(JSONObject provData) {
+        JSONArray feeds = new JSONArray();
+        JSONObject feed = new JSONObject();
+        JSONObject auth = new JSONObject();
+        JSONArray endpointIds = new JSONArray();
+        JSONArray endpointAddrs = new JSONArray();
+        JSONObject endpointId = new JSONObject();
+        feed.put("feedid", "1");
+        feed.put("name", "Feed1");
+        feed.put("version", "m1.0");
+        feed.put("suspend", false);
+        feed.put("deleted", false);
+        endpointId.put("id", "user1");
+        endpointId.put("password", "password1");
+        endpointIds.put(endpointId);
+        auth.put("endpoint_ids", endpointIds);
+        endpointAddrs.put("172.0.0.1");
+        auth.put("endpoint_addrs", endpointAddrs);
+        feed.put("authorization", auth);
+        feed.put("aaf_instance", "legacy");
+        feeds.put(feed);
+        provData.put("feeds", feeds);
+    }
+
+    private static void createValidSubscription(JSONObject provData) {
+        JSONArray subscriptions = new JSONArray();
+        JSONObject subscription = new JSONObject();
+        JSONObject delivery = new JSONObject();
+        subscription.put("subid", "1");
+        subscription.put("feedid", "1");
+        subscription.put("suspend", false);
+        subscription.put("metadataOnly", false);
+        delivery.put("url", "https://172.0.0.2");
+        delivery.put("user", "user1");
+        delivery.put("password", "password1");
+        delivery.put("use100", true);
+        subscription.put("delivery", delivery);
+        subscription.put("privilegedSubscriber", false);
+        subscription.put("follow_redirect", false);
+        subscription.put("decompress", false);
+        subscriptions.put(subscription);
+        provData.put("subscriptions", subscriptions);
+    }
+
+    private static void createValidParameters(JSONObject provData) {
+        JSONObject parameters = new JSONObject();
+        JSONArray nodes = new JSONArray();
+        parameters.put("PROV_NAME", "prov.datarouternew.com");
+        parameters.put("DELIVERY_INIT_RETRY_INTERVAL", "10");
+        parameters.put("DELIVERY_MAX_AGE", "86400");
+        parameters.put("PROV_DOMAIN", "");
+        nodes.put("172.0.0.4");
+        parameters.put("NODES", nodes);
+        provData.put("parameters", parameters);
+    }
+
+    private static void createValidIngressValues(JSONObject provData) {
+        JSONArray ingresses = new JSONArray();
+        JSONObject ingress = new JSONObject();
+        ingress.put("feedid", "1");
+        ingress.put("subnet", "");
+        ingress.put("user", "");
+        ingress.put("node", "172.0.0.4");
+        ingresses.put(ingress);
+        provData.put("ingress", ingresses);
+    }
+
+    private static void createValidEgressValues(JSONObject provData) {
+        JSONObject egress = new JSONObject();
+        egress.put("subid", "1");
+        egress.put("nodeid", "172.0.0.4");
+        provData.put("egress", egress);
+    }
+
+    private static void createValidRoutingValues(JSONObject provData) {
+        JSONArray routings = new JSONArray();
+        JSONObject routing = new JSONObject();
+        routing.put("from", "prov.datarouternew.com");
+        routing.put("to", "172.0.0.4");
+        routing.put("via", "172.100.0.1");
+        routings.put(routing);
+        provData.put("routing", routings);
+    }
+
     @Test
     public void Given_Feed_Does_Not_Exist_Then_Is_Publish_Permitted_Returns_Not_Null() {
         String permitted = nodeConfig.isPublishPermitted("2", "user", "0.0.0.0");
@@ -73,7 +168,7 @@ public class NodeConfigTest {
     }
 
     @Test
-    public void Given_SubId_Then_Get_Feed_Id_Returns_Correct_Id(){
+    public void Given_SubId_Then_Get_Feed_Id_Returns_Correct_Id() {
         String feedId = nodeConfig.getFeedId("1");
         Assert.assertEquals("1", feedId);
     }
@@ -164,100 +259,4 @@ public class NodeConfigTest {
         String auth = nodeConfig.getMyAuth();
         Assert.assertEquals("Basic TmFtZTp6Z04wMFkyS3gybFppbXltNy94ZDhuMkdEYjA9", auth);
     }
-
-    private static ProvData setUpProvData() throws IOException {
-        JSONObject provData = new JSONObject();
-        createValidFeed(provData);
-        createValidSubscription(provData);
-        createValidParameters(provData);
-        createValidIngressValues(provData);
-        createValidEgressValues(provData);
-        createValidRoutingValues(provData);
-        Reader reader = new StringReader(provData.toString());
-        return new ProvData(reader);
-    }
-
-    private static void createValidFeed(JSONObject provData) {
-        JSONArray feeds = new JSONArray();
-        JSONObject feed = new JSONObject();
-        JSONObject auth = new JSONObject();
-        JSONArray endpointIds = new JSONArray();
-        JSONArray endpointAddrs = new JSONArray();
-        JSONObject endpointId = new JSONObject();
-        feed.put("feedid", "1");
-        feed.put("name", "Feed1");
-        feed.put("version", "m1.0");
-        feed.put("suspend", false);
-        feed.put("deleted", false);
-        endpointId.put("id", "user1");
-        endpointId.put("password", "password1");
-        endpointIds.put(endpointId);
-        auth.put("endpoint_ids", endpointIds);
-        endpointAddrs.put("172.0.0.1");
-        auth.put("endpoint_addrs", endpointAddrs);
-        feed.put("authorization", auth);
-        feed.put("aaf_instance", "legacy");
-        feeds.put(feed);
-        provData.put("feeds", feeds);
-    }
-
-    private static void createValidSubscription(JSONObject provData) {
-        JSONArray subscriptions = new JSONArray();
-        JSONObject subscription = new JSONObject();
-        JSONObject delivery = new JSONObject();
-        subscription.put("subid", "1");
-        subscription.put("feedid", "1");
-        subscription.put("suspend", false);
-        subscription.put("metadataOnly", false);
-        delivery.put("url", "https://172.0.0.2");
-        delivery.put("user", "user1");
-        delivery.put("password", "password1");
-        delivery.put("use100", true);
-        subscription.put("delivery", delivery);
-        subscription.put("privilegedSubscriber", false);
-        subscription.put("follow_redirect", false);
-        subscription.put("decompress", false);
-        subscriptions.put(subscription);
-        provData.put("subscriptions", subscriptions);
-    }
-
-    private static void createValidParameters(JSONObject provData) {
-        JSONObject parameters = new JSONObject();
-        JSONArray nodes = new JSONArray();
-        parameters.put("PROV_NAME", "prov.datarouternew.com");
-        parameters.put("DELIVERY_INIT_RETRY_INTERVAL", "10");
-        parameters.put("DELIVERY_MAX_AGE", "86400");
-        parameters.put("PROV_DOMAIN", "");
-        nodes.put("172.0.0.4");
-        parameters.put("NODES", nodes);
-        provData.put("parameters", parameters);
-    }
-
-    private static void createValidIngressValues(JSONObject provData) {
-        JSONArray ingresses = new JSONArray();
-        JSONObject ingress = new JSONObject();
-        ingress.put("feedid", "1");
-        ingress.put("subnet", "");
-        ingress.put("user", "");
-        ingress.put("node", "172.0.0.4");
-        ingresses.put(ingress);
-        provData.put("ingress", ingresses);
-    }
-
-    private static void createValidEgressValues(JSONObject provData) {
-        JSONObject egress = new JSONObject();
-        egress.put("subid", "1");
-        egress.put("nodeid", "172.0.0.4");
-        provData.put("egress", egress);
-    }
-
-    private static void createValidRoutingValues(JSONObject provData) {
-        JSONArray routings = new JSONArray();
-        JSONObject routing = new JSONObject();
-        routing.put("from", "prov.datarouternew.com");
-        routing.put("to", "172.0.0.4");
-        routing.put("via", "172.100.0.1");
-        routings.put(routing);
-        provData.put("routing", routings);
-    }
 }
index 27fcd1c..88e5743 100644 (file)
  ******************************************************************************/
 package org.onap.dmaap.datarouter.node;
 
+import static com.att.eelf.configuration.Configuration.MDC_SERVER_FQDN;
+import static com.att.eelf.configuration.Configuration.MDC_SERVER_IP_ADDRESS;
+import static org.mockito.Mockito.when;
+import static org.powermock.api.mockito.PowerMockito.mockStatic;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.util.UUID;
+import javax.servlet.http.HttpServletRequest;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -31,20 +40,9 @@ import org.powermock.core.classloader.annotations.SuppressStaticInitializationFo
 import org.powermock.modules.junit4.PowerMockRunner;
 import org.slf4j.MDC;
 
-import javax.servlet.http.HttpServletRequest;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.util.UUID;
-
-import static com.att.eelf.configuration.Configuration.MDC_SERVER_FQDN;
-import static com.att.eelf.configuration.Configuration.MDC_SERVER_IP_ADDRESS;
-import static org.mockito.Mockito.when;
-import static org.powermock.api.mockito.PowerMockito.mockStatic;
-
 @RunWith(PowerMockRunner.class)
 @SuppressStaticInitializationFor("org.onap.dmaap.datarouter.node.NodeUtils")
-@PrepareForTest({ UUID.class, InetAddress.class })
+@PrepareForTest({UUID.class, InetAddress.class})
 public class NodeUtilsTest {
 
     @Mock
index 662f2cc..1fd79d9 100644 (file)
 package org.onap.dmaap.datarouter.node;
 
 
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.powermock.modules.junit4.PowerMockRunner;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNull;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.nio.charset.StandardCharsets;
-
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertNull;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.modules.junit4.PowerMockRunner;
 
 @RunWith(PowerMockRunner.class)
 public class ProvDataTest {
@@ -40,77 +39,77 @@ public class ProvDataTest {
     public void Validate_Values_Are_Set_Correctly_Through_ProvData_Constuctor() throws Exception {
         String InternalProvData =
                 "{" +
-                "\"ingress\":[{" +
-                  "\"feedid\":1," +
-                  "\"subnet\":\"\"," +
-                  "\"user\":\"\"," +
-                  "\"node\":\"node\"" +
-                "}]," +
-                "\"routing\":[{" +
-                  "\"from\":\"172.10.10.10\"," +
-                  "\"to\":\"172.10.10.12\"," +
-                  "\"via\":\"172.10.10.11\"" +
-                "}]," +
-                "\"subscriptions\":[{" +
-                  "\"subid\":1," +
-                  "\"suspend\":false," +
-                  "\"delivery\":{" +
-                    "\"use100\":true," +
-                    "\"password\":\"PASSWORD\"," +
-                    "\"user\":\"LOGIN\"," +
-                    "\"url\":\"http://172.18.0.2:7070\"" +
-                  "}," +
-                  "\"last_mod\":1553608460000," +
-                  "\"subscriber\":\"PMMAPER\"," +
-                  "\"feedid\":1," +
-                  "\"decompress\":false," +
-                  "\"groupid\":1," +
-                  "\"metadataOnly\":false," +
-                  "\"follow_redirect\":false," +
-                  "\"links\":{" +
-                    "\"feed\":\"https://dmaap-dr-prov/feed/1\"" +
-                    ",\"log\":\"https://dmaap-dr-prov/sublog/1\"" +
-                    ",\"self\":\"https://dmaap-dr-prov/subs/1\"" +
-                  "}," +
-                  "\"created_date\":1553608460000," +
-                  "\"privilegedSubscriber\":false" +
-                "}]," +
-                "\"feeds\":[{" +
-                  "\"suspend\":false," +
-                  "\"groupid\":0," +
-                  "\"description\":\"Default feed\"," +
-                  "\"version\":\"m1.0\"," +
-                  "\"authorization\":{" +
-                    "\"endpoint_addrs\":[\"172.10.10.20\"]," +
-                    "\"classification\":\"unclassified\"," +
-                    "\"endpoint_ids\":[{" +
-                      "\"password\":\"password\"," +
-                      "\"id\":\"user\"" +
-                    "}]" +
-                  "}," +
-                  "\"last_mod\":1553608454000," +
-                  "\"deleted\":false," +
-                  "\"feedid\":1," +
-                  "\"name\":\"CSIT_Test2\"" +
-                  ",\"business_description\":\"Default Feed\"" +
-                  ",\"publisher\":\"dradmin\"" +
-                  ",\"links\":{" +
-                    "\"subscribe\":\"https://dmaap-dr-prov/subscribe/1\"," +
-                    "\"log\":\"https://dmaap-dr-prov/feedlog/1\"," +
-                    "\"publish\":\"https://dmaap-dr-prov/publish/1\"," +
-                    "\"self\":\"https://dmaap-dr-prov/feed/1\"" +
-                  "}," +
-                  "\"created_date\":1553608454000" +
-                "}]," +
-                "\"groups\":[]," +
-                "\"parameters\":{" +
-                  "\"NODES\":[\"dmaap-dr-node\"]," +
-                  "\"PROV_DOMAIN\":\"\"" +
-                "}," +
-                "\"egress\":{" +
-                "\"1\":1" +
-                "}" +
-                "}" ;
+                        "\"ingress\":[{" +
+                        "\"feedid\":1," +
+                        "\"subnet\":\"\"," +
+                        "\"user\":\"\"," +
+                        "\"node\":\"node\"" +
+                        "}]," +
+                        "\"routing\":[{" +
+                        "\"from\":\"172.10.10.10\"," +
+                        "\"to\":\"172.10.10.12\"," +
+                        "\"via\":\"172.10.10.11\"" +
+                        "}]," +
+                        "\"subscriptions\":[{" +
+                        "\"subid\":1," +
+                        "\"suspend\":false," +
+                        "\"delivery\":{" +
+                        "\"use100\":true," +
+                        "\"password\":\"PASSWORD\"," +
+                        "\"user\":\"LOGIN\"," +
+                        "\"url\":\"http://172.18.0.2:7070\"" +
+                        "}," +
+                        "\"last_mod\":1553608460000," +
+                        "\"subscriber\":\"PMMAPER\"," +
+                        "\"feedid\":1," +
+                        "\"decompress\":false," +
+                        "\"groupid\":1," +
+                        "\"metadataOnly\":false," +
+                        "\"follow_redirect\":false," +
+                        "\"links\":{" +
+                        "\"feed\":\"https://dmaap-dr-prov/feed/1\"" +
+                        ",\"log\":\"https://dmaap-dr-prov/sublog/1\"" +
+                        ",\"self\":\"https://dmaap-dr-prov/subs/1\"" +
+                        "}," +
+                        "\"created_date\":1553608460000," +
+                        "\"privilegedSubscriber\":false" +
+                        "}]," +
+                        "\"feeds\":[{" +
+                        "\"suspend\":false," +
+                        "\"groupid\":0," +
+                        "\"description\":\"Default feed\"," +
+                        "\"version\":\"m1.0\"," +
+                        "\"authorization\":{" +
+                        "\"endpoint_addrs\":[\"172.10.10.20\"]," +
+                        "\"classification\":\"unclassified\"," +
+                        "\"endpoint_ids\":[{" +
+                        "\"password\":\"password\"," +
+                        "\"id\":\"user\"" +
+                        "}]" +
+                        "}," +
+                        "\"last_mod\":1553608454000," +
+                        "\"deleted\":false," +
+                        "\"feedid\":1," +
+                        "\"name\":\"CSIT_Test2\"" +
+                        ",\"business_description\":\"Default Feed\"" +
+                        ",\"publisher\":\"dradmin\"" +
+                        ",\"links\":{" +
+                        "\"subscribe\":\"https://dmaap-dr-prov/subscribe/1\"," +
+                        "\"log\":\"https://dmaap-dr-prov/feedlog/1\"," +
+                        "\"publish\":\"https://dmaap-dr-prov/publish/1\"," +
+                        "\"self\":\"https://dmaap-dr-prov/feed/1\"" +
+                        "}," +
+                        "\"created_date\":1553608454000" +
+                        "}]," +
+                        "\"groups\":[]," +
+                        "\"parameters\":{" +
+                        "\"NODES\":[\"dmaap-dr-node\"]," +
+                        "\"PROV_DOMAIN\":\"\"" +
+                        "}," +
+                        "\"egress\":{" +
+                        "\"1\":1" +
+                        "}" +
+                        "}";
         Reader r = new InputStreamReader(new ByteArrayInputStream(InternalProvData.getBytes(StandardCharsets.UTF_8)));
         ProvData pd = new ProvData(r);
 
index e60f576..d379306 100644 (file)
@@ -22,6 +22,9 @@
  ******************************************************************************/
 package org.onap.dmaap.datarouter.node;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -31,9 +34,6 @@ import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;
 import org.powermock.modules.junit4.PowerMockRunner;
 
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
 @RunWith(PowerMockRunner.class)
 @SuppressStaticInitializationFor("org.onap.dmaap.datarouter.node.NodeConfigManager")
 @PrepareForTest(StatusLog.class)