|
|
|
@ -16,46 +16,40 @@ |
|
|
|
|
|
|
|
|
|
|
|
package org.springframework.scheduling.timer; |
|
|
|
package org.springframework.scheduling.timer; |
|
|
|
|
|
|
|
|
|
|
|
import junit.framework.TestCase; |
|
|
|
import static org.junit.Assert.*; |
|
|
|
import org.springframework.test.AssertThrows; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.Timer; |
|
|
|
import java.util.Timer; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.junit.Test; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Unit tests for the {@link TimerTaskExecutor} class. |
|
|
|
* Unit tests for the {@link TimerTaskExecutor} class. |
|
|
|
* |
|
|
|
* |
|
|
|
* @author Rick Evans |
|
|
|
* @author Rick Evans |
|
|
|
|
|
|
|
* @author Chris Beams |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public final class TimerTaskExecutorTests extends TestCase { |
|
|
|
public final class TimerTaskExecutorTests { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test(expected=IllegalArgumentException.class) |
|
|
|
public void testExecuteChokesWithNullTimer() throws Exception { |
|
|
|
public void testExecuteChokesWithNullTimer() throws Exception { |
|
|
|
new AssertThrows(IllegalArgumentException.class) { |
|
|
|
|
|
|
|
public void test() throws Exception { |
|
|
|
|
|
|
|
TimerTaskExecutor executor = new TimerTaskExecutor(); |
|
|
|
TimerTaskExecutor executor = new TimerTaskExecutor(); |
|
|
|
executor.execute(new NoOpRunnable()); |
|
|
|
executor.execute(new NoOpRunnable()); |
|
|
|
} |
|
|
|
} |
|
|
|
}.runTest(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test(expected=IllegalArgumentException.class) |
|
|
|
public void testExecuteChokesWithNullTask() throws Exception { |
|
|
|
public void testExecuteChokesWithNullTask() throws Exception { |
|
|
|
new AssertThrows(IllegalArgumentException.class) { |
|
|
|
|
|
|
|
public void test() throws Exception { |
|
|
|
|
|
|
|
TimerTaskExecutor executor = new TimerTaskExecutor(new Timer()); |
|
|
|
TimerTaskExecutor executor = new TimerTaskExecutor(new Timer()); |
|
|
|
executor.execute(null); |
|
|
|
executor.execute(null); |
|
|
|
} |
|
|
|
} |
|
|
|
}.runTest(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test(expected=IllegalArgumentException.class) |
|
|
|
public void testExecuteChokesWithNegativeDelay() throws Exception { |
|
|
|
public void testExecuteChokesWithNegativeDelay() throws Exception { |
|
|
|
new AssertThrows(IllegalArgumentException.class) { |
|
|
|
|
|
|
|
public void test() throws Exception { |
|
|
|
|
|
|
|
TimerTaskExecutor executor = new TimerTaskExecutor(new Timer()); |
|
|
|
TimerTaskExecutor executor = new TimerTaskExecutor(new Timer()); |
|
|
|
executor.setDelay(-10); |
|
|
|
executor.setDelay(-10); |
|
|
|
executor.execute(new NoOpRunnable()); |
|
|
|
executor.execute(new NoOpRunnable()); |
|
|
|
} |
|
|
|
} |
|
|
|
}.runTest(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
public void testExecuteReallyDoesScheduleTheSuppliedTask() throws Exception { |
|
|
|
public void testExecuteReallyDoesScheduleTheSuppliedTask() throws Exception { |
|
|
|
final Object monitor = new Object(); |
|
|
|
final Object monitor = new Object(); |
|
|
|
|
|
|
|
|
|
|
|
@ -71,14 +65,12 @@ public final class TimerTaskExecutorTests extends TestCase { |
|
|
|
assertTrue("Supplied task (a Runnable) is not being invoked.", task.isRunWasCalled()); |
|
|
|
assertTrue("Supplied task (a Runnable) is not being invoked.", task.isRunWasCalled()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test(expected=IllegalArgumentException.class) |
|
|
|
public void testCtorWithNullTimer() throws Exception { |
|
|
|
public void testCtorWithNullTimer() throws Exception { |
|
|
|
new AssertThrows(IllegalArgumentException.class) { |
|
|
|
|
|
|
|
public void test() throws Exception { |
|
|
|
|
|
|
|
new TimerTaskExecutor(null); |
|
|
|
new TimerTaskExecutor(null); |
|
|
|
} |
|
|
|
} |
|
|
|
}.runTest(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
public void testCreateTimerMethodIsCalledIfNoTimerIsExplicitlySupplied() throws Exception { |
|
|
|
public void testCreateTimerMethodIsCalledIfNoTimerIsExplicitlySupplied() throws Exception { |
|
|
|
CreationAwareTimerTaskExecutor executor = new CreationAwareTimerTaskExecutor(); |
|
|
|
CreationAwareTimerTaskExecutor executor = new CreationAwareTimerTaskExecutor(); |
|
|
|
executor.afterPropertiesSet(); |
|
|
|
executor.afterPropertiesSet(); |
|
|
|
@ -87,6 +79,7 @@ public final class TimerTaskExecutorTests extends TestCase { |
|
|
|
executor.isCreateTimerWasCalled()); |
|
|
|
executor.isCreateTimerWasCalled()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
public void testCreateTimerMethodIsNotCalledIfTimerIsExplicitlySupplied() throws Exception { |
|
|
|
public void testCreateTimerMethodIsNotCalledIfTimerIsExplicitlySupplied() throws Exception { |
|
|
|
CreationAwareTimerTaskExecutor executor = new CreationAwareTimerTaskExecutor(); |
|
|
|
CreationAwareTimerTaskExecutor executor = new CreationAwareTimerTaskExecutor(); |
|
|
|
executor.setTimer(new Timer()); |
|
|
|
executor.setTimer(new Timer()); |
|
|
|
@ -96,6 +89,7 @@ public final class TimerTaskExecutorTests extends TestCase { |
|
|
|
executor.isCreateTimerWasCalled()); |
|
|
|
executor.isCreateTimerWasCalled()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
public void testThatTheDestroyCallbackCancelsTheTimerIfNoTimerIsExplicitlySupplied() throws Exception { |
|
|
|
public void testThatTheDestroyCallbackCancelsTheTimerIfNoTimerIsExplicitlySupplied() throws Exception { |
|
|
|
|
|
|
|
|
|
|
|
final CancelAwareTimer timer = new CancelAwareTimer(); |
|
|
|
final CancelAwareTimer timer = new CancelAwareTimer(); |
|
|
|
@ -113,6 +107,7 @@ public final class TimerTaskExecutorTests extends TestCase { |
|
|
|
timer.isCancelWasCalled()); |
|
|
|
timer.isCancelWasCalled()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
public void testThatTheDestroyCallbackDoesNotCancelTheTimerIfTheTimerWasSuppliedExplictly() throws Exception { |
|
|
|
public void testThatTheDestroyCallbackDoesNotCancelTheTimerIfTheTimerWasSuppliedExplictly() throws Exception { |
|
|
|
TimerTaskExecutor executor = new TimerTaskExecutor(); |
|
|
|
TimerTaskExecutor executor = new TimerTaskExecutor(); |
|
|
|
CancelAwareTimer timer = new CancelAwareTimer(); |
|
|
|
CancelAwareTimer timer = new CancelAwareTimer(); |