diff --git a/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/completable/CompletableConcatWithPublisherTest.java b/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/completable/CompletableConcatWithPublisherTest.java index 15d3b21e86..de83733231 100644 --- a/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/completable/CompletableConcatWithPublisherTest.java +++ b/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/completable/CompletableConcatWithPublisherTest.java @@ -110,16 +110,15 @@ void invalidThenValidRequest() { @Test void request0Propagated() { subscriber.awaitSubscription().request(0); - triggerNextSubscribe(); - assertThat("Invalid request-n not propagated " + subscription, subscription.requestedEquals(0), + triggerNextSubscribe(); // If subscribe happens after request(0) it will be mapped into -1 + assertThat("Invalid request-n not propagated " + subscription, subscription.requestedEquals(-1), is(true)); } @Test void request0PropagatedAfterComplete() { - source.onComplete(); + triggerNextSubscribe(); subscriber.awaitSubscription().request(0); - next.onSubscribe(subscription); assertThat("Invalid request-n not propagated " + subscription, subscription.requestedEquals(0), is(true)); } diff --git a/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/single/SingleConcatWithPublisherTest.java b/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/single/SingleConcatWithPublisherTest.java index fb22590240..c01b6ffe31 100644 --- a/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/single/SingleConcatWithPublisherTest.java +++ b/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/single/SingleConcatWithPublisherTest.java @@ -149,8 +149,8 @@ private void invalidThenValidRequest(long invalidN) { void request0PropagatedAfterSuccess() { source.onSuccess(1); subscriber.awaitSubscription().request(1); // get the success from the Single - subscriber.awaitSubscription().request(0); next.onSubscribe(subscription); + subscriber.awaitSubscription().request(0); assertThat("Invalid request-n propagated " + subscription, subscription.requestedEquals(0), is(true)); } diff --git a/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestSubscription.java b/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestSubscription.java index a3d0a2a0b3..859afe5f12 100644 --- a/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestSubscription.java +++ b/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestSubscription.java @@ -60,7 +60,7 @@ public long requested() { * @return {@code true} if the cumulative value of {@link #request(long)} matches {@code value}. */ public boolean requestedEquals(long value) { - return value == 0 && requestCalled || value != 0 && requested.get() == value; + return (value != 0 || requestCalled) && requested.get() == value; } /**