New test class for QueueManager 11/78011/4
authorJoss Armstrong <joss.armstrong@ericsson.com>
Wed, 6 Feb 2019 21:53:57 +0000 (21:53 +0000)
committerTakamune Cho <takamune.cho@att.com>
Thu, 7 Feb 2019 18:26:49 +0000 (18:26 +0000)
Increase test coverage from 8% to 84%

Issue-ID: APPC-1396
Change-Id: I82fa20559e37fa387dbc7efa0bc24ba93139a973
Signed-off-by: Joss Armstrong <joss.armstrong@ericsson.com>
appc-dispatcher/appc-dispatcher-common/execution-queue-management-lib/src/main/java/org/onap/appc/executionqueue/impl/QueueManager.java
appc-dispatcher/appc-dispatcher-common/execution-queue-management-lib/src/test/java/org/onap/appc/executionqueue/impl/QueueManagerTest.java [new file with mode: 0644]

index 8bad66b..579f5d1 100644 (file)
@@ -5,6 +5,8 @@
  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Copyright (C) 2017 Amdocs
+ * ================================================================================
+ * Modifications Copyright (C) 2019 Ericsson
  * =============================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 package org.onap.appc.executionqueue.impl;
 
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import org.onap.appc.executionqueue.MessageExpirationListener;
-import org.onap.appc.executionqueue.helper.Util;
-import org.onap.appc.executionqueue.impl.object.QueueMessage;
-
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
+import org.onap.appc.executionqueue.helper.Util;
+import org.onap.appc.executionqueue.impl.object.QueueMessage;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
 
 public class QueueManager {
 
     private final EELFLogger logger = EELFManager.getInstance().getLogger(QueueManager.class);
 
     private ExecutorService messageExecutor;
-    private LinkedBlockingQueue<QueueMessage> queue;
-    private int max_thread_size;
-    private int max_queue_size;
+    private int maxThreadSize;
+    private int maxQueueSize;
     private Util executionQueueUtil;
 
     public QueueManager() {
@@ -54,14 +53,14 @@ public class QueueManager {
      * Initialization method used by blueprint
      */
     public void init() {
-        max_thread_size = executionQueueUtil.getThreadPoolSize();
-        max_queue_size = executionQueueUtil.getExecutionQueueSize();
+        maxThreadSize = executionQueueUtil.getThreadPoolSize();
+        maxQueueSize = executionQueueUtil.getExecutionQueueSize();
         messageExecutor = new ThreadPoolExecutor(
-            max_thread_size,
-            max_thread_size,
+            maxThreadSize,
+            maxThreadSize,
             0L,
             TimeUnit.MILLISECONDS,
-            new LinkedBlockingQueue(max_queue_size),
+            new LinkedBlockingQueue(maxQueueSize),
             executionQueueUtil.getThreadFactory(true, "appc-dispatcher"),
             new ThreadPoolExecutor.AbortPolicy());
     }
@@ -108,9 +107,4 @@ public class QueueManager {
 
         return isEnqueued;
     }
-
-    private boolean messageExpired(QueueMessage queueMessage) {
-        return queueMessage.getExpirationTime() != null &&
-            queueMessage.getExpirationTime().getTime() < System.currentTimeMillis();
-    }
 }
diff --git a/appc-dispatcher/appc-dispatcher-common/execution-queue-management-lib/src/test/java/org/onap/appc/executionqueue/impl/QueueManagerTest.java b/appc-dispatcher/appc-dispatcher-common/execution-queue-management-lib/src/test/java/org/onap/appc/executionqueue/impl/QueueManagerTest.java
new file mode 100644 (file)
index 0000000..5b2dec8
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2019 Ericsson
+ * ================================================================================
+ * 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.appc.executionqueue.impl;
+
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import java.util.ArrayList;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.TimeUnit;
+import org.mockito.Mockito;
+import org.onap.appc.executionqueue.helper.Util;
+import org.powermock.reflect.Whitebox;
+
+public class QueueManagerTest {
+
+    @Test(expected = NullPointerException.class)
+    public void testInit() {
+        QueueManager qm = new QueueManager();
+        Util util = Mockito.mock(Util.class);
+        Mockito.when(util.getExecutionQueueSize()).thenReturn(1);
+        Mockito.when(util.getThreadPoolSize()).thenReturn(1);
+        qm.setExecutionQueueUtil(util);
+        qm.init();
+        assertEquals(Integer.valueOf(1), Whitebox.getInternalState(qm, "maxThreadSize"));
+    }
+
+    @Test
+    public void testStop() throws InterruptedException {
+        QueueManager qm = Mockito.spy(new QueueManager());
+        ExecutorService executor = Mockito.mock(ExecutorService.class);
+        Mockito.when(executor.shutdownNow()).thenReturn(new ArrayList<Runnable>());
+        Mockito.when(executor.awaitTermination(100, TimeUnit.MILLISECONDS)).thenReturn(false).thenReturn(true);
+        Whitebox.setInternalState(qm, "messageExecutor", executor);
+        qm.stop();
+        Mockito.verify(executor, Mockito.times(2)).awaitTermination(100, TimeUnit.MILLISECONDS);
+    }
+
+    @Test
+    public void testEnqueueTask() throws InterruptedException {
+        QueueManager qm = Mockito.spy(new QueueManager());
+        ExecutorService executor = Mockito.mock(ExecutorService.class);
+        Mockito.when(executor.shutdownNow()).thenReturn(new ArrayList<Runnable>());
+        Mockito.when(executor.awaitTermination(100, TimeUnit.MILLISECONDS)).thenReturn(false).thenReturn(true);
+        Whitebox.setInternalState(qm, "messageExecutor", executor);
+        qm.enqueueTask(null);
+        Mockito.verify(executor).execute(Mockito.any(Runnable.class));
+    }
+
+}