forked from reactive-streams/reactive-streams-jvm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSubscriberNoRegisterOnSubscribeTest.java
185 lines (163 loc) · 6.12 KB
/
SubscriberNoRegisterOnSubscribeTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
/************************************************************************
* Licensed under Public Domain (CC0) *
* *
* To the extent possible under law, the person who associated CC0 with *
* this code has waived all copyright and related or neighboring *
* rights to this code. *
* *
* You should have received a copy of the CC0 legalcode along with this *
* work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.*
************************************************************************/
package org.reactivestreams.tck;
import org.reactivestreams.*;
import org.testng.annotations.Test;
/**
* This test verifies that the SubscriberWhiteboxVerification reports that
* WhiteboxSubscriberProbe.registerOnSubscribe was not called during the setup
* of each test.
*/
@Test
public class SubscriberNoRegisterOnSubscribeTest extends SubscriberWhiteboxVerification<Integer> {
public SubscriberNoRegisterOnSubscribeTest() {
super(new TestEnvironment());
}
@Override
public Subscriber<Integer> createSubscriber(final WhiteboxSubscriberProbe<Integer> probe) {
return new Subscriber<Integer>() {
@Override
public void onSubscribe(final Subscription s) {
// deliberately not calling probe.registerOnSubscribe()
}
@Override
public void onNext(Integer integer) {
probe.registerOnNext(integer);
}
@Override
public void onError(Throwable t) {
probe.registerOnError(t);
}
@Override
public void onComplete() {
probe.registerOnComplete();
}
};
}
@Override
public Integer createElement(int element) {
return element;
}
void assertMessage(AssertionError ex) {
String message = ex.toString();
if (!message.contains(("did not `registerOnSubscribe` within"))) {
throw ex;
}
}
@Test
@Override
public void required_exerciseWhiteboxHappyPath() throws Throwable {
try {
super.required_exerciseWhiteboxHappyPath();
} catch (AssertionError ex) {
assertMessage(ex);
}
}
@Test
@Override
public void required_spec201_mustSignalDemandViaSubscriptionRequest() throws Throwable {
try {
super.required_spec201_mustSignalDemandViaSubscriptionRequest();
} catch (AssertionError ex) {
assertMessage(ex);
}
}
@Test
@Override
public void required_spec205_mustCallSubscriptionCancelIfItAlreadyHasAnSubscriptionAndReceivesAnotherOnSubscribeSignal() throws Throwable {
try {
super.required_spec205_mustCallSubscriptionCancelIfItAlreadyHasAnSubscriptionAndReceivesAnotherOnSubscribeSignal();
} catch (AssertionError ex) {
assertMessage(ex);
}
}
@Test
@Override
public void required_spec208_mustBePreparedToReceiveOnNextSignalsAfterHavingCalledSubscriptionCancel() throws Throwable {
try {
super.required_spec208_mustBePreparedToReceiveOnNextSignalsAfterHavingCalledSubscriptionCancel();
} catch (AssertionError ex) {
assertMessage(ex);
}
}
@Test
@Override
public void required_spec209_mustBePreparedToReceiveAnOnCompleteSignalWithoutPrecedingRequestCall() throws Throwable {
try {
super.required_spec209_mustBePreparedToReceiveAnOnCompleteSignalWithoutPrecedingRequestCall();
} catch (AssertionError ex) {
assertMessage(ex);
}
}
@Test
@Override
public void required_spec209_mustBePreparedToReceiveAnOnCompleteSignalWithPrecedingRequestCall() throws Throwable {
try {
super.required_spec209_mustBePreparedToReceiveAnOnCompleteSignalWithPrecedingRequestCall();
} catch (AssertionError ex) {
assertMessage(ex);
}
}
@Test
@Override
public void required_spec210_mustBePreparedToReceiveAnOnErrorSignalWithoutPrecedingRequestCall() throws Throwable {
try {
super.required_spec210_mustBePreparedToReceiveAnOnErrorSignalWithoutPrecedingRequestCall();
} catch (AssertionError ex) {
assertMessage(ex);
}
}
@Test
@Override
public void required_spec210_mustBePreparedToReceiveAnOnErrorSignalWithPrecedingRequestCall() throws Throwable {
try {
super.required_spec210_mustBePreparedToReceiveAnOnErrorSignalWithPrecedingRequestCall();
} catch (AssertionError ex) {
assertMessage(ex);
}
}
@Test
@Override
public void required_spec213_onError_mustThrowNullPointerExceptionWhenParametersAreNull() throws Throwable {
try {
super.required_spec213_onError_mustThrowNullPointerExceptionWhenParametersAreNull();
} catch (AssertionError ex) {
assertMessage(ex);
}
}
@Test
@Override
public void required_spec213_onNext_mustThrowNullPointerExceptionWhenParametersAreNull() throws Throwable {
try {
super.required_spec213_onNext_mustThrowNullPointerExceptionWhenParametersAreNull();
} catch (AssertionError ex) {
assertMessage(ex);
}
}
@Test
@Override
public void required_spec213_onSubscribe_mustThrowNullPointerExceptionWhenParametersAreNull() throws Throwable {
try {
super.required_spec213_onSubscribe_mustThrowNullPointerExceptionWhenParametersAreNull();
} catch (AssertionError ex) {
assertMessage(ex);
}
}
@Test
@Override
public void required_spec308_requestMustRegisterGivenNumberElementsToBeProduced() throws Throwable {
try {
super.required_spec308_requestMustRegisterGivenNumberElementsToBeProduced();
} catch (AssertionError ex) {
assertMessage(ex);
}
}
}