Skip to content

Commit 93248e9

Browse files
committed
migrates to junit 5
Signed-off-by: Oleh Dokuka <[email protected]> Signed-off-by: Oleh Dokuka <[email protected]>
1 parent 4484bc1 commit 93248e9

31 files changed

+475
-578
lines changed

build.gradle

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,6 @@ subprojects {
8484
entry 'mockito-junit-jupiter'
8585
entry 'mockito-core'
8686
}
87-
// TODO: Remove after JUnit5 migration
88-
dependency 'junit:junit:4.12'
8987
dependency "org.hamcrest:hamcrest-library:${ext['hamcrest.version']}"
9088
dependencySet(group: 'org.openjdk.jmh', version: ext['jmh.version']) {
9189
entry 'jmh-core'

rsocket-core/build.gradle

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,7 @@ dependencies {
4040
testRuntimeOnly 'ch.qos.logback:logback-classic'
4141
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
4242

43-
// TODO: Remove after JUnit5 migration
44-
testCompileOnly 'junit:junit'
4543
testImplementation 'org.hamcrest:hamcrest-library'
46-
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine'
4744

4845
jcstressImplementation "ch.qos.logback:logback-classic"
4946
}

rsocket-core/src/test/java/io/rsocket/core/AbstractSocketRule.java

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,9 @@
2424
import io.rsocket.test.util.TestDuplexConnection;
2525
import io.rsocket.test.util.TestSubscriber;
2626
import java.time.Duration;
27-
import org.junit.rules.ExternalResource;
28-
import org.junit.runner.Description;
29-
import org.junit.runners.model.Statement;
3027
import org.reactivestreams.Subscriber;
3128

32-
public abstract class AbstractSocketRule<T extends RSocket> extends ExternalResource {
29+
public abstract class AbstractSocketRule<T extends RSocket> {
3330

3431
protected TestDuplexConnection connection;
3532
protected Subscriber<Void> connectSub;
@@ -38,22 +35,15 @@ public abstract class AbstractSocketRule<T extends RSocket> extends ExternalReso
3835
protected int maxFrameLength = FRAME_LENGTH_MASK;
3936
protected int maxInboundPayloadSize = Integer.MAX_VALUE;
4037

41-
@Override
42-
public Statement apply(final Statement base, Description description) {
43-
return new Statement() {
44-
@Override
45-
public void evaluate() throws Throwable {
46-
allocator =
47-
LeaksTrackingByteBufAllocator.instrument(
48-
ByteBufAllocator.DEFAULT, Duration.ofSeconds(5), "");
49-
connectSub = TestSubscriber.create();
50-
init();
51-
base.evaluate();
52-
}
53-
};
38+
public void init() {
39+
allocator =
40+
LeaksTrackingByteBufAllocator.instrument(
41+
ByteBufAllocator.DEFAULT, Duration.ofSeconds(5), "");
42+
connectSub = TestSubscriber.create();
43+
doInit();
5444
}
5545

56-
protected void init() {
46+
protected void doInit() {
5747
if (socket != null) {
5848
socket.dispose();
5949
}
@@ -66,12 +56,12 @@ protected void init() {
6656

6757
public void setMaxInboundPayloadSize(int maxInboundPayloadSize) {
6858
this.maxInboundPayloadSize = maxInboundPayloadSize;
69-
init();
59+
doInit();
7060
}
7161

7262
public void setMaxFrameLength(int maxFrameLength) {
7363
this.maxFrameLength = maxFrameLength;
74-
init();
64+
doInit();
7565
}
7666

7767
protected abstract T newRSocket();

rsocket-core/src/test/java/io/rsocket/core/ClientServerInputMultiplexerTest.java

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package io.rsocket.core;
1818

19-
import static org.junit.Assert.assertEquals;
19+
import static org.assertj.core.api.Assertions.assertThat;
2020

2121
import io.netty.buffer.ByteBuf;
2222
import io.netty.buffer.ByteBufAllocator;
@@ -65,32 +65,32 @@ public void clientSplits() {
6565
.subscribe();
6666

6767
source.addToReceivedBuffer(errorFrame(1).retain());
68-
assertEquals(1, clientFrames.get());
69-
assertEquals(0, serverFrames.get());
68+
assertThat(clientFrames.get()).isOne();
69+
assertThat(serverFrames.get()).isZero();
7070

7171
source.addToReceivedBuffer(errorFrame(1).retain());
72-
assertEquals(2, clientFrames.get());
73-
assertEquals(0, serverFrames.get());
72+
assertThat(clientFrames.get()).isEqualTo(2);
73+
assertThat(serverFrames.get()).isZero();
7474

7575
source.addToReceivedBuffer(leaseFrame().retain());
76-
assertEquals(3, clientFrames.get());
77-
assertEquals(0, serverFrames.get());
76+
assertThat(clientFrames.get()).isEqualTo(3);
77+
assertThat(serverFrames.get()).isZero();
7878

7979
source.addToReceivedBuffer(keepAliveFrame().retain());
80-
assertEquals(4, clientFrames.get());
81-
assertEquals(0, serverFrames.get());
80+
assertThat(clientFrames.get()).isEqualTo(4);
81+
assertThat(serverFrames.get()).isZero();
8282

8383
source.addToReceivedBuffer(errorFrame(2).retain());
84-
assertEquals(4, clientFrames.get());
85-
assertEquals(1, serverFrames.get());
84+
assertThat(clientFrames.get()).isEqualTo(4);
85+
assertThat(serverFrames.get()).isOne();
8686

8787
source.addToReceivedBuffer(errorFrame(0).retain());
88-
assertEquals(5, clientFrames.get());
89-
assertEquals(1, serverFrames.get());
88+
assertThat(clientFrames.get()).isEqualTo(5);
89+
assertThat(serverFrames.get()).isOne();
9090

9191
source.addToReceivedBuffer(metadataPushFrame().retain());
92-
assertEquals(5, clientFrames.get());
93-
assertEquals(2, serverFrames.get());
92+
assertThat(clientFrames.get()).isEqualTo(5);
93+
assertThat(serverFrames.get()).isEqualTo(2);
9494
}
9595

9696
@Test
@@ -110,32 +110,32 @@ public void serverSplits() {
110110
.subscribe();
111111

112112
source.addToReceivedBuffer(errorFrame(1).retain());
113-
assertEquals(1, clientFrames.get());
114-
assertEquals(0, serverFrames.get());
113+
assertThat(clientFrames.get()).isEqualTo(1);
114+
assertThat(serverFrames.get()).isZero();
115115

116116
source.addToReceivedBuffer(errorFrame(1).retain());
117-
assertEquals(2, clientFrames.get());
118-
assertEquals(0, serverFrames.get());
117+
assertThat(clientFrames.get()).isEqualTo(2);
118+
assertThat(serverFrames.get()).isZero();
119119

120120
source.addToReceivedBuffer(leaseFrame().retain());
121-
assertEquals(2, clientFrames.get());
122-
assertEquals(1, serverFrames.get());
121+
assertThat(clientFrames.get()).isEqualTo(2);
122+
assertThat(serverFrames.get()).isOne();
123123

124124
source.addToReceivedBuffer(keepAliveFrame().retain());
125-
assertEquals(2, clientFrames.get());
126-
assertEquals(2, serverFrames.get());
125+
assertThat(clientFrames.get()).isEqualTo(2);
126+
assertThat(serverFrames.get()).isEqualTo(2);
127127

128128
source.addToReceivedBuffer(errorFrame(2).retain());
129-
assertEquals(2, clientFrames.get());
130-
assertEquals(3, serverFrames.get());
129+
assertThat(clientFrames.get()).isEqualTo(2);
130+
assertThat(serverFrames.get()).isEqualTo(3);
131131

132132
source.addToReceivedBuffer(errorFrame(0).retain());
133-
assertEquals(2, clientFrames.get());
134-
assertEquals(4, serverFrames.get());
133+
assertThat(clientFrames.get()).isEqualTo(2);
134+
assertThat(serverFrames.get()).isEqualTo(4);
135135

136136
source.addToReceivedBuffer(metadataPushFrame().retain());
137-
assertEquals(3, clientFrames.get());
138-
assertEquals(4, serverFrames.get());
137+
assertThat(clientFrames.get()).isEqualTo(3);
138+
assertThat(serverFrames.get()).isEqualTo(4);
139139
}
140140

141141
private ByteBuf leaseFrame() {

rsocket-core/src/test/java/io/rsocket/core/DefaultRSocketClientTests.java

Lines changed: 17 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@
1515
* limitations under the License.
1616
*/
1717

18-
import static io.rsocket.frame.FrameHeaderCodec.frameType;
19-
import static org.hamcrest.MatcherAssert.assertThat;
20-
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
21-
import static org.hamcrest.Matchers.hasSize;
22-
2318
import io.netty.buffer.ByteBuf;
2419
import io.netty.util.CharsetUtil;
2520
import io.netty.util.ReferenceCountUtil;
@@ -37,7 +32,6 @@
3732
import java.time.Duration;
3833
import java.util.ArrayList;
3934
import java.util.Collection;
40-
import java.util.List;
4135
import java.util.Map;
4236
import java.util.concurrent.CancellationException;
4337
import java.util.concurrent.atomic.AtomicBoolean;
@@ -52,7 +46,6 @@
5246
import org.junit.jupiter.params.ParameterizedTest;
5347
import org.junit.jupiter.params.provider.Arguments;
5448
import org.junit.jupiter.params.provider.MethodSource;
55-
import org.junit.runners.model.Statement;
5649
import org.reactivestreams.Publisher;
5750
import reactor.core.Disposable;
5851
import reactor.core.publisher.Flux;
@@ -64,6 +57,7 @@
6457
import reactor.test.publisher.TestPublisher;
6558
import reactor.test.util.RaceTestUtils;
6659
import reactor.util.context.Context;
60+
import reactor.util.context.ContextView;
6761
import reactor.util.retry.Retry;
6862

6963
public class DefaultRSocketClientTests {
@@ -75,13 +69,7 @@ public void setUp() throws Throwable {
7569
Hooks.onNextDropped(ReferenceCountUtil::safeRelease);
7670
Hooks.onErrorDropped((t) -> {});
7771
rule = new ClientSocketRule();
78-
rule.apply(
79-
new Statement() {
80-
@Override
81-
public void evaluate() {}
82-
},
83-
null)
84-
.evaluate();
72+
rule.init();
8573
}
8674

8775
@AfterEach
@@ -179,19 +167,12 @@ public void shouldSentFrameOnResolution(
179167
@MethodSource("interactions")
180168
@SuppressWarnings({"unchecked", "rawtypes"})
181169
public void shouldHaveNoLeaksOnPayloadInCaseOfRacingOfOnNextAndCancel(
182-
BiFunction<RSocketClient, Publisher<Payload>, Publisher<?>> request, FrameType requestType)
183-
throws Throwable {
170+
BiFunction<RSocketClient, Publisher<Payload>, Publisher<?>> request, FrameType requestType) {
184171
Assumptions.assumeThat(requestType).isNotEqualTo(FrameType.REQUEST_CHANNEL);
185172

186173
for (int i = 0; i < RaceTestConstants.REPEATS; i++) {
187174
ClientSocketRule rule = new ClientSocketRule();
188-
rule.apply(
189-
new Statement() {
190-
@Override
191-
public void evaluate() {}
192-
},
193-
null)
194-
.evaluate();
175+
rule.init();
195176
Payload payload = ByteBufPayload.create("test", "testMetadata");
196177
TestPublisher<Payload> testPublisher =
197178
TestPublisher.createNoncompliant(TestPublisher.Violation.DEFER_CANCELLATION);
@@ -241,19 +222,12 @@ public void evaluate() {}
241222
@MethodSource("interactions")
242223
@SuppressWarnings({"unchecked", "rawtypes"})
243224
public void shouldHaveNoLeaksOnPayloadInCaseOfRacingOfRequestAndCancel(
244-
BiFunction<RSocketClient, Publisher<Payload>, Publisher<?>> request, FrameType requestType)
245-
throws Throwable {
225+
BiFunction<RSocketClient, Publisher<Payload>, Publisher<?>> request, FrameType requestType) {
246226
Assumptions.assumeThat(requestType).isNotEqualTo(FrameType.REQUEST_CHANNEL);
247227

248228
for (int i = 0; i < RaceTestConstants.REPEATS; i++) {
249229
ClientSocketRule rule = new ClientSocketRule();
250-
rule.apply(
251-
new Statement() {
252-
@Override
253-
public void evaluate() {}
254-
},
255-
null)
256-
.evaluate();
230+
rule.init();
257231
ByteBuf dataBuffer = rule.allocator.buffer();
258232
dataBuffer.writeCharSequence("test", CharsetUtil.UTF_8);
259233

@@ -311,14 +285,17 @@ public void shouldPropagateDownstreamContext(
311285
Payload payload = ByteBufPayload.create(dataBuffer, metadataBuffer);
312286
AssertSubscriber assertSubscriber = new AssertSubscriber(Context.of("test", "test"));
313287

314-
Context[] receivedContext = new Context[1];
288+
ContextView[] receivedContext = new Context[1];
315289
Publisher<?> publisher =
316290
request.apply(
317291
rule.client,
318292
Mono.just(payload)
319293
.mergeWith(
320-
Mono.subscriberContext()
321-
.doOnNext(c -> receivedContext[0] = c)
294+
Mono.deferContextual(
295+
c -> {
296+
receivedContext[0] = c;
297+
return Mono.empty();
298+
})
322299
.then(Mono.empty())));
323300
publisher.subscribe(assertSubscriber);
324301

@@ -481,16 +458,11 @@ public void shouldDisposeOriginalSource() {
481458
}
482459

483460
@Test
484-
public void shouldDisposeOriginalSourceIfRacing() throws Throwable {
461+
public void shouldDisposeOriginalSourceIfRacing() {
485462
for (int i = 0; i < RaceTestConstants.REPEATS; i++) {
486463
ClientSocketRule rule = new ClientSocketRule();
487-
rule.apply(
488-
new Statement() {
489-
@Override
490-
public void evaluate() {}
491-
},
492-
null)
493-
.evaluate();
464+
465+
rule.init();
494466

495467
AssertSubscriber<RSocket> assertSubscriber = AssertSubscriber.create();
496468
rule.client.source().subscribe(assertSubscriber);
@@ -520,8 +492,8 @@ public static class ClientSocketRule extends AbstractSocketRule<RSocketRequester
520492
protected Sinks.One<RSocket> producer;
521493

522494
@Override
523-
protected void init() {
524-
super.init();
495+
protected void doInit() {
496+
super.doInit();
525497
delayer = () -> producer.tryEmitValue(socket);
526498
producer = Sinks.one();
527499
client =
@@ -547,22 +519,5 @@ protected RSocketRequester newRSocket() {
547519
__ -> null,
548520
null);
549521
}
550-
551-
public int getStreamIdForRequestType(FrameType expectedFrameType) {
552-
assertThat("Unexpected frames sent.", connection.getSent(), hasSize(greaterThanOrEqualTo(1)));
553-
List<FrameType> framesFound = new ArrayList<>();
554-
for (ByteBuf frame : connection.getSent()) {
555-
FrameType frameType = frameType(frame);
556-
if (frameType == expectedFrameType) {
557-
return FrameHeaderCodec.streamId(frame);
558-
}
559-
framesFound.add(frameType);
560-
}
561-
throw new AssertionError(
562-
"No frames sent with frame type: "
563-
+ expectedFrameType
564-
+ ", frames found: "
565-
+ framesFound);
566-
}
567522
}
568523
}

0 commit comments

Comments
 (0)