IOC.registerLifecycleListener(beanInstance, beanlifecycleListener);
@SuppressWarnings("unchecked") public void testGetInstanceReturnsNullOutsideOfFireAsync() throws Exception { final Integer instance = 1337; final LifecycleListener<Integer> listener = new LifecycleListener<Integer>() { @Override public void observeEvent(final LifecycleEvent<Integer> event) { assertEquals(instance, event.getInstance()); } @Override public boolean isObserveableEventType(Class<? extends LifecycleEvent<Integer>> eventType) { return true; } }; IOC.registerLifecycleListener(instance, listener); final Access<Integer> event = IOC.getBeanManager().lookupBean(Access.class).getInstance(); assertNull(event.getInstance()); event.fireAsync(instance, new LifecycleCallback() { @Override public void callback(final boolean success) { assertNull(event.getInstance()); } }); assertNull(event.getInstance()); }
@SuppressWarnings("unchecked") public void testUnregisterSingleInstanceListenerTwice() throws Exception { final Counter listenerCounter = new Counter(); final LifecycleListener<Integer> listener = new CountingListener(listenerCounter); final Access<Integer> event = IOC.getBeanManager().lookupBean(Access.class).getInstance(); final Integer instance = 1337; IOC.registerLifecycleListener(instance, listener); // Precondition assertEquals(0, listenerCounter.getValue()); event.fireAsync(instance); assertEquals(1, listenerCounter.getValue()); IOC.unregisterLifecycleListener(instance, listener); event.fireAsync(instance); assertEquals(1, listenerCounter.getValue()); // Actual test try { IOC.unregisterLifecycleListener(instance, listener); } catch (Exception e) { fail("Second unregister call caused an exception: " + e.getMessage()); } }
@SuppressWarnings("unchecked") public void testUnregisterSingleInstanceListenerAfterDestruction() throws Exception { final Counter listenerCounter = new Counter(); final LifecycleListener<Integer> listener = new CountingListener(listenerCounter); final SyncBeanManager bm = IOC.getBeanManager(); final Access<Integer> event = bm.lookupBean(Access.class).getInstance(); final Destruction<Integer> destruction = bm.lookupBean(Destruction.class).getInstance(); final Integer instance = 1337; IOC.registerLifecycleListener(instance, listener); // Precondition assertEquals(0, listenerCounter.getValue()); event.fireAsync(instance); assertEquals(1, listenerCounter.getValue()); destruction.fireAsync(instance); event.fireAsync(instance); assertEquals(1, listenerCounter.getValue()); // Actual test try { IOC.unregisterLifecycleListener(instance, listener); } catch (Exception e) { fail("Unregister call caused an exception: " + e.getMessage()); } }
@SuppressWarnings("unchecked") public void testSingleLifecycleListenerIsCalled() { // Build listener and generator final Counter listenerCounter = new Counter(); final LifecycleListener<Integer> listener = new CountingListener(listenerCounter); final LifecycleListenerGenerator<Integer> generator = new LifecycleListenerGenerator<Integer>() { @Override public LifecycleListener<Integer> newInstance() { return listener; } }; // Build event final Integer instance = 1337; final Access<Integer> event = IOC.getBeanManager().lookupBean(Access.class).getInstance(); // Register listener IOC.registerLifecycleListener(Integer.class, generator); // Precondition assertEquals(0, listenerCounter.getValue()); final Counter callbackCounter = new Counter(); event.fireAsync(instance, new LifecycleCallback() { @Override public void callback(boolean success) { assertTrue(success); callbackCounter.add(1); } }); assertEquals(1, listenerCounter.getValue()); assertEquals(1, callbackCounter.getValue()); }
@SuppressWarnings("unchecked") public void testRegisterSingleInstanceListener() throws Exception { final Counter listenerCounter = new Counter(); final Counter callbackCounter = new Counter(); final LifecycleListener<Integer> listener = new CountingListener(listenerCounter); final Integer instance = 1337; final Access<Integer> event = IOC.getBeanManager().lookupBean(Access.class).getInstance(); final LifecycleCallback callback = new LifecycleCallback() { @Override public void callback(boolean success) { assertTrue(success); callbackCounter.add(1); } }; IOC.registerLifecycleListener(instance, listener); // Precondition assertEquals(0, callbackCounter.getValue()); assertEquals(0, listenerCounter.getValue()); event.fireAsync(instance, callback); assertEquals(1, callbackCounter.getValue()); assertEquals(1, listenerCounter.getValue()); }
IOC.registerLifecycleListener(Integer.class, new LifecycleListenerGenerator<Integer>() {
IOC.registerLifecycleListener(Integer.class, generator);
IOC.registerLifecycleListener(Integer.class, generator);
IOC.registerLifecycleListener(instance, listener);
IOC.registerLifecycleListener(Integer.class, generator);