diff options
2 files changed, 67 insertions, 3 deletions
diff --git a/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/impl/ControllerImpl.java b/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/impl/ControllerImpl.java index cc9c7181f..d1c5d61c2 100644 --- a/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/impl/ControllerImpl.java +++ b/appc-event-listener/appc-event-listener-bundle/src/main/java/org/onap/appc/listener/impl/ControllerImpl.java @@ -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(); diff --git a/appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/impl/TestController.java b/appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/impl/TestController.java index 80b02bda8..ea40fcc72 100644 --- a/appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/impl/TestController.java +++ b/appc-event-listener/appc-event-listener-bundle/src/test/java/org/onap/appc/listener/impl/TestController.java @@ -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. @@ -23,6 +25,68 @@ 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(); + } } |