diff --git a/janet/src/main/java/io/techery/janet/ActionPipe.java b/janet/src/main/java/io/techery/janet/ActionPipe.java index 0ad1dfb..6bc3256 100644 --- a/janet/src/main/java/io/techery/janet/ActionPipe.java +++ b/janet/src/main/java/io/techery/janet/ActionPipe.java @@ -97,6 +97,7 @@ public Observable observeSuccessWithReplay() { */ public void clearReplays() { createCachedPipeline(); + createCachedSuccessPipeline(); } /** diff --git a/janet/src/test/java/io/techery/janet/JanetTest.java b/janet/src/test/java/io/techery/janet/JanetTest.java index 22f6a69..9b49647 100644 --- a/janet/src/test/java/io/techery/janet/JanetTest.java +++ b/janet/src/test/java/io/techery/janet/JanetTest.java @@ -16,9 +16,13 @@ import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.RetentionPolicy.RUNTIME; import static org.mockito.Matchers.any; +import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.only; import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; public class JanetTest { @@ -56,8 +60,7 @@ public void sendWithObserve() { @Test public void sendWithObserveWithReplay() { TestSubscriber> subscriber = new TestSubscriber>(); - actionPipe.observeWithReplay() - .subscribe(subscriber); + actionPipe.observeWithReplay().subscribe(subscriber); actionPipe.send(new TestAction()); subscriber.unsubscribe(); assertSubscriberWithStates(subscriber); @@ -120,6 +123,7 @@ public void cancelAfterSend() { actionPipe.createObservable(action).subscribe(subscriber); subscriber.unsubscribe(); assertSubscriberWithSingleValue(subscriber); + verify(service, times(1)).cancel(any(ActionHolder.class)); } @Test @@ -129,9 +133,17 @@ public void clearReplays() { TestSubscriber> subscriber = new TestSubscriber>(); actionPipe.observeWithReplay().subscribe(subscriber); subscriber.unsubscribe(); - subscriber.assertNoErrors(); - subscriber.assertNoValues(); - subscriber.assertUnsubscribed(); + assertSubscriberWithoutValues(subscriber); + } + + @Test + public void clearReplaysSuccess() { + actionPipe.send(new TestAction()); + actionPipe.clearReplays(); + TestSubscriber subscriber = new TestSubscriber(); + actionPipe.observeSuccessWithReplay().subscribe(subscriber); + subscriber.unsubscribe(); + assertSubscriberWithoutValues(subscriber); } @Test @@ -161,6 +173,12 @@ private static void assertSubscriberWithSingleValue(TestSubscriber subscriber subscriber.assertUnsubscribed(); } + private static void assertSubscriberWithoutValues(TestSubscriber subscriber) { + subscriber.assertNoErrors(); + subscriber.assertNoValues(); + subscriber.assertUnsubscribed(); + } + private static void assertStatusCount(List> values, ActionState.Status status, int count) { int i = 0; for (ActionState state : values) {