Skip to content

Commit 54898e9

Browse files
committed
Ttransfers/copies all test annotations from the Publisher/Subscriber Verifications
to the IdentityProcessor-verification so that they are applied for the delegation.
1 parent b73ff9b commit 54898e9

File tree

7 files changed

+205
-103
lines changed

7 files changed

+205
-103
lines changed

examples/src/test/java/org/reactivestreams/example/unicast/AsyncSubscriberTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public AsyncSubscriberTest() {
6060
}
6161
};
6262

63-
new NumberIterablePublisher<Integer>(0, 10, e).subscribe(sub);
63+
new NumberIterablePublisher(0, 10, e).subscribe(sub);
6464
latch.await(DefaultTimeoutMillis * 10, TimeUnit.MILLISECONDS);
6565
assertEquals(i.get(), 45);
6666
}

tck/src/main/java/org/reactivestreams/tck/IdentityProcessorVerification.java

+57-55
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,21 @@
44
import org.reactivestreams.Publisher;
55
import org.reactivestreams.Subscriber;
66
import org.reactivestreams.Subscription;
7-
import org.reactivestreams.tck.Annotations.Subscribers;
7+
import org.reactivestreams.tck.Annotations.*;
88
import org.reactivestreams.tck.TestEnvironment.ManualPublisher;
99
import org.reactivestreams.tck.TestEnvironment.ManualSubscriber;
1010
import org.reactivestreams.tck.TestEnvironment.ManualSubscriberWithSubscriptionSupport;
1111
import org.reactivestreams.tck.TestEnvironment.Promise;
1212
import org.reactivestreams.tck.support.Function;
13+
import org.reactivestreams.tck.support.SubscriberWhiteboxVerificationRules;
14+
import org.reactivestreams.tck.support.PublisherVerificationRules;
1315
import org.testng.annotations.BeforeMethod;
1416
import org.testng.annotations.Test;
1517

1618
import java.util.HashSet;
1719
import java.util.Set;
1820

19-
public abstract class IdentityProcessorVerification<T> {
21+
public abstract class IdentityProcessorVerification<T> implements SubscriberWhiteboxVerificationRules, PublisherVerificationRules {
2022

2123
private final TestEnvironment env;
2224

@@ -212,154 +214,154 @@ public void createPublisher3MustProduceAStreamOfExactly3Elements() throws Throwa
212214
publisherVerification.createPublisher3MustProduceAStreamOfExactly3Elements();
213215
}
214216

215-
@Test
217+
@Override @Required @Test
216218
public void spec101_subscriptionRequestMustResultInTheCorrectNumberOfProducedElements() throws Throwable {
217219
publisherVerification.spec101_subscriptionRequestMustResultInTheCorrectNumberOfProducedElements();
218220
}
219221

220-
@Test
222+
@Override @Required @Test
221223
public void spec102_maySignalLessThanRequestedAndTerminateSubscription() throws Throwable {
222224
publisherVerification.spec102_maySignalLessThanRequestedAndTerminateSubscription();
223225
}
224226

225-
@Test
227+
@Override @Stochastic @Test
226228
public void spec103_mustSignalOnMethodsSequentially() throws Throwable {
227229
publisherVerification.spec103_mustSignalOnMethodsSequentially();
228230
}
229231

230-
@Test
232+
@Override @Additional(implement = "createErrorStatePublisher") @Test
231233
public void spec104_mustSignalOnErrorWhenFails() throws Throwable {
232234
publisherVerification.spec104_mustSignalOnErrorWhenFails();
233235
}
234236

235-
@Test
237+
@Override @Required @Test
236238
public void spec105_mustSignalOnCompleteWhenFiniteStreamTerminates() throws Throwable {
237239
publisherVerification.spec105_mustSignalOnCompleteWhenFiniteStreamTerminates();
238240
}
239241

240-
@Test
242+
@Override @NotVerified @Test
241243
public void spec106_mustConsiderSubscriptionCancelledAfterOnErrorOrOnCompleteHasBeenCalled() throws Throwable {
242244
publisherVerification.spec106_mustConsiderSubscriptionCancelledAfterOnErrorOrOnCompleteHasBeenCalled();
243245
}
244246

245-
@Test
247+
@Override @Required @Test
246248
public void spec107_mustNotEmitFurtherSignalsOnceOnCompleteHasBeenSignalled() throws Throwable {
247249
publisherVerification.spec107_mustNotEmitFurtherSignalsOnceOnCompleteHasBeenSignalled();
248250
}
249251

250-
@Test
252+
@Override @NotVerified @Test
251253
public void spec107_mustNotEmitFurtherSignalsOnceOnErrorHasBeenSignalled() throws Throwable {
252254
publisherVerification.spec107_mustNotEmitFurtherSignalsOnceOnErrorHasBeenSignalled();
253255
}
254256

255-
@Test
257+
@Override @NotVerified @Test
256258
public void spec108_possiblyCanceledSubscriptionShouldNotReceiveOnErrorOrOnCompleteSignals() throws Throwable {
257259
publisherVerification.spec108_possiblyCanceledSubscriptionShouldNotReceiveOnErrorOrOnCompleteSignals();
258260
}
259261

260-
@Test
262+
@Override @NotVerified @Test
261263
public void spec109_subscribeShouldNotThrowNonFatalThrowable() throws Throwable {
262264
publisherVerification.spec109_subscribeShouldNotThrowNonFatalThrowable();
263265
}
264266

265-
@Test
267+
@Override @NotVerified @Test
266268
public void spec110_rejectASubscriptionRequestIfTheSameSubscriberSubscribesTwice() throws Throwable {
267269
publisherVerification.spec110_rejectASubscriptionRequestIfTheSameSubscriberSubscribesTwice();
268270
}
269271

270-
@Test
272+
@Override @Additional @Test
271273
public void spec111_maySupportMultiSubscribe() throws Throwable {
272274
publisherVerification.spec111_maySupportMultiSubscribe();
273275
}
274276

275-
@Test
277+
@Override @Additional(implement = "createErrorStatePublisher") @Test
276278
public void spec112_mayRejectCallsToSubscribeIfPublisherIsUnableOrUnwillingToServeThemRejectionMustTriggerOnErrorInsteadOfOnSubscribe() throws Throwable {
277279
publisherVerification.spec112_mayRejectCallsToSubscribeIfPublisherIsUnableOrUnwillingToServeThemRejectionMustTriggerOnErrorInsteadOfOnSubscribe();
278280
}
279281

280-
@Test
282+
@Override @Required @Test
281283
public void spec113_mustProduceTheSameElementsInTheSameSequenceToAllOfItsSubscribersWhenRequestingOneByOne() throws Throwable {
282284
publisherVerification.spec113_mustProduceTheSameElementsInTheSameSequenceToAllOfItsSubscribersWhenRequestingOneByOne();
283285
}
284286

285-
@Test
287+
@Override @Required @Test
286288
public void spec113_mustProduceTheSameElementsInTheSameSequenceToAllOfItsSubscribersWhenRequestingManyUpfront() throws Throwable {
287289
publisherVerification.spec113_mustProduceTheSameElementsInTheSameSequenceToAllOfItsSubscribersWhenRequestingManyUpfront();
288290
}
289291

290-
@Test
292+
@Override @Required @Test
291293
public void spec113_mustProduceTheSameElementsInTheSameSequenceToAllOfItsSubscribersWhenRequestingManyUpfrontAndCompleteAsExpected() throws Throwable {
292294
publisherVerification.spec113_mustProduceTheSameElementsInTheSameSequenceToAllOfItsSubscribersWhenRequestingManyUpfrontAndCompleteAsExpected();
293295
}
294296

295-
@Test
297+
@Override @Required @Test
296298
public void spec302_mustAllowSynchronousRequestCallsFromOnNextAndOnSubscribe() throws Throwable {
297299
publisherVerification.spec302_mustAllowSynchronousRequestCallsFromOnNextAndOnSubscribe();
298300
}
299301

300-
@Test
302+
@Override @Required @Test @Additional(implement = "boundedDepthOfOnNextAndRequestRecursion") // FIXME @Required + @Additional? Really?
301303
public void spec303_mustNotAllowUnboundedRecursion() throws Throwable {
302304
publisherVerification.spec303_mustNotAllowUnboundedRecursion();
303305
}
304306

305-
@Test
307+
@Override @NotVerified @Test
306308
public void spec304_requestShouldNotPerformHeavyComputations() throws Exception {
307309
publisherVerification.spec304_requestShouldNotPerformHeavyComputations();
308310
}
309311

310-
@Test
312+
@Override @NotVerified @Test
311313
public void spec305_cancelMustNotSynchronouslyPerformHeavyCompuatation() throws Exception {
312314
publisherVerification.spec305_cancelMustNotSynchronouslyPerformHeavyCompuatation();
313315
}
314316

315-
@Test
317+
@Override @Required @Test
316318
public void spec306_afterSubscriptionIsCancelledRequestMustBeNops() throws Throwable {
317319
publisherVerification.spec306_afterSubscriptionIsCancelledRequestMustBeNops();
318320
}
319321

320-
@Test
322+
@Override @Required @Test
321323
public void spec307_afterSubscriptionIsCancelledAdditionalCancelationsMustBeNops() throws Throwable {
322324
publisherVerification.spec307_afterSubscriptionIsCancelledAdditionalCancelationsMustBeNops();
323325
}
324326

325-
@Test
327+
@Override @Required @Test
326328
public void spec309_requestZeroMustSignalIllegalArgumentException() throws Throwable {
327329
publisherVerification.spec309_requestZeroMustSignalIllegalArgumentException();
328330
}
329331

330-
@Test
332+
@Override @Required @Test
331333
public void spec309_requestNegativeNumberMustSignalIllegalArgumentException() throws Throwable {
332334
publisherVerification.spec309_requestNegativeNumberMustSignalIllegalArgumentException();
333335
}
334336

335-
@Test
337+
@Override @Required @Test
336338
public void spec312_cancelMustMakeThePublisherToEventuallyStopSignaling() throws Throwable {
337339
publisherVerification.spec312_cancelMustMakeThePublisherToEventuallyStopSignaling();
338340
}
339341

340-
@Test
342+
@Override @Required @Test
341343
public void spec313_cancelMustMakeThePublisherEventuallyDropAllReferencesToTheSubscriber() throws Throwable {
342344
publisherVerification.spec313_cancelMustMakeThePublisherEventuallyDropAllReferencesToTheSubscriber();
343345
}
344346

345-
@Test
347+
@Override @Required @Test
346348
public void spec317_mustSupportAPendingElementCountUpToLongMaxValue() throws Throwable {
347349
publisherVerification.spec317_mustSupportAPendingElementCountUpToLongMaxValue();
348350
}
349351

350-
@Test
352+
@Override @Required @Test
351353
public void spec317_mustSupportACumulativePendingElementCountUpToLongMaxValue() throws Throwable {
352354
publisherVerification.spec317_mustSupportACumulativePendingElementCountUpToLongMaxValue();
353355
}
354356

355-
@Test
357+
@Override @Required @Test
356358
public void spec317_mustSignalOnErrorWhenPendingAboveLongMaxValue() throws Throwable {
357359
publisherVerification.spec317_mustSignalOnErrorWhenPendingAboveLongMaxValue();
358360
}
359361

360362
// Verifies rule: https://github.com/reactive-streams/reactive-streams#1.4
361363
// for multiple subscribers
362-
@Test @Subscribers(2)
364+
@Test @Subscribers(2) // @Override FIXME Is this test specific for IdentityProcessorVerification or was it intending to be an override?
363365
public void spec104_mustCallOnErrorOnAllItsSubscribersIfItEncountersANonRecoverableError() throws Throwable {
364366
optionalMultipleSubscribersTest(2, new Function<Long,TestSetup>() {
365367
@Override
@@ -469,117 +471,117 @@ public void exerciseWhiteboxHappyPath() throws Throwable {
469471
subscriberVerification.exerciseWhiteboxHappyPath();
470472
}
471473

472-
@Test
474+
@Override @Required @Test
473475
public void spec201_mustSignalDemandViaSubscriptionRequest() throws Throwable {
474476
subscriberVerification.spec201_mustSignalDemandViaSubscriptionRequest();
475477
}
476478

477-
@Test
479+
@Override @NotVerified @Test
478480
public void spec202_shouldAsynchronouslyDispatch() throws Exception {
479481
subscriberVerification.spec202_shouldAsynchronouslyDispatch();
480482
}
481483

482-
@Test
484+
@Override @Required @Test
483485
public void spec203_mustNotCallMethodsOnSubscriptionOrPublisherInOnComplete() throws Throwable {
484486
subscriberVerification.spec203_mustNotCallMethodsOnSubscriptionOrPublisherInOnComplete();
485487
}
486488

487-
@Test
489+
@Override @Required @Test
488490
public void spec203_mustNotCallMethodsOnSubscriptionOrPublisherInOnError() throws Throwable {
489491
subscriberVerification.spec203_mustNotCallMethodsOnSubscriptionOrPublisherInOnError();
490492
}
491493

492-
@Test
494+
@Override @NotVerified @Test
493495
public void spec204_mustConsiderTheSubscriptionAsCancelledInAfterRecievingOnCompleteOrOnError() throws Exception {
494496
subscriberVerification.spec204_mustConsiderTheSubscriptionAsCancelledInAfterRecievingOnCompleteOrOnError();
495497
}
496498

497-
@Test
499+
@Override @Required @Test
498500
public void spec205_mustCallSubscriptionCancelIfItAlreadyHasAnSubscriptionAndReceivesAnotherOnSubscribeSignal() throws Exception {
499501
subscriberVerification.spec205_mustCallSubscriptionCancelIfItAlreadyHasAnSubscriptionAndReceivesAnotherOnSubscribeSignal();
500502
}
501503

502-
@Test
504+
@Override @NotVerified @Test
503505
public void spec206_mustCallSubscriptionCancelIfItIsNoLongerValid() throws Exception {
504506
subscriberVerification.spec206_mustCallSubscriptionCancelIfItIsNoLongerValid();
505507
}
506508

507-
@Test
509+
@Override @NotVerified @Test
508510
public void spec207_mustEnsureAllCallsOnItsSubscriptionTakePlaceFromTheSameThreadOrTakeCareOfSynchronization() throws Exception {
509511
subscriberVerification.spec207_mustEnsureAllCallsOnItsSubscriptionTakePlaceFromTheSameThreadOrTakeCareOfSynchronization();
510512
}
511513

512-
@Test
514+
@Override @Required @Test
513515
public void spec208_mustBePreparedToReceiveOnNextSignalsAfterHavingCalledSubscriptionCancel() throws Throwable {
514516
subscriberVerification.spec208_mustBePreparedToReceiveOnNextSignalsAfterHavingCalledSubscriptionCancel();
515517
}
516518

517-
@Test
519+
@Override @Required @Test
518520
public void spec209_mustBePreparedToReceiveAnOnCompleteSignalWithPrecedingRequestCall() throws Throwable {
519521
subscriberVerification.spec209_mustBePreparedToReceiveAnOnCompleteSignalWithPrecedingRequestCall();
520522
}
521523

522-
@Test
524+
@Override @Required @Test
523525
public void spec209_mustBePreparedToReceiveAnOnCompleteSignalWithoutPrecedingRequestCall() throws Throwable {
524526
subscriberVerification.spec209_mustBePreparedToReceiveAnOnCompleteSignalWithoutPrecedingRequestCall();
525527
}
526528

527-
@Test
529+
@Override @Required @Test
528530
public void spec210_mustBePreparedToReceiveAnOnErrorSignalWithPrecedingRequestCall() throws Throwable {
529531
subscriberVerification.spec210_mustBePreparedToReceiveAnOnErrorSignalWithPrecedingRequestCall();
530532
}
531533

532-
@Test
534+
@Override @Required @Test
533535
public void spec210_mustBePreparedToReceiveAnOnErrorSignalWithoutPrecedingRequestCall() throws Throwable {
534536
subscriberVerification.spec210_mustBePreparedToReceiveAnOnErrorSignalWithoutPrecedingRequestCall();
535537
}
536538

537-
@Test
539+
@Override @NotVerified @Test
538540
public void spec211_mustMakeSureThatAllCallsOnItsMethodsHappenBeforeTheProcessingOfTheRespectiveEvents() throws Exception {
539541
subscriberVerification.spec211_mustMakeSureThatAllCallsOnItsMethodsHappenBeforeTheProcessingOfTheRespectiveEvents();
540542
}
541543

542-
@Test
544+
@Override @Additional @Test
543545
public void spec212_mustNotCallOnSubscribeMoreThanOnceBasedOnObjectEquality_specViolation() throws Throwable {
544546
subscriberVerification.spec212_mustNotCallOnSubscribeMoreThanOnceBasedOnObjectEquality_specViolation();
545547
}
546548

547-
@Test
549+
@Override @NotVerified@Test
548550
public void spec213_failingOnSignalInvocation() throws Exception {
549551
subscriberVerification.spec213_failingOnSignalInvocation();
550552
}
551553

552-
@Test
554+
@Override @NotVerified @Test
553555
public void spec301_mustNotBeCalledOutsideSubscriberContext() throws Exception {
554556
subscriberVerification.spec301_mustNotBeCalledOutsideSubscriberContext();
555557
}
556558

557-
@Test
559+
@Override @Required @Test
558560
public void spec308_requestMustRegisterGivenNumberElementsToBeProduced() throws Throwable {
559561
subscriberVerification.spec308_requestMustRegisterGivenNumberElementsToBeProduced();
560562
}
561563

562-
@Test
564+
@Override @NotVerified @Test
563565
public void spec310_requestMaySynchronouslyCallOnNextOnSubscriber() throws Exception {
564566
subscriberVerification.spec310_requestMaySynchronouslyCallOnNextOnSubscriber();
565567
}
566568

567-
@Test
569+
@Override @NotVerified @Test
568570
public void spec311_requestMaySynchronouslyCallOnCompleteOrOnError() throws Exception {
569571
subscriberVerification.spec311_requestMaySynchronouslyCallOnCompleteOrOnError();
570572
}
571573

572-
@Test
574+
@Override @NotVerified @Test
573575
public void spec314_cancelMayCauseThePublisherToShutdownIfNoOtherSubscriptionExists() throws Exception {
574576
subscriberVerification.spec314_cancelMayCauseThePublisherToShutdownIfNoOtherSubscriptionExists();
575577
}
576578

577-
@Test
579+
@Override @NotVerified @Test
578580
public void spec315_cancelMustNotThrowExceptionAndMustSignalOnError() throws Exception {
579581
subscriberVerification.spec315_cancelMustNotThrowExceptionAndMustSignalOnError();
580582
}
581583

582-
@Test
584+
@Override @NotVerified @Test
583585
public void spec316_requestMustNotThrowExceptionAndMustOnErrorTheSubscriber() throws Exception {
584586
subscriberVerification.spec316_requestMustNotThrowExceptionAndMustOnErrorTheSubscriber();
585587
}

0 commit comments

Comments
 (0)