@@ -0,0 +1,1472 @@
+package com.nhl.link.rest.runtime.listener;%0A%0Aimport static org.junit.Assert.assertEquals;%0Aimport static org.mockito.Mockito.mock;%0A%0Aimport java.util.List;%0A%0Aimport org.junit.Before;%0Aimport org.junit.Test;%0A%0Aimport com.nhl.link.rest.annotation.Fetched;%0Aimport com.nhl.link.rest.processor.ProcessingContext;%0Aimport com.nhl.link.rest.processor.ProcessingStage;%0Aimport com.nhl.link.rest.runtime.processor.select.SelectContext;%0A%0Apublic class ListenerService_BoundsMatchingTest %7B%0A%0A%09public static class E1 %7B%0A%0A%09%7D%0A%0A%09public static class E2 extends E1 %7B%0A%0A%09%7D%0A%0A%09public static interface Listener %7B%0A%0A%09%09@Fetched%0A%09%09void fetchedSelectContextAny(SelectContext%3C?%3E c);%0A%0A%09%09@Fetched%0A%09%09void fetchedSelectContextE1(SelectContext%3CE1%3E c);%0A%0A%09%09@Fetched%0A%09%09void fetchedSelectContextE2(SelectContext%3CE2%3E c);%0A%09%7D%0A%0A%09private ProcessingContext%3CListener%3E mockContext;%0A%09private ProcessingStage%3CProcessingContext%3CListener%3E, Listener%3E mockStage;%0A%09private Listener mockListener;%0A%0A%09private ListenerService service;%0A%0A%09@SuppressWarnings(%22unchecked%22)%0A%09@Before%0A%09public void before() %7B%0A%09%09this.service = new ListenerService();%0A%09%09this.mockListener = mock(Listener.class);%0A%09%09this.mockContext = mock(ProcessingContext.class);%0A%09%09this.mockStage = mock(ProcessingStage.class);%0A%09%7D%0A%0A%09@Test%0A%09public void testGetListenerInvocationFactories() %7B%0A%0A%09%09List%3CListenerInvocationFactory%3E factories = service%0A%09%09%09%09.getListenerInvocationFactories(Listener.class, EventGroup.select).get(Fetched.class);%0A%0A%09%09assertEquals(3, factories.size());%0A%09%7D%0A%0A%7D%0A

Support for annotation-based stage listeners - select listeners #103