@Test
public void testBasic() throws InterruptedException {

    ScheduledExecutorService ses = 
        Executors.newSingleThreadScheduledExecutor();
    
    SingletonTask st1 = new SingletonTask(ses, new Runnable() {
        @Override
        public void run() {
            ran += 1;
        }
    });
    st1.reschedule(0, null);
    ses.shutdown();
    ses.awaitTermination(5, TimeUnit.SECONDS);
    
    assertEquals("Check that task ran", 1, ran);
}