T
- type of element to be delivered to the SubscriberIdentityProcessorVerification
, SubscriberBlackboxVerification
, SubscriberWhiteboxVerification
public abstract class WithHelperPublisher<T> extends java.lang.Object
id
value.
Simplest implementations will simply return the incoming id as the element.
Constructor | Description |
---|---|
WithHelperPublisher() |
Modifier and Type | Method | Description |
---|---|---|
abstract T |
createElement(int element) |
Implement this method to match your expected element type.
|
org.reactivestreams.Publisher<T> |
createHelperPublisher(long elements) |
Helper method required for creating the Publisher to which the tested Subscriber will be subscribed and tested against.
|
abstract java.util.concurrent.ExecutorService |
publisherExecutorService() |
ExecutorService to be used by the provided helper
Publisher |
public WithHelperPublisher()
public abstract java.util.concurrent.ExecutorService publisherExecutorService()
Publisher
public abstract T createElement(int element)
element
element.
Sometimes the Subscriber may be limited in what type of element it is able to consume, this you may have to implement
this method such that the emitted element matches the Subscribers requirements. Simplest implementations would be
to simply pass in the element
as payload of your custom element, such as appending it to a String or other identifier.
Warning: This method may be called concurrently by the helper publisher, thus it should be implemented in a thread-safe manner.
T
that will be delivered to the tested Subscriberpublic org.reactivestreams.Publisher<T> createHelperPublisher(long elements)
By default an asynchronously signalling Publisher is provided, which will use createElement(int)
to generate elements type your Subscriber is able to consume.
Sometimes you may want to implement your own custom custom helper Publisher - to validate behaviour of a Subscriber
when facing a synchronous Publisher for example. If you do, it MUST emit the exact number of elements asked for
(via the elements
parameter) and MUST also must treat the following numbers of elements in these specific ways:
elements
is Long.MAX_VALUE
the produced stream must be infinite.
elements
is 0
the Publisher
should signal onComplete
immediatly.
In other words, it should represent a "completed stream".