001package org.reactivestreams.tck.support;
002
003
004/**
005 * Internal TCK use only.
006 * Add / Remove tests for PublisherVerification here to make sure that they arre added/removed in the other places.
007 */
008public interface PublisherVerificationRules {
009  void required_validate_maxElementsFromPublisher() throws Exception;
010  void required_validate_boundedDepthOfOnNextAndRequestRecursion() throws Exception;
011  void required_createPublisher1MustProduceAStreamOfExactly1Element() throws Throwable;
012  void required_createPublisher3MustProduceAStreamOfExactly3Elements() throws Throwable;
013  void required_spec101_subscriptionRequestMustResultInTheCorrectNumberOfProducedElements() throws Throwable;
014  void required_spec102_maySignalLessThanRequestedAndTerminateSubscription() throws Throwable;
015  void stochastic_spec103_mustSignalOnMethodsSequentially() throws Throwable;
016  void optional_spec104_mustSignalOnErrorWhenFails() throws Throwable;
017  void required_spec105_mustSignalOnCompleteWhenFiniteStreamTerminates() throws Throwable;
018  void optional_spec105_emptyStreamMustTerminateBySignallingOnComplete() throws Throwable;
019  void untested_spec106_mustConsiderSubscriptionCancelledAfterOnErrorOrOnCompleteHasBeenCalled() throws Throwable;
020  void required_spec107_mustNotEmitFurtherSignalsOnceOnCompleteHasBeenSignalled() throws Throwable;
021  void untested_spec107_mustNotEmitFurtherSignalsOnceOnErrorHasBeenSignalled() throws Throwable;
022  void untested_spec108_possiblyCanceledSubscriptionShouldNotReceiveOnErrorOrOnCompleteSignals() throws Throwable;
023  void required_spec109_mustIssueOnSubscribeForNonNullSubscriber() throws Throwable;
024  void untested_spec109_subscribeShouldNotThrowNonFatalThrowable() throws Throwable;
025  void required_spec109_subscribeThrowNPEOnNullSubscriber() throws Throwable;
026  void required_spec109_mayRejectCallsToSubscribeIfPublisherIsUnableOrUnwillingToServeThemRejectionMustTriggerOnErrorAfterOnSubscribe() throws Throwable;
027  void untested_spec110_rejectASubscriptionRequestIfTheSameSubscriberSubscribesTwice() throws Throwable;
028  void optional_spec111_maySupportMultiSubscribe() throws Throwable;
029  void optional_spec111_multicast_mustProduceTheSameElementsInTheSameSequenceToAllOfItsSubscribersWhenRequestingOneByOne() throws Throwable;
030  void optional_spec111_multicast_mustProduceTheSameElementsInTheSameSequenceToAllOfItsSubscribersWhenRequestingManyUpfront() throws Throwable;
031  void optional_spec111_multicast_mustProduceTheSameElementsInTheSameSequenceToAllOfItsSubscribersWhenRequestingManyUpfrontAndCompleteAsExpected() throws Throwable;
032  void required_spec302_mustAllowSynchronousRequestCallsFromOnNextAndOnSubscribe() throws Throwable;
033  void required_spec303_mustNotAllowUnboundedRecursion() throws Throwable;
034  void untested_spec304_requestShouldNotPerformHeavyComputations() throws Exception;
035  void untested_spec305_cancelMustNotSynchronouslyPerformHeavyCompuatation() throws Exception;
036  void required_spec306_afterSubscriptionIsCancelledRequestMustBeNops() throws Throwable;
037  void required_spec307_afterSubscriptionIsCancelledAdditionalCancelationsMustBeNops() throws Throwable;
038  void required_spec309_requestZeroMustSignalIllegalArgumentException() throws Throwable;
039  void required_spec309_requestNegativeNumberMustSignalIllegalArgumentException() throws Throwable;
040  void required_spec312_cancelMustMakeThePublisherToEventuallyStopSignaling() throws Throwable;
041  void required_spec313_cancelMustMakeThePublisherEventuallyDropAllReferencesToTheSubscriber() throws Throwable;
042  void required_spec317_mustSupportAPendingElementCountUpToLongMaxValue() throws Throwable;
043  void required_spec317_mustSupportACumulativePendingElementCountUpToLongMaxValue() throws Throwable;
044  void required_spec317_mustNotSignalOnErrorWhenPendingAboveLongMaxValue() throws Throwable;
045}