Class SubscriberBlackboxVerification<T>
- java.lang.Object
-
- org.reactivestreams.tck.WithHelperPublisher<T>
-
- org.reactivestreams.tck.SubscriberBlackboxVerification<T>
-
- All Implemented Interfaces:
SubscriberBlackboxVerificationRules
public abstract class SubscriberBlackboxVerification<T> extends WithHelperPublisher<T> implements SubscriberBlackboxVerificationRules
Provides tests for verifyingSubscriberandSubscriptionspecification rules, without any modifications to the tested implementation (also known as "Black Box" testing). This verification is NOT able to check many of the rules of the spec, and if you want more verification of your implementation you'll have to implementorg.reactivestreams.tck.SubscriberWhiteboxVerificationinstead.- See Also:
Subscriber,Subscription
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classSubscriberBlackboxVerification.BlackboxTestStage
-
Field Summary
Fields Modifier and Type Field Description protected TestEnvironmentenv
-
Constructor Summary
Constructors Modifier Constructor Description protectedSubscriberBlackboxVerification(TestEnvironment env)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidblackboxSubscriberTest(org.reactivestreams.tck.SubscriberBlackboxVerification.BlackboxTestStageTestRun body)voidblackboxSubscriberWithoutSetupTest(org.reactivestreams.tck.SubscriberBlackboxVerification.BlackboxTestStageTestRun body)abstract org.reactivestreams.Subscriber<T>createSubscriber()This is the main method you must implement in your test incarnation.voidnotVerified()java.util.concurrent.ExecutorServicepublisherExecutorService()ExecutorService to be used by the provided helperPublishervoidrequired_spec201_blackbox_mustSignalDemandViaSubscriptionRequest()Asks for aSubscriberinstance, expects it to callrequest()in a timely manner and signals as manyonNextitems as the very first request amount specified by theSubscriber.voidrequired_spec203_blackbox_mustNotCallMethodsOnSubscriptionOrPublisherInOnComplete()Asks for aSubscriber, signals anonSubscribefollowed by anonCompletesynchronously, and checks if neitherrequestnorcancelwas called from within theSubscriber'sonCompleteimplementation.voidrequired_spec203_blackbox_mustNotCallMethodsOnSubscriptionOrPublisherInOnError()Asks for aSubscriber, signals anonSubscribefollowed by anonErrorsynchronously, and checks if neitherrequestnorcancelwas called from within theSubscriber'sonCompleteimplementation.voidrequired_spec205_blackbox_mustCallSubscriptionCancelIfItAlreadyHasAnSubscriptionAndReceivesAnotherOnSubscribeSignal()Asks for aSubscriber, signalsonSubscribetwice synchronously and expects the secondSubscriptiongets cancelled in a timely manner and without any calls to itsrequestmethod.voidrequired_spec209_blackbox_mustBePreparedToReceiveAnOnCompleteSignalWithoutPrecedingRequestCall()Asks for aSubscriberand expects it to handleonCompleteindependent of whether theSubscriberrequests items or not.voidrequired_spec209_blackbox_mustBePreparedToReceiveAnOnCompleteSignalWithPrecedingRequestCall()Asks for aSubscriber, expects it to request some amount and in turn be able to receive anonCompletesynchronously from therequestcall without anyonNextsignals before that.voidrequired_spec210_blackbox_mustBePreparedToReceiveAnOnErrorSignalWithoutPrecedingRequestCall()Asks for aSubscriber, signalsonSubscribefollowed by anonErrorsynchronously.voidrequired_spec210_blackbox_mustBePreparedToReceiveAnOnErrorSignalWithPrecedingRequestCall()Asks for aSubscriber, signalsonSubscribefollowed by anonErrorsynchronously.voidrequired_spec213_blackbox_onError_mustThrowNullPointerExceptionWhenParametersAreNull()Asks for aSubscriber, signals anonSubscribeevent followed by aonErrorwithnullas a parameter and expects an immediateNullPointerExceptionto be thrown by theSubscriber.onErrormethod.voidrequired_spec213_blackbox_onNext_mustThrowNullPointerExceptionWhenParametersAreNull()Asks for aSubscriber, signals anonSubscribeevent followed by aonNextwithnullas a parameter and expects an immediateNullPointerExceptionto be thrown by theSubscriber.onNextmethod.voidrequired_spec213_blackbox_onSubscribe_mustThrowNullPointerExceptionWhenParametersAreNull()Asks for aSubscriberand signals anonSubscribeevent withnullas a parameter and expects an immediateNullPointerExceptionto be thrown by theSubscriber.onSubscribemethod.voidsetUp()voidshutdownPublisherExecutorService()voidstartPublisherExecutorService()voidtriggerRequest(org.reactivestreams.Subscriber<? super T> subscriber)Override this method if the Subscriber implementation you are verifying needs an external signal before it signals demand to its Publisher.voiduntested_spec202_blackbox_shouldAsynchronouslyDispatch()Currently, this test is skipped because there is no agreed upon approach how to detect if theSubscriberreally goes async or just responds in a timely manner.voiduntested_spec204_blackbox_mustConsiderTheSubscriptionAsCancelledInAfterRecievingOnCompleteOrOnError()Currently, this test is skipped because there is no way to check what theSubscriber"considers" since rule §2.3 forbids interaction from within theonErrorandonCompletemethods.voiduntested_spec206_blackbox_mustCallSubscriptionCancelIfItIsNoLongerValid()Currently, this test is skipped because it requires more control over theSubscriberimplementation to make it cancel theSubscriptionfor some external condition.voiduntested_spec207_blackbox_mustEnsureAllCallsOnItsSubscriptionTakePlaceFromTheSameThreadOrTakeCareOfSynchronization()Currently, this test is skipped because it requires more control over theSubscriberimplementation to issue requests based on external stimulus.voiduntested_spec208_blackbox_mustBePreparedToReceiveOnNextSignalsAfterHavingCalledSubscriptionCancel()Currently, this test is skipped because there is no way to make theSubscriberimplementation cancel the test'sSubscriptionand check the outcome of sendingonNexts after such cancel.voiduntested_spec211_blackbox_mustMakeSureThatAllCallsOnItsMethodsHappenBeforeTheProcessingOfTheRespectiveEvents()Currently, this test is skipped because it would require analyzing what theSubscriberimplementation does.voiduntested_spec212_blackbox_mustNotCallOnSubscribeMoreThanOnceBasedOnObjectEquality()Currently, this test is skipped because the test for§2.5is in a better position to test for handling the reuse of the sameSubscriber.voiduntested_spec213_blackbox_failingOnSignalInvocation()Currently, this test is skipped because it would require more control over theSubscriberto fail internally in response to a set of legal event emissions, not throw any exception from theSubscribermethods and have it cancel theSubscription.voiduntested_spec301_blackbox_mustNotBeCalledOutsideSubscriberContext()Currently, this test is skipped because there is no agreed upon way for specifying, enforcing and testing aSubscriberwith an arbitrary context.voiduntested_spec308_blackbox_requestMustRegisterGivenNumberElementsToBeProduced()Currently, this test is skipped because element production is the responsibility of thePublisherand aSubscriptionis not expected to be the active element in an established subscription.voiduntested_spec310_blackbox_requestMaySynchronouslyCallOnNextOnSubscriber()Currently, this test is skipped because element production is the responsibility of thePublisherand aSubscriptionis not expected to be the active element in an established subscription.voiduntested_spec311_blackbox_requestMaySynchronouslyCallOnCompleteOrOnError()Currently, this test is skipped because signal production is the responsibility of thePublisherand aSubscriptionis not expected to be the active element in an established subscription.voiduntested_spec314_blackbox_cancelMayCauseThePublisherToShutdownIfNoOtherSubscriptionExists()Currently, this test is skipped because it is the responsibility of thePublisherdeal with the case that all subscribers have cancelled their subscription.voiduntested_spec315_blackbox_cancelMustNotThrowExceptionAndMustSignalOnError()Currently, this test is skipped because it requires more control over theSubscriberimplementation thus there is no way to detect that theSubscribercalled its ownonErrormethod in response to an exception thrown fromSubscription.cancel.voiduntested_spec316_blackbox_requestMustNotThrowExceptionAndMustOnErrorTheSubscriber()Currently, this test is skipped because it requires more control over theSubscriberimplementation thus there is no way to detect that theSubscribercalled its ownonErrormethod in response to an exception thrown fromSubscription.request.-
Methods inherited from class org.reactivestreams.tck.WithHelperPublisher
createElement, createHelperPublisher
-
-
-
-
Field Detail
-
env
protected final TestEnvironment env
-
-
Constructor Detail
-
SubscriberBlackboxVerification
protected SubscriberBlackboxVerification(TestEnvironment env)
-
-
Method Detail
-
createSubscriber
public abstract org.reactivestreams.Subscriber<T> createSubscriber()
This is the main method you must implement in your test incarnation. It must create a newSubscriberinstance to be subjected to the testing logic.
-
triggerRequest
public void triggerRequest(org.reactivestreams.Subscriber<? super T> subscriber)
Override this method if the Subscriber implementation you are verifying needs an external signal before it signals demand to its Publisher. By default this method does nothing.
-
startPublisherExecutorService
@BeforeClass public void startPublisherExecutorService()
-
shutdownPublisherExecutorService
@AfterClass public void shutdownPublisherExecutorService()
-
publisherExecutorService
public java.util.concurrent.ExecutorService publisherExecutorService()
Description copied from class:WithHelperPublisherExecutorService to be used by the provided helperPublisher- Specified by:
publisherExecutorServicein classWithHelperPublisher<T>
-
setUp
@BeforeMethod public void setUp() throws java.lang.Exception
- Throws:
java.lang.Exception
-
required_spec201_blackbox_mustSignalDemandViaSubscriptionRequest
public void required_spec201_blackbox_mustSignalDemandViaSubscriptionRequest() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesAsks for aSubscriberinstance, expects it to callrequest()in a timely manner and signals as manyonNextitems as the very first request amount specified by theSubscriber.Verifies rule: 2.1
Notes:
- This test emits the number of items requested thus the
Subscriberimplementation should not request too much. - Only the very first
requestamount is considered. - This test doesn't signal
onCompleteafter the first set ofonNextsignals has been emitted and may cause resource leak inSubscribers that expect a finitePublisher. - The test ignores cancellation from the
Subscriberand emits the requested amount regardless.
If this test fails, the following could be checked within the
Subscriberimplementation:- if the
Subscriberrequires external stimulus to begin requesting; override thetriggerRequest(org.reactivestreams.Subscriber)method in this case, - the
TestEnvironmenthas large enough timeout specified in case theSubscriberhas some time-delay behavior, - if the
Subscriberrequests zero or a negative value in some circumstances, - if the
Subscriberthrows an unchecked exception from itsonSubscribeoronNextmethods.
- Specified by:
required_spec201_blackbox_mustSignalDemandViaSubscriptionRequestin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
- This test emits the number of items requested thus the
-
untested_spec202_blackbox_shouldAsynchronouslyDispatch
public void untested_spec202_blackbox_shouldAsynchronouslyDispatch() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because there is no agreed upon approach how to detect if theSubscriberreally goes async or just responds in a timely manner.Verifies rule: 2.2
- Specified by:
untested_spec202_blackbox_shouldAsynchronouslyDispatchin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
-
required_spec203_blackbox_mustNotCallMethodsOnSubscriptionOrPublisherInOnComplete
public void required_spec203_blackbox_mustNotCallMethodsOnSubscriptionOrPublisherInOnComplete() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesAsks for aSubscriber, signals anonSubscribefollowed by anonCompletesynchronously, and checks if neitherrequestnorcancelwas called from within theSubscriber'sonCompleteimplementation.Verifies rule: 2.3
Notes:
- The test checks for the presensce of method named "onComplete" in the current stacktrace when handling
the
requestorcancelcalls in the test's ownSubscription.
If this test fails, the following could be checked within the
Subscriberimplementation:- no calls happen to
requestorcancelin response to anonCompletedirectly or indirectly, - if the
Subscriberthrows an unchecked exception from itsonSubscribeoronCompletemethods.
- Specified by:
required_spec203_blackbox_mustNotCallMethodsOnSubscriptionOrPublisherInOnCompletein interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
- The test checks for the presensce of method named "onComplete" in the current stacktrace when handling
the
-
required_spec203_blackbox_mustNotCallMethodsOnSubscriptionOrPublisherInOnError
public void required_spec203_blackbox_mustNotCallMethodsOnSubscriptionOrPublisherInOnError() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesAsks for aSubscriber, signals anonSubscribefollowed by anonErrorsynchronously, and checks if neitherrequestnorcancelwas called from within theSubscriber'sonCompleteimplementation.Verifies rule: 2.3
Notes:
- The test checks for the presensce of method named "onError" in the current stacktrace when handling
the
requestorcancelcalls in the test's ownSubscription.
If this test fails, the following could be checked within the
Subscriberimplementation:- no calls happen to
requestorcancelin response to anonErrordirectly or indirectly, - if the
Subscriberthrows an unchecked exception from itsonSubscribeoronErrormethods.
- Specified by:
required_spec203_blackbox_mustNotCallMethodsOnSubscriptionOrPublisherInOnErrorin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
- The test checks for the presensce of method named "onError" in the current stacktrace when handling
the
-
untested_spec204_blackbox_mustConsiderTheSubscriptionAsCancelledInAfterRecievingOnCompleteOrOnError
public void untested_spec204_blackbox_mustConsiderTheSubscriptionAsCancelledInAfterRecievingOnCompleteOrOnError() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because there is no way to check what theSubscriber"considers" since rule §2.3 forbids interaction from within theonErrorandonCompletemethods.Verifies rule: 2.4
Notes:
- It would be possible to check if there was an async interaction with the test's
Subscriptionwithin a grace period but such check is still not generally decisive.
- Specified by:
untested_spec204_blackbox_mustConsiderTheSubscriptionAsCancelledInAfterRecievingOnCompleteOrOnErrorin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
- It would be possible to check if there was an async interaction with the test's
-
required_spec205_blackbox_mustCallSubscriptionCancelIfItAlreadyHasAnSubscriptionAndReceivesAnotherOnSubscribeSignal
public void required_spec205_blackbox_mustCallSubscriptionCancelIfItAlreadyHasAnSubscriptionAndReceivesAnotherOnSubscribeSignal() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesAsks for aSubscriber, signalsonSubscribetwice synchronously and expects the secondSubscriptiongets cancelled in a timely manner and without any calls to itsrequestmethod.Verifies rule: 2.5
Notes:
- The test doesn't signal any other events than
onSubscribeand may cause resource leak inSubscribers that expect a finitePublisher.
If this test fails, the following could be checked within the
Subscriberimplementation:- if the
Subscribe.onSubscribeimplementation actually tries to detect multiple calls to it, - if the second
Subscriptionis cancelled asynchronously and that takes longer time than theTestEnvironment's timeout permits.
- Specified by:
required_spec205_blackbox_mustCallSubscriptionCancelIfItAlreadyHasAnSubscriptionAndReceivesAnotherOnSubscribeSignalin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
- The test doesn't signal any other events than
-
untested_spec206_blackbox_mustCallSubscriptionCancelIfItIsNoLongerValid
public void untested_spec206_blackbox_mustCallSubscriptionCancelIfItIsNoLongerValid() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because it requires more control over theSubscriberimplementation to make it cancel theSubscriptionfor some external condition.Verifies rule: 2.6
- Specified by:
untested_spec206_blackbox_mustCallSubscriptionCancelIfItIsNoLongerValidin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
-
untested_spec207_blackbox_mustEnsureAllCallsOnItsSubscriptionTakePlaceFromTheSameThreadOrTakeCareOfSynchronization
public void untested_spec207_blackbox_mustEnsureAllCallsOnItsSubscriptionTakePlaceFromTheSameThreadOrTakeCareOfSynchronization() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because it requires more control over theSubscriberimplementation to issue requests based on external stimulus.Verifies rule: 2.7
- Specified by:
untested_spec207_blackbox_mustEnsureAllCallsOnItsSubscriptionTakePlaceFromTheSameThreadOrTakeCareOfSynchronizationin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
-
untested_spec208_blackbox_mustBePreparedToReceiveOnNextSignalsAfterHavingCalledSubscriptionCancel
public void untested_spec208_blackbox_mustBePreparedToReceiveOnNextSignalsAfterHavingCalledSubscriptionCancel() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because there is no way to make theSubscriberimplementation cancel the test'sSubscriptionand check the outcome of sendingonNexts after such cancel.Verifies rule: 2.8
- Specified by:
untested_spec208_blackbox_mustBePreparedToReceiveOnNextSignalsAfterHavingCalledSubscriptionCancelin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
-
required_spec209_blackbox_mustBePreparedToReceiveAnOnCompleteSignalWithPrecedingRequestCall
public void required_spec209_blackbox_mustBePreparedToReceiveAnOnCompleteSignalWithPrecedingRequestCall() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesAsks for aSubscriber, expects it to request some amount and in turn be able to receive anonCompletesynchronously from therequestcall without anyonNextsignals before that.Verifies rule: 2.9
Notes:
- The test ignores cancellation from the
Subscriber. - Invalid request amounts are ignored by this test.
- Concurrent calls to the test's
Subscription.request()must be externally synchronized, otherwise such case results probabilistically in multipleonCompletecalls by the test.
If this test fails, the following could be checked within the
Subscriberimplementation:- if the
Subscriberthrows an unchecked exception from itsonSubscribeoronCompletemethods. - if the
Subscriberrequires external stimulus to begin requesting; override thetriggerRequest(org.reactivestreams.Subscriber)method in this case,
- Specified by:
required_spec209_blackbox_mustBePreparedToReceiveAnOnCompleteSignalWithPrecedingRequestCallin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
- The test ignores cancellation from the
-
required_spec209_blackbox_mustBePreparedToReceiveAnOnCompleteSignalWithoutPrecedingRequestCall
public void required_spec209_blackbox_mustBePreparedToReceiveAnOnCompleteSignalWithoutPrecedingRequestCall() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesAsks for aSubscriberand expects it to handleonCompleteindependent of whether theSubscriberrequests items or not.Verifies rule: 2.9
Notes:
- Currently, the test doesn't call
onSubscribeon theSubscriberwhich violates §1.9.
If this test fails, the following could be checked within the
Subscriberimplementation:- if the
Subscriberthrows an unchecked exception from itsonSubscribeoronCompletemethods.
- Specified by:
required_spec209_blackbox_mustBePreparedToReceiveAnOnCompleteSignalWithoutPrecedingRequestCallin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
- Currently, the test doesn't call
-
required_spec210_blackbox_mustBePreparedToReceiveAnOnErrorSignalWithPrecedingRequestCall
public void required_spec210_blackbox_mustBePreparedToReceiveAnOnErrorSignalWithPrecedingRequestCall() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesAsks for aSubscriber, signalsonSubscribefollowed by anonErrorsynchronously.Verifies rule: 2.10
Notes:
- Despite the method name, the test doesn't expect a request signal from
Subscriberand emits theonErrorsignal anyway.
If this test fails, the following could be checked within the
Subscriberimplementation:- if the
Subscriberthrows an unchecked exception from itsonSubscribeoronErrormethods.
- Specified by:
required_spec210_blackbox_mustBePreparedToReceiveAnOnErrorSignalWithPrecedingRequestCallin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
- Despite the method name, the test doesn't expect a request signal from
-
required_spec210_blackbox_mustBePreparedToReceiveAnOnErrorSignalWithoutPrecedingRequestCall
public void required_spec210_blackbox_mustBePreparedToReceiveAnOnErrorSignalWithoutPrecedingRequestCall() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesAsks for aSubscriber, signalsonSubscribefollowed by anonErrorsynchronously.Verifies rule: 2.10
If this test fails, the following could be checked within the
Subscriberimplementation:- if the
Subscriberthrows an unchecked exception from itsonSubscribeoronErrormethods.
- Specified by:
required_spec210_blackbox_mustBePreparedToReceiveAnOnErrorSignalWithoutPrecedingRequestCallin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
- if the
-
untested_spec211_blackbox_mustMakeSureThatAllCallsOnItsMethodsHappenBeforeTheProcessingOfTheRespectiveEvents
public void untested_spec211_blackbox_mustMakeSureThatAllCallsOnItsMethodsHappenBeforeTheProcessingOfTheRespectiveEvents() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because it would require analyzing what theSubscriberimplementation does.Verifies rule: 2.11
- Specified by:
untested_spec211_blackbox_mustMakeSureThatAllCallsOnItsMethodsHappenBeforeTheProcessingOfTheRespectiveEventsin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
-
untested_spec212_blackbox_mustNotCallOnSubscribeMoreThanOnceBasedOnObjectEquality
public void untested_spec212_blackbox_mustNotCallOnSubscribeMoreThanOnceBasedOnObjectEquality() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because the test for§2.5is in a better position to test for handling the reuse of the sameSubscriber.Verifies rule: 2.12
Notes:
- In addition to §2.5, this rule could be better verified when testing a
Publisher's subscription behavior.
- Specified by:
untested_spec212_blackbox_mustNotCallOnSubscribeMoreThanOnceBasedOnObjectEqualityin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
- In addition to §2.5, this rule could be better verified when testing a
-
untested_spec213_blackbox_failingOnSignalInvocation
public void untested_spec213_blackbox_failingOnSignalInvocation() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because it would require more control over theSubscriberto fail internally in response to a set of legal event emissions, not throw any exception from theSubscribermethods and have it cancel theSubscription.Verifies rule: 2.13
- Specified by:
untested_spec213_blackbox_failingOnSignalInvocationin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
-
required_spec213_blackbox_onSubscribe_mustThrowNullPointerExceptionWhenParametersAreNull
public void required_spec213_blackbox_onSubscribe_mustThrowNullPointerExceptionWhenParametersAreNull() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesAsks for aSubscriberand signals anonSubscribeevent withnullas a parameter and expects an immediateNullPointerExceptionto be thrown by theSubscriber.onSubscribemethod.Verifies rule: 2.13
If this test fails, the following could be checked within the
Subscriberimplementation:- if the
Subscriberthrows aNullPointerExceptionfrom itsonSubscribemethod in response to anullparameter and not some other unchecked exception or no exception at all.
- Specified by:
required_spec213_blackbox_onSubscribe_mustThrowNullPointerExceptionWhenParametersAreNullin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
- if the
-
required_spec213_blackbox_onNext_mustThrowNullPointerExceptionWhenParametersAreNull
public void required_spec213_blackbox_onNext_mustThrowNullPointerExceptionWhenParametersAreNull() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesAsks for aSubscriber, signals anonSubscribeevent followed by aonNextwithnullas a parameter and expects an immediateNullPointerExceptionto be thrown by theSubscriber.onNextmethod.Verifies rule: 2.13
Notes:
- The test ignores cancellation and requests from the
Subscriberand emits theonNextsignal with anullparameter anyway.
If this test fails, the following could be checked within the
Subscriberimplementation:- if the
Subscriberthrows aNullPointerExceptionfrom itsonNextmethod in response to anullparameter and not some other unchecked exception or no exception at all.
- Specified by:
required_spec213_blackbox_onNext_mustThrowNullPointerExceptionWhenParametersAreNullin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
- The test ignores cancellation and requests from the
-
required_spec213_blackbox_onError_mustThrowNullPointerExceptionWhenParametersAreNull
public void required_spec213_blackbox_onError_mustThrowNullPointerExceptionWhenParametersAreNull() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesAsks for aSubscriber, signals anonSubscribeevent followed by aonErrorwithnullas a parameter and expects an immediateNullPointerExceptionto be thrown by theSubscriber.onErrormethod.Verifies rule: 2.13
Notes:
- The test ignores cancellation from the
Subscriberand emits theonErrorsignal with anullparameter anyway.
If this test fails, the following could be checked within the
Subscriberimplementation:- if the
Subscriberthrows aNullPointerExceptionfrom itsonNextmethod in response to anullparameter and not some other unchecked exception or no exception at all.
- Specified by:
required_spec213_blackbox_onError_mustThrowNullPointerExceptionWhenParametersAreNullin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
- The test ignores cancellation from the
-
untested_spec301_blackbox_mustNotBeCalledOutsideSubscriberContext
public void untested_spec301_blackbox_mustNotBeCalledOutsideSubscriberContext() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because there is no agreed upon way for specifying, enforcing and testing aSubscriberwith an arbitrary context.Verifies rule: 3.1
- Specified by:
untested_spec301_blackbox_mustNotBeCalledOutsideSubscriberContextin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
-
untested_spec308_blackbox_requestMustRegisterGivenNumberElementsToBeProduced
public void untested_spec308_blackbox_requestMustRegisterGivenNumberElementsToBeProduced() throws java.lang.Throwable
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because element production is the responsibility of thePublisherand aSubscriptionis not expected to be the active element in an established subscription.Verifies rule: 3.8
- Specified by:
untested_spec308_blackbox_requestMustRegisterGivenNumberElementsToBeProducedin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Throwable
-
untested_spec310_blackbox_requestMaySynchronouslyCallOnNextOnSubscriber
public void untested_spec310_blackbox_requestMaySynchronouslyCallOnNextOnSubscriber() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because element production is the responsibility of thePublisherand aSubscriptionis not expected to be the active element in an established subscription.Verifies rule: 3.10
Notes:
- This could be tested with a synchronous source currently not available within the TCK.
- Specified by:
untested_spec310_blackbox_requestMaySynchronouslyCallOnNextOnSubscriberin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
-
untested_spec311_blackbox_requestMaySynchronouslyCallOnCompleteOrOnError
public void untested_spec311_blackbox_requestMaySynchronouslyCallOnCompleteOrOnError() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because signal production is the responsibility of thePublisherand aSubscriptionis not expected to be the active element in an established subscription.Verifies rule: 3.11
Notes:
- Specified by:
untested_spec311_blackbox_requestMaySynchronouslyCallOnCompleteOrOnErrorin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
-
untested_spec314_blackbox_cancelMayCauseThePublisherToShutdownIfNoOtherSubscriptionExists
public void untested_spec314_blackbox_cancelMayCauseThePublisherToShutdownIfNoOtherSubscriptionExists() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because it is the responsibility of thePublisherdeal with the case that all subscribers have cancelled their subscription.Verifies rule: 3.14
Notes:
- The specification lists this as an optional behavior because only some
Publisherimplementations (most likelyProcessors) would coordinate with multipleSubscribers.
- Specified by:
untested_spec314_blackbox_cancelMayCauseThePublisherToShutdownIfNoOtherSubscriptionExistsin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
- The specification lists this as an optional behavior because only some
-
untested_spec315_blackbox_cancelMustNotThrowExceptionAndMustSignalOnError
public void untested_spec315_blackbox_cancelMustNotThrowExceptionAndMustSignalOnError() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because it requires more control over theSubscriberimplementation thus there is no way to detect that theSubscribercalled its ownonErrormethod in response to an exception thrown fromSubscription.cancel.Verifies rule: 3.15
- Specified by:
untested_spec315_blackbox_cancelMustNotThrowExceptionAndMustSignalOnErrorin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
-
untested_spec316_blackbox_requestMustNotThrowExceptionAndMustOnErrorTheSubscriber
public void untested_spec316_blackbox_requestMustNotThrowExceptionAndMustOnErrorTheSubscriber() throws java.lang.Exception
Description copied from interface:SubscriberBlackboxVerificationRulesCurrently, this test is skipped because it requires more control over theSubscriberimplementation thus there is no way to detect that theSubscribercalled its ownonErrormethod in response to an exception thrown fromSubscription.request.Verifies rule: 3.16
- Specified by:
untested_spec316_blackbox_requestMustNotThrowExceptionAndMustOnErrorTheSubscriberin interfaceSubscriberBlackboxVerificationRules- Throws:
java.lang.Exception
-
blackboxSubscriberTest
public void blackboxSubscriberTest(org.reactivestreams.tck.SubscriberBlackboxVerification.BlackboxTestStageTestRun body) throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
blackboxSubscriberWithoutSetupTest
public void blackboxSubscriberWithoutSetupTest(org.reactivestreams.tck.SubscriberBlackboxVerification.BlackboxTestStageTestRun body) throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
notVerified
public void notVerified()
-
-