Search in sources :

Example 1 with BackpressureBufferTimeoutSubscriber

use of reactor.core.publisher.FluxOnBackpressureBufferTimeout.BackpressureBufferTimeoutSubscriber in project reactor-core by reactor.

the class FluxOnBackpressureBufferTimeoutTest method scanSubscriber.

@Test
public void scanSubscriber() {
    CoreSubscriber<String> actual = new LambdaSubscriber<>(null, null, null, null);
    BackpressureBufferTimeoutSubscriber<String> test = new BackpressureBufferTimeoutSubscriber<>(actual, Duration.ofSeconds(1), Schedulers.immediate(), 123, v -> {
    });
    Subscription s = Operators.emptySubscription();
    test.onSubscribe(s);
    assertThat(test.scan(Scannable.Attr.PARENT)).isSameAs(s);
    assertThat(test.scan(Scannable.Attr.ACTUAL)).isSameAs(actual);
    assertThat(test.scan(Scannable.Attr.REQUESTED_FROM_DOWNSTREAM)).isEqualTo(Long.MAX_VALUE);
    assertThat(test.scan(Scannable.Attr.TERMINATED)).isFalse();
    assertThat(test.scan(Scannable.Attr.CANCELLED)).isFalse();
    test.offer("foo");
    test.offer("bar");
    assertThat(test.scan(Scannable.Attr.BUFFERED)).isEqualTo(2);
    test.error = new RuntimeException("boom");
    assertThat(test.scan(Scannable.Attr.ERROR)).isSameAs(test.error);
    assertThat(test.scan(Scannable.Attr.PREFETCH)).isEqualTo(Integer.MAX_VALUE);
    assertThat(test.scan(Scannable.Attr.DELAY_ERROR)).isFalse();
    assertThat(test.scan(Scannable.Attr.RUN_ON)).isSameAs(Schedulers.immediate());
}
Also used : BackpressureBufferTimeoutSubscriber(reactor.core.publisher.FluxOnBackpressureBufferTimeout.BackpressureBufferTimeoutSubscriber) Subscription(org.reactivestreams.Subscription) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)1 Subscription (org.reactivestreams.Subscription)1 BackpressureBufferTimeoutSubscriber (reactor.core.publisher.FluxOnBackpressureBufferTimeout.BackpressureBufferTimeoutSubscriber)1