@Test public void testAnnounceErrorHandler() throws IOException, InterruptedException { System.setProperty("kylin.server.cluster-servers", "localhost:717"); System.setProperty("kylin.metadata.sync-error-handler", MockupErrHandler.class.getName()); try { Broadcaster broadcaster = Broadcaster.getInstance(getTestConfig()); broadcaster.announce("all", "update", "all"); for (int i = 0; i < 30 && MockupErrHandler.atom.get() == 0; i++) { Thread.sleep(1000); } broadcaster.stopAnnounce(); Broadcaster.staticListenerMap.clear(); } finally { System.clearProperty("kylin.server.cluster-servers"); System.clearProperty("kylin.metadata.sync-error-handler"); } Assert.assertTrue(MockupErrHandler.atom.get() > 0); }
@Test public void testBasics() throws IOException { Broadcaster broadcaster = Broadcaster.getInstance(getTestConfig()); final AtomicInteger i = new AtomicInteger(0); broadcaster.registerStaticListener(new Listener() { @Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { Assert.assertEquals(2, i.incrementAndGet()); } }, "test"); broadcaster.registerListener(new Listener() { @Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { Assert.assertEquals(1, i.incrementAndGet()); } }, "test"); broadcaster.notifyListener("test", Event.UPDATE, ""); broadcaster.stopAnnounce(); Broadcaster.staticListenerMap.clear(); }
@Test public void testNotifyNonStatic() throws IOException { Broadcaster broadcaster = Broadcaster.getInstance(getTestConfig()); final AtomicInteger i = new AtomicInteger(0); broadcaster.registerStaticListener(new Listener() { @Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { throw new IllegalStateException("Should not notify static listener."); } }, "test"); broadcaster.registerListener(new Listener() { @Override public void onEntityChange(Broadcaster broadcaster, String entity, Event event, String cacheKey) throws IOException { Assert.assertEquals(1, i.incrementAndGet()); } }, "test"); broadcaster.notifyNonStaticListener("test", Event.UPDATE, ""); broadcaster.stopAnnounce(); Broadcaster.staticListenerMap.clear(); }