@Test public void testEqualityOfProxies() throws Exception { JobListenerWithInterface delegate = new JobListenerWithInterface(); Object listener1 = JobListenerFactoryBean.getListener(delegate); Object listener2 = JobListenerFactoryBean.getListener(delegate); assertEquals(listener1, listener2); }
@Test public void testUseInHashSet() throws Exception { JobListenerWithInterface delegate = new JobListenerWithInterface(); Object listener = JobListenerFactoryBean.getListener(delegate); Object other = JobListenerFactoryBean.getListener(delegate); assertTrue(listener instanceof JobExecutionListener); Set<JobExecutionListener> listeners = new HashSet<>(); listeners.add((JobExecutionListener) listener); listeners.add((JobExecutionListener) other); assertTrue(listeners.contains(listener)); assertEquals(1, listeners.size()); }
@Test public void testAnnotationsWithOrdered() throws Exception { Object delegate = new Ordered() { @BeforeJob public void foo(JobExecution execution) { } @Override public int getOrder() { return 3; } }; JobExecutionListener listener = JobListenerFactoryBean.getListener(delegate); assertTrue("Listener is not of correct type", listener instanceof Ordered); assertEquals(3, ((Ordered) listener).getOrder()); }
@Test public void testFactoryMethod() throws Exception { JobListenerWithInterface delegate = new JobListenerWithInterface(); Object listener = JobListenerFactoryBean.getListener(delegate); assertTrue(listener instanceof JobExecutionListener); ((JobExecutionListener) listener).afterJob(new JobExecution(11L)); assertTrue(delegate.afterJobCalled); }