001/***************************************************
002 * Licensed under MIT No Attribution (SPDX: MIT-0) *
003 ***************************************************/
004
005package org.reactivestreams.tck.flow.support;
006
007/**
008 * Internal TCK use only.
009 * Add / Remove tests for PublisherVerificaSubscriberWhiteboxVerification here to make sure that they arre added/removed in the other places.
010 */
011public interface SubscriberWhiteboxVerificationRules {
012  void required_exerciseWhiteboxHappyPath() throws Throwable;
013  void required_spec201_mustSignalDemandViaSubscriptionRequest() throws Throwable;
014  void untested_spec202_shouldAsynchronouslyDispatch() throws Exception;
015  void required_spec203_mustNotCallMethodsOnSubscriptionOrPublisherInOnComplete() throws Throwable;
016  void required_spec203_mustNotCallMethodsOnSubscriptionOrPublisherInOnError() throws Throwable;
017  void untested_spec204_mustConsiderTheSubscriptionAsCancelledInAfterRecievingOnCompleteOrOnError() throws Exception;
018  void required_spec205_mustCallSubscriptionCancelIfItAlreadyHasAnSubscriptionAndReceivesAnotherOnSubscribeSignal() throws Throwable;
019  void untested_spec206_mustCallSubscriptionCancelIfItIsNoLongerValid() throws Exception;
020  void untested_spec207_mustEnsureAllCallsOnItsSubscriptionTakePlaceFromTheSameThreadOrTakeCareOfSynchronization() throws Exception;
021  void required_spec208_mustBePreparedToReceiveOnNextSignalsAfterHavingCalledSubscriptionCancel() throws Throwable;
022  void required_spec209_mustBePreparedToReceiveAnOnCompleteSignalWithPrecedingRequestCall() throws Throwable;
023  void required_spec209_mustBePreparedToReceiveAnOnCompleteSignalWithoutPrecedingRequestCall() throws Throwable;
024  void required_spec210_mustBePreparedToReceiveAnOnErrorSignalWithPrecedingRequestCall() throws Throwable;
025  void required_spec210_mustBePreparedToReceiveAnOnErrorSignalWithoutPrecedingRequestCall() throws Throwable;
026  void untested_spec211_mustMakeSureThatAllCallsOnItsMethodsHappenBeforeTheProcessingOfTheRespectiveEvents() throws Exception;
027  void untested_spec212_mustNotCallOnSubscribeMoreThanOnceBasedOnObjectEquality_specViolation() throws Throwable;
028  void untested_spec213_failingOnSignalInvocation() throws Exception;
029  void required_spec213_onSubscribe_mustThrowNullPointerExceptionWhenParametersAreNull() throws Throwable;
030  void required_spec213_onNext_mustThrowNullPointerExceptionWhenParametersAreNull() throws Throwable;
031  void required_spec213_onError_mustThrowNullPointerExceptionWhenParametersAreNull() throws Throwable;
032  void untested_spec301_mustNotBeCalledOutsideSubscriberContext() throws Exception;
033  void required_spec308_requestMustRegisterGivenNumberElementsToBeProduced() throws Throwable;
034  void untested_spec310_requestMaySynchronouslyCallOnNextOnSubscriber() throws Exception;
035  void untested_spec311_requestMaySynchronouslyCallOnCompleteOrOnError() throws Exception;
036  void untested_spec314_cancelMayCauseThePublisherToShutdownIfNoOtherSubscriptionExists() throws Exception;
037  void untested_spec315_cancelMustNotThrowExceptionAndMustSignalOnError() throws Exception;
038  void untested_spec316_requestMustNotThrowExceptionAndMustOnErrorTheSubscriber() throws Exception;
039}