Adds testAddMultipleUsageListenersViaProperties Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/75474323 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/75474323 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/75474323
Branch: refs/heads/master Commit: 7547432358ccbc5ad16ba4126633d06be03a4edc Parents: ed53550 Author: Aled Sage <[email protected]> Authored: Wed Mar 22 16:15:48 2017 +0000 Committer: Aled Sage <[email protected]> Committed: Wed Mar 22 16:15:48 2017 +0000 ---------------------------------------------------------------------- .../mgmt/internal/LocalUsageManagerTest.java | 33 ++++++++++++++++++++ 1 file changed, 33 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/75474323/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/LocalUsageManagerTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/LocalUsageManagerTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/LocalUsageManagerTest.java index 1851d72..7ec87bd 100644 --- a/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/LocalUsageManagerTest.java +++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/LocalUsageManagerTest.java @@ -19,6 +19,7 @@ package org.apache.brooklyn.core.mgmt.internal; +import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; import java.util.List; @@ -79,6 +80,30 @@ public class LocalUsageManagerTest extends BrooklynAppUnitTestSupport { assertUsageListenerCalledWhenApplicationStarted(); } + @Test + public void testAddMultipleUsageListenersViaProperties() throws Exception { + BrooklynProperties brooklynProperties = BrooklynProperties.Factory.newEmpty(); + brooklynProperties.put(UsageManager.USAGE_LISTENERS, RecordingStaticUsageListener.class.getName() + "," + RecordingStaticUsageListener.class.getName()); + replaceManagementContext(LocalManagementContextForTests.newInstance(brooklynProperties)); + + final List<RecordingStaticUsageListener> listeners = RecordingStaticUsageListener.getInstances(); + assertEquals(listeners.size(), 2); + assertTrue(listeners.get(0) instanceof RecordingStaticUsageListener, "listeners="+listeners); + assertTrue(listeners.get(1) instanceof RecordingStaticUsageListener, "listeners="+listeners); + + app = TestApplication.Factory.newManagedInstanceForTests(mgmt); + + Asserts.succeedsEventually(new Runnable() { + @Override public void run() { + assertHasAppEvents(listeners.get(0)); + assertHasAppEvents(listeners.get(1)); + } + private void assertHasAppEvents(RecordingStaticUsageListener listener) { + List<List<?>> events = listener.getApplicationEvents(); + assertTrue(listeners.get(0).getApplicationEvents().size() > 0, "events="+events); // expect some events + }}); + } + @Test(expectedExceptions = ClassCastException.class) public void testErrorWhenConfiguredClassIsNotAUsageListener() { BrooklynProperties brooklynProperties = BrooklynProperties.Factory.newEmpty(); @@ -104,6 +129,14 @@ public class LocalUsageManagerTest extends BrooklynAppUnitTestSupport { return Iterables.getOnlyElement(STATIC_INSTANCES); } + public static RecordingStaticUsageListener getLastInstance() { + return Iterables.getLast(STATIC_INSTANCES); + } + + public static List<RecordingStaticUsageListener> getInstances() { + return ImmutableList.copyOf(STATIC_INSTANCES); + } + public static void clearInstances() { STATIC_INSTANCES.clear(); }
