Increase coverage in ControllerImpl 71/78771/1
authorJoss Armstrong <joss.armstrong@ericsson.com>
Tue, 19 Feb 2019 18:12:15 +0000 (18:12 +0000)
committerJoss Armstrong <joss.armstrong@ericsson.com>
Tue, 19 Feb 2019 18:12:26 +0000 (18:12 +0000)
Coverage increased to 94%

Issue-ID: APPC-1462
Change-Id: I7e3af44d7627db7d09069c402e5aa47f518fd490
Signed-off-by: Joss Armstrong <joss.armstrong@ericsson.com>
appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/impl/ControllerImpl.java
appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/impl/TestController.java

index cc9c718..d1c5d61 100644 (file)
@@ -114,7 +114,7 @@ public class ControllerImpl implements Controller {
             Listener l = itr.next();
             if (stopNow && l != null) {
                 l.stopNow();
-            } else if(l!=null){
+            } else if(l != null){
                 l.stop();
             }
             itr.remove();
@@ -122,7 +122,7 @@ public class ControllerImpl implements Controller {
         // disable new tasks from being submitted
         if(executor != null) {
             executor.shutdown();
-            int timeout=300;
+            int timeout = 300;
             try {
                 if (!executor.awaitTermination(timeout, TimeUnit.SECONDS)) {
                     LOG.error("Not all tasks completed execution after " + timeout + " seconds. " +
@@ -130,7 +130,7 @@ public class ControllerImpl implements Controller {
                     executor.shutdownNow();
                 }
                 if (!executor.awaitTermination(timeout, TimeUnit.SECONDS)) {
-                    LOG.error("Could not terminate all tasks after " + (timeout*2) + " seconds.");
+                    LOG.error("Could not terminate all tasks after " + (timeout * 2) + " seconds.");
                 }
             } catch (InterruptedException e) {
                 executor.shutdownNow();
index 80b02bd..ea40fcc 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.listener.impl;
 
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.Mockito;
+import org.onap.appc.listener.Controller;
+import org.onap.appc.listener.Listener;
+import org.onap.appc.listener.ListenerProperties;
+import org.onap.appc.listener.demo.impl.ListenerImpl;
+import org.powermock.reflect.Whitebox;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
 public class TestController {
 
+    private ListenerProperties listenerProperties;
+    private Set<ListenerProperties> properties = Mockito.spy(new HashSet<>());
+    private EELFLogger log = Mockito.spy(EELFManager.getInstance().getLogger(ControllerImpl.class));
+
+    @Rule
+    public ExpectedException expectedEx = ExpectedException.none();
+
+    @Test
+    public void testExceptionConstructor() {
+        listenerProperties = Mockito.mock(ListenerProperties.class);
+        properties.add(listenerProperties);
+        new ControllerImpl(properties);
+        Mockito.verify(properties).remove(Mockito.any());
+    }
+
+    @Test
+    public void testStartException() throws NoSuchMethodException, SecurityException {
+        Properties props = new Properties();
+        props.put("TEST", "TEST");
+        listenerProperties = Mockito.spy(new ListenerProperties("TEST", props));
+        listenerProperties.setListenerClass(Listener.class);
+        properties.add(listenerProperties);
+        ControllerImpl controllerImpl = new ControllerImpl(properties);
+        controllerImpl.start();
+        Mockito.verify(listenerProperties, Mockito.times(2)).getListenerClass();
+    }
+
+    @Test
+    public void testStopException() throws NoSuchMethodException, SecurityException, InterruptedException {
+        Properties props = new Properties();
+        props.put("TEST", "TEST");
+        listenerProperties = Mockito.spy(new ListenerProperties("TEST", props));
+        listenerProperties.setListenerClass(Listener.class);
+        properties.add(listenerProperties);
+        ControllerImpl controllerImpl = new ControllerImpl(properties);
+        //controllerImpl.start();
+        Map<String, Listener> map = Whitebox.getInternalState(controllerImpl, "listeners");
+        map.put("TEST", new ListenerImpl(listenerProperties));
+        ThreadPoolExecutor executor = Mockito.mock(ThreadPoolExecutor.class);
+        Mockito.when(executor.awaitTermination(300, TimeUnit.SECONDS)).thenReturn(false);
+        Whitebox.setInternalState(controllerImpl, "executor", executor);
+        controllerImpl.stop(false);
+        Mockito.verify(executor).shutdown();
+    }
 }