Skip to content

Commit 37cc672

Browse files
Upgrade to JUnit 5 (#2804)
Upgrades JUnit 4 to JUnit 5 and adds JDK 21 as one of testing targets --------- Co-authored-by: Grzegorz Piwowarek <gpiwowarek@gmail.com>
1 parent 022baca commit 37cc672

File tree

153 files changed

+2216
-1980
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

153 files changed

+2216
-1980
lines changed

.github/workflows/build-version.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
runs-on: ubuntu-latest
1313
strategy:
1414
matrix:
15-
java: [ '8', '11', '17']
15+
java: [ '8', '11', '17', '21' ]
1616
architecture: [ 'x64' ]
1717
name: Build with JDK ${{ matrix.java }} on ${{ matrix.architecture }}
1818
steps:

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
runs-on: ubuntu-latest
1313
strategy:
1414
matrix:
15-
java: [ '8', '11', '17' ]
15+
java: [ '8', '11', '17', '21' ]
1616
architecture: [ 'x64' ]
1717
name: Build with JDK ${{ matrix.java }} on ${{ matrix.architecture }}
1818
steps:

build.gradle

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ plugins {
4343
ext.ammoniteScalaVersion = '2.13'
4444
ext.ammoniteVersion = '2.5.11'
4545
ext.assertjVersion = '3.26.3'
46-
ext.junitVersion = '4.13.2'
46+
ext.junitVersion = '5.11.0'
4747

4848
// JAVA_VERSION used for CI build matrix, may be provided as env variable
4949
def javaVersion = Integer.parseInt(System.getenv('JAVA_VERSION') ?: '8')
@@ -57,10 +57,16 @@ repositories {
5757
// -- --
5858

5959
dependencies {
60-
testImplementation "junit:junit:$junitVersion"
60+
testImplementation "org.junit.jupiter:junit-jupiter:$junitVersion"
6161
testImplementation "org.assertj:assertj-core:$assertjVersion"
6262
}
6363

64+
tasks.withType(Test).configureEach {
65+
useJUnitPlatform()
66+
67+
maxHeapSize = '1G'
68+
}
69+
6470
java {
6571
toolchain {
6672
languageVersion.set(JavaLanguageVersion.of(javaVersion))

generator/Generator.sc

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2627,7 +2627,7 @@ def generateTestClasses(): Unit = {
26272627
genVavrFile("io.vavr", s"APITest", baseDir = TARGET_TEST)((im: ImportManager, packageName, className) => {
26282628

26292629
val assertThat = im.getStatic("org.assertj.core.api.Assertions.assertThat")
2630-
val test = im.getType("org.junit.Test")
2630+
val test = im.getType("org.junit.jupiter.api.Test")
26312631

26322632
val API = im.getType("io.vavr.API")
26332633
val AssertionsExtensions = im.getType("io.vavr.AssertionsExtensions")
@@ -2844,7 +2844,7 @@ def generateTestClasses(): Unit = {
28442844

28452845
def genShortcutsTests(im: ImportManager, packageName: String, className: String): String = {
28462846

2847-
val fail = im.getStatic("org.junit.Assert.fail")
2847+
val fail = im.getStatic("org.junit.jupiter.api.Assertions.fail")
28482848
val captureStdOut = im.getStatic("io.vavr.OutputTester.captureStdOut")
28492849

28502850
xs"""
@@ -3090,7 +3090,8 @@ def generateTestClasses(): Unit = {
30903090
val functionArgs = (1 to i).gen(j => s"o$j")(", ")
30913091
val generics = (1 to i + 1).gen(j => "Object")(", ")
30923092

3093-
val test = im.getType("org.junit.Test")
3093+
val test = im.getType("org.junit.jupiter.api.Test")
3094+
val assertThrows = im.getStatic("org.junit.jupiter.api.Assertions.assertThrows")
30943095
val assertThat = im.getStatic("org.assertj.core.api.Assertions.assertThat")
30953096
val recFuncF1 = if (i == 0) "11;" else s"i1 <= 0 ? i1 : $className.recurrent2.apply(${(1 to i).gen(j => s"i$j" + (j == 1).gen(s" - 1"))(", ")}) + 1;"
30963097

@@ -3315,11 +3316,13 @@ def generateTestClasses(): Unit = {
33153316
assertThat(md5.getDigestLength()).isEqualTo(16);
33163317
}
33173318

3318-
@$test(expected = ${im.getType("java.security.NoSuchAlgorithmException")}.class)
3319+
@$test
33193320
public void shouldThrowCheckedExceptionWhenUnchecked() {
3320-
$name$i<MessageDigest> digest = () -> ${im.getType("java.security.MessageDigest")}.getInstance("Unknown");
3321-
Function$i<MessageDigest> unchecked = digest.unchecked();
3322-
unchecked.apply(); // Look ma, we throw an undeclared checked exception!
3321+
$assertThrows(${im.getType("java.security.NoSuchAlgorithmException")}.class, () -> {
3322+
$name$i<MessageDigest> digest = () -> ${im.getType("java.security.MessageDigest")}.getInstance("Unknown");
3323+
Function$i<MessageDigest> unchecked = digest.unchecked();
3324+
unchecked.apply(); // Look ma, we throw an undeclared checked exception!
3325+
});
33233326
}
33243327

33253328
@$test
@@ -3381,10 +3384,12 @@ def generateTestClasses(): Unit = {
33813384
assertThat(md5.getDigestLength()).isEqualTo(16);
33823385
}
33833386

3384-
@$test(expected = ${im.getType("java.security.NoSuchAlgorithmException")}.class)
3387+
@$test
33853388
public void shouldUncheckedThrowIllegalState() {
3386-
final Function$i<${(1 to i).gen(j => "String")(", ")}, MessageDigest> unchecked = digest.unchecked();
3387-
unchecked.apply(${toArgList("Unknown")}); // Look ma, we throw an undeclared checked exception!
3389+
$assertThrows(${im.getType("java.security.NoSuchAlgorithmException")}.class, () -> {
3390+
final Function$i<${(1 to i).gen(j => "String")(", ")}, MessageDigest> unchecked = digest.unchecked();
3391+
unchecked.apply(${toArgList("Unknown")}); // Look ma, we throw an undeclared checked exception!
3392+
});
33883393
}
33893394

33903395
@$test
@@ -3464,7 +3469,7 @@ def generateTestClasses(): Unit = {
34643469
def genAllArity(im: ImportManager,
34653470
mapName: String, mapBuilder: String,
34663471
builderComparator: Boolean, keyComparator: Boolean): String = {
3467-
val test = im.getType("org.junit.Test")
3472+
val test = im.getType("org.junit.jupiter.api.Test")
34683473
val assertThat = im.getStatic("org.assertj.core.api.Assertions.assertThat")
34693474
val naturalComparator = if (builderComparator || keyComparator) im.getStatic(s"io.vavr.collection.Comparators.naturalComparator") else null
34703475
val map = im.getType(s"io.vavr.collection.$mapName")
@@ -3523,7 +3528,7 @@ def generateTestClasses(): Unit = {
35233528

35243529
genVavrFile("io.vavr", s"Tuple${i}Test", baseDir = TARGET_TEST)((im: ImportManager, packageName, className) => {
35253530

3526-
val test = im.getType("org.junit.Test")
3531+
val test = im.getType("org.junit.jupiter.api.Test")
35273532
val seq = im.getType("io.vavr.collection.Seq")
35283533
val list = im.getType("io.vavr.collection.List")
35293534
val stream = if (i == 0) "" else im.getType("io.vavr.collection.Stream")

src-gen/test/java/io/vavr/APITest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import static io.vavr.OutputTester.captureStdOut;
3535
import static io.vavr.Patterns.*;
3636
import static org.assertj.core.api.Assertions.assertThat;
37-
import static org.junit.Assert.fail;
37+
import static org.junit.jupiter.api.Assertions.fail;
3838

3939
import io.vavr.collection.List;
4040
import io.vavr.collection.Map;
@@ -47,7 +47,7 @@
4747
import java.util.Arrays;
4848
import java.util.Comparator;
4949
import java.util.concurrent.Executors;
50-
import org.junit.Test;
50+
import org.junit.jupiter.api.Test;
5151

5252
@SuppressWarnings("deprecation")
5353
public class APITest {

src-gen/test/java/io/vavr/CheckedFunction0Test.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,14 @@
3131
\*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
3232

3333
import static org.assertj.core.api.Assertions.assertThat;
34+
import static org.junit.jupiter.api.Assertions.assertThrows;
3435

3536
import io.vavr.control.Try;
3637
import java.lang.CharSequence;
3738
import java.security.MessageDigest;
3839
import java.security.NoSuchAlgorithmException;
3940
import java.util.concurrent.atomic.AtomicInteger;
40-
import org.junit.Test;
41+
import org.junit.jupiter.api.Test;
4142

4243
public class CheckedFunction0Test {
4344

@@ -158,11 +159,13 @@ public void shouldUncheckedWork() {
158159
assertThat(md5.getDigestLength()).isEqualTo(16);
159160
}
160161

161-
@Test(expected = NoSuchAlgorithmException.class)
162+
@Test
162163
public void shouldThrowCheckedExceptionWhenUnchecked() {
163-
CheckedFunction0<MessageDigest> digest = () -> MessageDigest.getInstance("Unknown");
164-
Function0<MessageDigest> unchecked = digest.unchecked();
165-
unchecked.apply(); // Look ma, we throw an undeclared checked exception!
164+
assertThrows(NoSuchAlgorithmException.class, () -> {
165+
CheckedFunction0<MessageDigest> digest = () -> MessageDigest.getInstance("Unknown");
166+
Function0<MessageDigest> unchecked = digest.unchecked();
167+
unchecked.apply(); // Look ma, we throw an undeclared checked exception!
168+
});
166169
}
167170

168171
@Test

src-gen/test/java/io/vavr/CheckedFunction1Test.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,14 @@
3131
\*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
3232

3333
import static org.assertj.core.api.Assertions.assertThat;
34+
import static org.junit.jupiter.api.Assertions.assertThrows;
3435

3536
import io.vavr.control.Try;
3637
import java.lang.CharSequence;
3738
import java.security.MessageDigest;
3839
import java.security.NoSuchAlgorithmException;
3940
import java.util.concurrent.atomic.AtomicInteger;
40-
import org.junit.Test;
41+
import org.junit.jupiter.api.Test;
4142

4243
public class CheckedFunction1Test {
4344

@@ -168,10 +169,12 @@ public void shouldUncheckedWork() {
168169
assertThat(md5.getDigestLength()).isEqualTo(16);
169170
}
170171

171-
@Test(expected = NoSuchAlgorithmException.class)
172+
@Test
172173
public void shouldUncheckedThrowIllegalState() {
173-
final Function1<String, MessageDigest> unchecked = digest.unchecked();
174-
unchecked.apply("Unknown"); // Look ma, we throw an undeclared checked exception!
174+
assertThrows(NoSuchAlgorithmException.class, () -> {
175+
final Function1<String, MessageDigest> unchecked = digest.unchecked();
176+
unchecked.apply("Unknown"); // Look ma, we throw an undeclared checked exception!
177+
});
175178
}
176179

177180
@Test

src-gen/test/java/io/vavr/CheckedFunction2Test.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,14 @@
3131
\*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
3232

3333
import static org.assertj.core.api.Assertions.assertThat;
34+
import static org.junit.jupiter.api.Assertions.assertThrows;
3435

3536
import io.vavr.control.Try;
3637
import java.lang.CharSequence;
3738
import java.security.MessageDigest;
3839
import java.security.NoSuchAlgorithmException;
3940
import java.util.concurrent.atomic.AtomicInteger;
40-
import org.junit.Test;
41+
import org.junit.jupiter.api.Test;
4142

4243
public class CheckedFunction2Test {
4344

@@ -167,10 +168,12 @@ public void shouldUncheckedWork() {
167168
assertThat(md5.getDigestLength()).isEqualTo(16);
168169
}
169170

170-
@Test(expected = NoSuchAlgorithmException.class)
171+
@Test
171172
public void shouldUncheckedThrowIllegalState() {
172-
final Function2<String, String, MessageDigest> unchecked = digest.unchecked();
173-
unchecked.apply("U", "nknown"); // Look ma, we throw an undeclared checked exception!
173+
assertThrows(NoSuchAlgorithmException.class, () -> {
174+
final Function2<String, String, MessageDigest> unchecked = digest.unchecked();
175+
unchecked.apply("U", "nknown"); // Look ma, we throw an undeclared checked exception!
176+
});
174177
}
175178

176179
@Test

src-gen/test/java/io/vavr/CheckedFunction3Test.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,14 @@
3131
\*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
3232

3333
import static org.assertj.core.api.Assertions.assertThat;
34+
import static org.junit.jupiter.api.Assertions.assertThrows;
3435

3536
import io.vavr.control.Try;
3637
import java.lang.CharSequence;
3738
import java.security.MessageDigest;
3839
import java.security.NoSuchAlgorithmException;
3940
import java.util.concurrent.atomic.AtomicInteger;
40-
import org.junit.Test;
41+
import org.junit.jupiter.api.Test;
4142

4243
public class CheckedFunction3Test {
4344

@@ -168,10 +169,12 @@ public void shouldUncheckedWork() {
168169
assertThat(md5.getDigestLength()).isEqualTo(16);
169170
}
170171

171-
@Test(expected = NoSuchAlgorithmException.class)
172+
@Test
172173
public void shouldUncheckedThrowIllegalState() {
173-
final Function3<String, String, String, MessageDigest> unchecked = digest.unchecked();
174-
unchecked.apply("U", "n", "known"); // Look ma, we throw an undeclared checked exception!
174+
assertThrows(NoSuchAlgorithmException.class, () -> {
175+
final Function3<String, String, String, MessageDigest> unchecked = digest.unchecked();
176+
unchecked.apply("U", "n", "known"); // Look ma, we throw an undeclared checked exception!
177+
});
175178
}
176179

177180
@Test

src-gen/test/java/io/vavr/CheckedFunction4Test.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,14 @@
3131
\*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
3232

3333
import static org.assertj.core.api.Assertions.assertThat;
34+
import static org.junit.jupiter.api.Assertions.assertThrows;
3435

3536
import io.vavr.control.Try;
3637
import java.lang.CharSequence;
3738
import java.security.MessageDigest;
3839
import java.security.NoSuchAlgorithmException;
3940
import java.util.concurrent.atomic.AtomicInteger;
40-
import org.junit.Test;
41+
import org.junit.jupiter.api.Test;
4142

4243
public class CheckedFunction4Test {
4344

@@ -169,10 +170,12 @@ public void shouldUncheckedWork() {
169170
assertThat(md5.getDigestLength()).isEqualTo(16);
170171
}
171172

172-
@Test(expected = NoSuchAlgorithmException.class)
173+
@Test
173174
public void shouldUncheckedThrowIllegalState() {
174-
final Function4<String, String, String, String, MessageDigest> unchecked = digest.unchecked();
175-
unchecked.apply("U", "n", "k", "nown"); // Look ma, we throw an undeclared checked exception!
175+
assertThrows(NoSuchAlgorithmException.class, () -> {
176+
final Function4<String, String, String, String, MessageDigest> unchecked = digest.unchecked();
177+
unchecked.apply("U", "n", "k", "nown"); // Look ma, we throw an undeclared checked exception!
178+
});
176179
}
177180

178181
@Test

0 commit comments

Comments
 (0)