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}