From f5441d582183f147e5feb4ab3b5868122bb388b1 Mon Sep 17 00:00:00 2001 From: Niklas Baudy Date: Fri, 9 Mar 2018 11:57:20 +0100 Subject: [PATCH 1/2] 2.x: Add public constructor for TestScheduler that takes the time. --- .../reactivex/schedulers/TestScheduler.java | 19 +++++++++++++++++++ .../schedulers/TestSchedulerTest.java | 7 ++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/reactivex/schedulers/TestScheduler.java b/src/main/java/io/reactivex/schedulers/TestScheduler.java index b2ca366978..c738ceb782 100644 --- a/src/main/java/io/reactivex/schedulers/TestScheduler.java +++ b/src/main/java/io/reactivex/schedulers/TestScheduler.java @@ -35,6 +35,25 @@ public final class TestScheduler extends Scheduler { // Storing time in nanoseconds internally. volatile long time; + /** + * Creates a new TestScheduler without a particular time. + */ + public TestScheduler() { + // No-op. + } + + /** + * Moves the Scheduler's clock to a particular moment in time. + * + * @param delayTime + * the point in time to move the Scheduler's clock to + * @param unit + * the units of time that {@code delayTime} is expressed in + */ + public TestScheduler(long delayTime, TimeUnit unit) { + time = unit.toNanos(delayTime); + } + static final class TimedRunnable implements Comparable { final long time; diff --git a/src/test/java/io/reactivex/schedulers/TestSchedulerTest.java b/src/test/java/io/reactivex/schedulers/TestSchedulerTest.java index 803bd50522..2d5484cbb3 100644 --- a/src/test/java/io/reactivex/schedulers/TestSchedulerTest.java +++ b/src/test/java/io/reactivex/schedulers/TestSchedulerTest.java @@ -253,5 +253,10 @@ public void workerDisposed() { assertTrue(w.isDisposed()); } - + @Test + public void constructorTimeSetsTime() { + TestScheduler ts = new TestScheduler(5, TimeUnit.SECONDS); + assertEquals(5, ts.now(TimeUnit.SECONDS)); + assertEquals(5000, ts.now(TimeUnit.MILLISECONDS)); + } } From 21b4e3039e3f615a086089fca93aca0aa6266b1e Mon Sep 17 00:00:00 2001 From: Niklas Baudy Date: Fri, 9 Mar 2018 13:02:42 +0100 Subject: [PATCH 2/2] Wording. --- src/main/java/io/reactivex/schedulers/TestScheduler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/reactivex/schedulers/TestScheduler.java b/src/main/java/io/reactivex/schedulers/TestScheduler.java index c738ceb782..44272ffc25 100644 --- a/src/main/java/io/reactivex/schedulers/TestScheduler.java +++ b/src/main/java/io/reactivex/schedulers/TestScheduler.java @@ -36,14 +36,14 @@ public final class TestScheduler extends Scheduler { volatile long time; /** - * Creates a new TestScheduler without a particular time. + * Creates a new TestScheduler with initial virtual time of zero. */ public TestScheduler() { // No-op. } /** - * Moves the Scheduler's clock to a particular moment in time. + * Creates a new TestScheduler with the specified initial virtual time. * * @param delayTime * the point in time to move the Scheduler's clock to