/** * @param extension */ private void injectEvents(Extension extension) { for (EventPoint point : extension.getEventPoints()) { point.set(EventImpl.of(Reflections.getType(point.getType()), this)); } }
private List<ObserverMethod> resolveInterceptorObservers(Class<?> eventType) { List<ObserverMethod> observers = new ArrayList<ObserverMethod>(); for (Extension extension : extensions) { for (ObserverMethod observer : extension.getObservers()) { if (Reflections.isType(observer.getType(), EventContext.class)) { if (Reflections.getType(observer.getType()).isAssignableFrom(eventType)) { observers.add(observer); } } } } Collections.sort(observers); return observers; }
@Test public void shouldBeAbleToReadAndInvokeInjectionPoints() throws Exception { ExtensionWithInjection target = new ExtensionWithInjection(); Extension extension = ExtensionImpl.of(target); Assert.assertEquals( "Verify correct injection fields were found", 1, extension.getInjectionPoints().size()); Instance<Object> instance = new DummyInstanceImpl(); for (InjectionPoint point : extension.getInjectionPoints()) { point.set(instance); } extension.getObservers().get(0).invoke(null, new Object()); Assert.assertTrue(target.methodOneWasCalled); Assert.assertNotNull(instance.get()); }
@Test public void shouldBeAbleToInjectEventAndFireNewEvent() throws Exception { ExtensionWithEvent target = new ExtensionWithEvent(); Extension extension = ExtensionImpl.of(target); Assert.assertEquals( "Verify correct event fields were found", 1, extension.getEventPoints().size()); Assert.assertEquals(1, extension.getObservers().size()); DummyEventImpl event = new DummyEventImpl(); for (EventPoint point : extension.getEventPoints()) { point.set(event); } extension.getObservers().get(0).invoke(null, new Object()); Assert.assertTrue(target.methodOneWasCalled); Assert.assertEquals( "Verify the Extensions Event was firable", "some string", event.getString()); }
/** * @param extension */ private void injectInstances(Extension extension) { for (InjectionPoint point : extension.getInjectionPoints()) { point.set(InstanceImpl.of(Reflections.getType(point.getType()), point.getScope(), this)); } }
@Test public void shouldBeAbleToReadAndInvokeInjectionPoints() throws Exception { ExtensionWithInjection target = new ExtensionWithInjection(); Extension extension = ExtensionImpl.of(target); Assert.assertEquals( "Verify correct injection fields were found", 1, extension.getInjectionPoints().size()); Instance<Object> instance = new DummyInstanceImpl(); for (InjectionPoint point : extension.getInjectionPoints()) { point.set(instance); } extension.getObservers().get(0).invoke(null, new Object()); Assert.assertTrue(target.methodOneWasCalled); Assert.assertNotNull(instance.get()); }
@Test public void shouldBeAbleToInjectEventAndFireNewEvent() throws Exception { ExtensionWithEvent target = new ExtensionWithEvent(); Extension extension = ExtensionImpl.of(target); Assert.assertEquals( "Verify correct event fields were found", 1, extension.getEventPoints().size()); Assert.assertEquals(1, extension.getObservers().size()); DummyEventImpl event = new DummyEventImpl(); for (EventPoint point : extension.getEventPoints()) { point.set(event); } extension.getObservers().get(0).invoke(null, new Object()); Assert.assertTrue(target.methodOneWasCalled); Assert.assertEquals( "Verify the Extensions Event was firable", "some string", event.getString()); }
/** * @param extension */ private void injectInstances(Extension extension) { for (InjectionPoint point : extension.getInjectionPoints()) { point.set(InstanceImpl.of(Reflections.getType(point.getType()), point.getScope(), this)); } }
private List<ObserverMethod> resolveInterceptorObservers(Class<?> eventType) { List<ObserverMethod> observers = new ArrayList<ObserverMethod>(); for (Extension extension : extensions) { for (ObserverMethod observer : extension.getObservers()) { if (Reflections.isType(observer.getType(), EventContext.class)) { if (Reflections.getType(observer.getType()).isAssignableFrom(eventType)) { observers.add(observer); } } } } Collections.sort(observers); return observers; }
/** * @param extension */ private void injectEvents(Extension extension) { for (EventPoint point : extension.getEventPoints()) { point.set(EventImpl.of(Reflections.getType(point.getType()), this)); } }
/** * @param eventType * @return */ private List<ObserverMethod> resolveObservers(Class<?> eventType) { List<ObserverMethod> observers = new ArrayList<ObserverMethod>(); for (Extension extension : extensions) { for (ObserverMethod observer : extension.getObservers()) { if (Reflections.getType(observer.getType()).isAssignableFrom(eventType) && !Reflections.isType( observer.getType(), EventContext.class)) { observers.add(observer); } } } Collections.sort(observers); return observers; }
/** * @param eventType * @return */ private List<ObserverMethod> resolveObservers(Class<?> eventType) { List<ObserverMethod> observers = new ArrayList<ObserverMethod>(); for (Extension extension : extensions) { for (ObserverMethod observer : extension.getObservers()) { if (Reflections.getType(observer.getType()).isAssignableFrom(eventType) && !Reflections.isType( observer.getType(), EventContext.class)) { observers.add(observer); } } } Collections.sort(observers); return observers; }
@Test public void shouldBeAbleToReadAndInvokeObserverMethods() throws Exception { ExtensionWithObservers target = new ExtensionWithObservers(); Extension extension = ExtensionImpl.of(target); Assert.assertEquals( "Verify correct observer methods were found", 2, extension.getObservers().size()); for (ObserverMethod observer : extension.getObservers()) { observer.invoke(null, new String()); } Assert.assertTrue(target.methodOneWasCalled); Assert.assertTrue(target.methodTwoWasCalled); }
@Test public void shouldBeAbleToReadAndInvokeObserverMethods() throws Exception { ExtensionWithObservers target = new ExtensionWithObservers(); Extension extension = ExtensionImpl.of(target); Assert.assertEquals( "Verify correct observer methods were found", 2, extension.getObservers().size()); for (ObserverMethod observer : extension.getObservers()) { observer.invoke(null, new String()); } Assert.assertTrue(target.methodOneWasCalled); Assert.assertTrue(target.methodTwoWasCalled); }