From 5ca409d13978ad7d85f566c32009018395790b11 Mon Sep 17 00:00:00 2001 From: Chris Rankin Date: Mon, 20 May 2019 09:11:21 +0100 Subject: [PATCH] ENT-3422: Upgrade DJVM to use JUnit 5. (#5131) * Switch to JUnit 5's migration support. * Upgrade to Gradle 5.4.1. * Upgrade to JUnit 5 Jupiter. --- djvm/build.gradle | 8 +++--- djvm/djvm/build.gradle | 6 +++-- .../djvm/execution/SandboxEnumJavaTest.java | 3 ++- .../execution/SandboxExecutorJavaTest.java | 2 +- .../SandboxObjectHashCodeJavaTest.java | 2 +- .../execution/SandboxThrowableJavaTest.java | 4 +-- .../net/corda/djvm/DJVMExceptionTest.kt | 8 +++--- .../test/kotlin/net/corda/djvm/DJVMTest.kt | 4 +-- .../test/kotlin/net/corda/djvm/TestBase.kt | 14 +++++----- .../analysis/ClassAndMemberVisitorTest.kt | 2 +- .../corda/djvm/analysis/ClassResolverTest.kt | 2 +- .../corda/djvm/analysis/SourceLocationTest.kt | 2 +- .../net/corda/djvm/analysis/WhitelistTest.kt | 2 +- .../net/corda/djvm/code/ClassMutatorTest.kt | 2 +- .../net/corda/djvm/code/EmitterModuleTest.kt | 2 +- .../net/corda/djvm/costing/RuntimeCostTest.kt | 2 +- .../corda/djvm/execution/SandboxEnumTest.kt | 2 +- .../djvm/execution/SandboxExecutorTest.kt | 4 +-- .../djvm/execution/SandboxThrowableTest.kt | 2 +- .../djvm/formatter/MemberFormatterTest.kt | 2 +- .../djvm/references/ClassHierarchyTest.kt | 26 +++++++++---------- .../corda/djvm/references/ClassModuleTest.kt | 2 +- .../corda/djvm/references/MemberModuleTest.kt | 4 +-- .../corda/djvm/rewiring/ClassRewriterTest.kt | 2 +- .../djvm/rules/ReferenceExtractorTest.kt | 2 +- .../net/corda/djvm/rules/RuleValidatorTest.kt | 2 +- .../djvm/source/SourceClassLoaderTest.kt | 25 +++++++++++------- .../net/corda/djvm/utilities/DiscoveryTest.kt | 2 +- djvm/gradle.properties | 3 ++- djvm/gradle/wrapper/gradle-wrapper.properties | 2 +- 30 files changed, 79 insertions(+), 66 deletions(-) diff --git a/djvm/build.gradle b/djvm/build.gradle index d4e33ab268..d03281f8c3 100644 --- a/djvm/build.gradle +++ b/djvm/build.gradle @@ -1,7 +1,7 @@ buildscript { ext { corda_djvm_version = '5.0-SNAPSHOT' - artifactory_contextUrl = 'https://ci-artifactory.corda.r3cev.com/artifactory' + artifactory_contextUrl = 'https://software.r3.com/artifactory' } repositories { @@ -14,7 +14,7 @@ buildscript { } plugins { - id 'net.corda.plugins.publish-utils' version '4.0.42' apply false + id 'net.corda.plugins.publish-utils' version '4.0.44' apply false id 'com.github.johnrengelman.shadow' version '5.0.0' apply false id 'com.jfrog.artifactory' version '4.7.3' apply false id 'com.jfrog.bintray' version '1.4' apply false @@ -57,6 +57,8 @@ subprojects { } tasks.withType(Test) { + useJUnitPlatform() + // Prevent the project from creating temporary files outside of the build directory. systemProperty 'java.io.tmpdir', buildDir.absolutePath } @@ -110,7 +112,7 @@ artifactory { } wrapper { - gradleVersion = "5.2.1" + gradleVersion = "5.4.1" distributionType = Wrapper.DistributionType.ALL } diff --git a/djvm/djvm/build.gradle b/djvm/djvm/build.gradle index ce5c267377..b0d4baaed7 100644 --- a/djvm/djvm/build.gradle +++ b/djvm/djvm/build.gradle @@ -33,8 +33,10 @@ dependencies { // ClassGraph: classpath scanning shadow "io.github.classgraph:classgraph:$class_graph_version" - - testCompile "junit:junit:${junit_version}" + + testImplementation "org.junit.jupiter:junit-jupiter-api:$junit_jupiter_version" + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit_jupiter_version" + testRuntimeOnly "org.junit.platform:junit-platform-launcher:$junit_platform_version" // Test utilities testImplementation "org.assertj:assertj-core:$assertj_version" diff --git a/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxEnumJavaTest.java b/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxEnumJavaTest.java index 4237ecf3d1..c5001fa97c 100644 --- a/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxEnumJavaTest.java +++ b/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxEnumJavaTest.java @@ -2,9 +2,10 @@ package net.corda.djvm.execution; import net.corda.djvm.TestBase; import net.corda.djvm.WithJava; +import org.junit.jupiter.api.Test; + import static net.corda.djvm.messages.Severity.*; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; -import org.junit.Test; import java.util.EnumMap; import java.util.EnumSet; diff --git a/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxExecutorJavaTest.java b/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxExecutorJavaTest.java index 802288de3a..022f725c3d 100644 --- a/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxExecutorJavaTest.java +++ b/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxExecutorJavaTest.java @@ -2,7 +2,7 @@ package net.corda.djvm.execution; import net.corda.djvm.TestBase; import net.corda.djvm.WithJava; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Set; import java.util.function.Function; diff --git a/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxObjectHashCodeJavaTest.java b/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxObjectHashCodeJavaTest.java index 34ee436673..0d47337e93 100644 --- a/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxObjectHashCodeJavaTest.java +++ b/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxObjectHashCodeJavaTest.java @@ -2,7 +2,7 @@ package net.corda.djvm.execution; import net.corda.djvm.TestBase; import net.corda.djvm.WithJava; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.function.Function; diff --git a/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxThrowableJavaTest.java b/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxThrowableJavaTest.java index b6ea607dd6..e377bdfdea 100644 --- a/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxThrowableJavaTest.java +++ b/djvm/djvm/src/test/java/net/corda/djvm/execution/SandboxThrowableJavaTest.java @@ -2,9 +2,9 @@ package net.corda.djvm.execution; import net.corda.djvm.TestBase; import net.corda.djvm.WithJava; -import static net.corda.djvm.messages.Severity.*; +import org.junit.jupiter.api.Test; -import org.junit.Test; +import static net.corda.djvm.messages.Severity.*; import java.net.URI; import java.net.URISyntaxException; diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/DJVMExceptionTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/DJVMExceptionTest.kt index 57c71b4e55..fcf8457504 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/DJVMExceptionTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/DJVMExceptionTest.kt @@ -4,7 +4,7 @@ import net.corda.djvm.assertions.AssertionExtensions.assertThatDJVM import net.corda.djvm.rewiring.SandboxClassLoadingException import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.assertThatExceptionOfType -import org.junit.Test +import org.junit.jupiter.api.Test import sandbox.SandboxFunction import sandbox.Task import java.util.* @@ -71,7 +71,7 @@ class DJVMExceptionTest : TestBase() { assertThat(result.getArray("getStackTrace")) .hasOnlyElementsOfType(djvm.stackTraceElementClass) - .isNotEmpty() + .isNotEmpty } @Test @@ -88,7 +88,7 @@ class DJVMExceptionTest : TestBase() { assertThat(result.getArray("getStackTrace")) .hasOnlyElementsOfType(djvm.stackTraceElementClass) - .isNotEmpty() + .isNotEmpty assertThatExceptionOfType(ClassNotFoundException::class.java) .isThrownBy { djvm.classFor("sandbox.java.lang.RuntimeException\$1DJVM") } @@ -108,7 +108,7 @@ class DJVMExceptionTest : TestBase() { assertThat(result.getArray("getStackTrace")) .hasOnlyElementsOfType(djvm.stackTraceElementClass) - .isNotEmpty() + .isNotEmpty assertThatDJVM(djvm.classFor("sandbox.java.util.EmptyStackException\$1DJVM")) .isAssignableFrom(RuntimeException::class.java) diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/DJVMTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/DJVMTest.kt index 6d5b6d62c8..176aab6755 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/DJVMTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/DJVMTest.kt @@ -1,8 +1,8 @@ package net.corda.djvm import org.assertj.core.api.Assertions.* -import org.junit.Assert.* -import org.junit.Test +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Test import sandbox.java.lang.sandbox import java.text.DecimalFormatSymbols diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/TestBase.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/TestBase.kt index 62848d10cd..f626113c85 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/TestBase.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/TestBase.kt @@ -20,10 +20,10 @@ import net.corda.djvm.source.ClassSource import net.corda.djvm.source.SourceClassLoader import net.corda.djvm.utilities.Discovery import net.corda.djvm.validation.RuleValidator -import org.junit.After -import org.junit.AfterClass -import org.junit.Assert.assertEquals -import org.junit.BeforeClass +import org.junit.jupiter.api.AfterAll +import org.junit.jupiter.api.AfterEach +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.BeforeAll import org.objectweb.asm.ClassReader import org.objectweb.asm.ClassWriter import org.objectweb.asm.Type @@ -81,7 +81,7 @@ abstract class TestBase { */ inline fun nameOf(prefix: String = "") = "$prefix${Type.getInternalName(T::class.java)}" - @BeforeClass + @BeforeAll @JvmStatic fun setupParentClassLoader() { val rootConfiguration = AnalysisConfiguration.createRoot( @@ -105,7 +105,7 @@ abstract class TestBase { parentClassLoader = SandboxClassLoader.createFor(parentConfiguration) } - @AfterClass + @AfterAll @JvmStatic fun destroyRootContext() { parentConfiguration.analysisConfiguration.close() @@ -126,7 +126,7 @@ abstract class TestBase { val context: AnalysisContext get() = AnalysisContext.fromConfiguration(configuration) - @After + @AfterEach fun destroy() { configuration.close() } diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/ClassAndMemberVisitorTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/ClassAndMemberVisitorTest.kt index 4bd8295927..9278fd3c03 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/ClassAndMemberVisitorTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/ClassAndMemberVisitorTest.kt @@ -13,7 +13,7 @@ import net.corda.djvm.code.instructions.TypeInstruction import net.corda.djvm.references.ClassRepresentation import net.corda.djvm.references.Member import org.assertj.core.api.Assertions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test @Suppress("unused") class ClassAndMemberVisitorTest : TestBase() { diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/ClassResolverTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/ClassResolverTest.kt index d1ae149cb7..f7d14a1aa2 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/ClassResolverTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/ClassResolverTest.kt @@ -1,7 +1,7 @@ package net.corda.djvm.analysis import org.assertj.core.api.Assertions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test class ClassResolverTest { diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/SourceLocationTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/SourceLocationTest.kt index c5919232b5..d751cde9b7 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/SourceLocationTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/SourceLocationTest.kt @@ -1,7 +1,7 @@ package net.corda.djvm.analysis import org.assertj.core.api.Assertions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test class SourceLocationTest { diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/WhitelistTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/WhitelistTest.kt index 74d223af13..c7cc5ae35f 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/WhitelistTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/analysis/WhitelistTest.kt @@ -2,7 +2,7 @@ package net.corda.djvm.analysis import net.corda.djvm.TestBase import org.assertj.core.api.Assertions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test class WhitelistTest : TestBase() { diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/code/ClassMutatorTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/code/ClassMutatorTest.kt index d729d9de2f..c5e301b91c 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/code/ClassMutatorTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/code/ClassMutatorTest.kt @@ -5,7 +5,7 @@ import net.corda.djvm.analysis.AnalysisRuntimeContext import net.corda.djvm.references.ClassRepresentation import net.corda.djvm.references.Member import org.assertj.core.api.Assertions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test import org.objectweb.asm.Opcodes.ACC_STRICT @Suppress("unused") diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/code/EmitterModuleTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/code/EmitterModuleTest.kt index fb37676669..fdfeadcafb 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/code/EmitterModuleTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/code/EmitterModuleTest.kt @@ -3,7 +3,7 @@ package net.corda.djvm.code import net.corda.djvm.TestBase import net.corda.djvm.analysis.ClassAndMemberVisitor import org.assertj.core.api.Assertions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test import org.objectweb.asm.ClassVisitor import org.objectweb.asm.MethodVisitor import org.objectweb.asm.Opcodes.NEW diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/costing/RuntimeCostTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/costing/RuntimeCostTest.kt index 0eb2d1c03e..f1402ecb2b 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/costing/RuntimeCostTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/costing/RuntimeCostTest.kt @@ -2,7 +2,7 @@ package net.corda.djvm.costing import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.assertThatExceptionOfType -import org.junit.Test +import org.junit.jupiter.api.Test import sandbox.net.corda.djvm.costing.ThresholdViolationError import kotlin.concurrent.thread diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/execution/SandboxEnumTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/execution/SandboxEnumTest.kt index 8f36267c90..77fc412dd4 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/execution/SandboxEnumTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/execution/SandboxEnumTest.kt @@ -2,7 +2,7 @@ package net.corda.djvm.execution import net.corda.djvm.TestBase import org.assertj.core.api.Assertions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test import java.util.* import java.util.function.Function diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/execution/SandboxExecutorTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/execution/SandboxExecutorTest.kt index 91faffcacd..59e675e9ac 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/execution/SandboxExecutorTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/execution/SandboxExecutorTest.kt @@ -11,7 +11,7 @@ import net.corda.djvm.assertions.AssertionExtensions.withProblem import net.corda.djvm.rewiring.SandboxClassLoadingException import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.assertThatExceptionOfType -import org.junit.Test +import org.junit.jupiter.api.Test import sandbox.net.corda.djvm.costing.ThresholdViolationError import sandbox.net.corda.djvm.rules.RuleViolationError import java.nio.file.Files @@ -431,7 +431,7 @@ class SandboxExecutorTest : TestBase() { override fun apply(input: Int): String? { return synchronized(this) { @Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN") - val javaObject = this as java.lang.Object + val javaObject = this as Object when(input) { 1 -> { javaObject.notify() diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/execution/SandboxThrowableTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/execution/SandboxThrowableTest.kt index 69608b40b5..b8930fa1c5 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/execution/SandboxThrowableTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/execution/SandboxThrowableTest.kt @@ -2,7 +2,7 @@ package net.corda.djvm.execution import net.corda.djvm.TestBase import org.assertj.core.api.Assertions.* -import org.junit.Test +import org.junit.jupiter.api.Test import java.util.function.Function class SandboxThrowableTest : TestBase() { diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/formatter/MemberFormatterTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/formatter/MemberFormatterTest.kt index 4a937ee996..251416bfe9 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/formatter/MemberFormatterTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/formatter/MemberFormatterTest.kt @@ -2,7 +2,7 @@ package net.corda.djvm.formatter import net.corda.djvm.formatting.MemberFormatter import org.assertj.core.api.Assertions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test class MemberFormatterTest { diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/references/ClassHierarchyTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/references/ClassHierarchyTest.kt index 6e8080743c..f029cf8c0b 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/references/ClassHierarchyTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/references/ClassHierarchyTest.kt @@ -1,7 +1,7 @@ package net.corda.djvm.references import org.assertj.core.api.Assertions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test import org.objectweb.asm.Opcodes class ClassHierarchyTest { @@ -39,7 +39,7 @@ class ClassHierarchyTest { classes.add(clazz1) val member = classes.getMember(clazz().name, "method", "()V") assertThat(member) - .isNotNull() + .isNotNull .hasFieldOrPropertyWithValue("className", clazz().name) .hasFieldOrPropertyWithValue("memberName", "method") .hasFieldOrPropertyWithValue("signature", "()V") @@ -63,7 +63,7 @@ class ClassHierarchyTest { classes.add(clazz2) val member = classes.getMember(clazz().name, "method", "()V") assertThat(member) - .isNotNull() + .isNotNull .hasFieldOrPropertyWithValue("className", clazz().name) .hasFieldOrPropertyWithValue("memberName", "method") .hasFieldOrPropertyWithValue("signature", "()V") @@ -78,7 +78,7 @@ class ClassHierarchyTest { classes.add(clazz2) val member = classes.getMember(clazz().name, "method", "()V") assertThat(member) - .isNotNull() + .isNotNull .hasFieldOrPropertyWithValue("className", clazz().name) .hasFieldOrPropertyWithValue("memberName", "method") .hasFieldOrPropertyWithValue("signature", "()V") @@ -98,7 +98,7 @@ class ClassHierarchyTest { classes.add(clazz4) val member = classes.getMember(clazz().name, "method", "()V") assertThat(member) - .isNotNull() + .isNotNull .hasFieldOrPropertyWithValue("className", clazz().name) .hasFieldOrPropertyWithValue("memberName", "method") .hasFieldOrPropertyWithValue("signature", "()V") @@ -123,42 +123,42 @@ class ClassHierarchyTest { var member = classes.getMember(clazz().name, "method", "()V") assertThat(member) - .isNotNull() + .isNotNull .hasFieldOrPropertyWithValue("className", clazz().name) .hasFieldOrPropertyWithValue("memberName", "method") .hasFieldOrPropertyWithValue("signature", "()V") member = classes.getMember(clazz().name, "method", "(I)V") assertThat(member) - .isNotNull() + .isNotNull .hasFieldOrPropertyWithValue("className", clazz().name) .hasFieldOrPropertyWithValue("memberName", "method") .hasFieldOrPropertyWithValue("signature", "(I)V") member = classes.getMember(clazz().name, "method", "(J)V") assertThat(member) - .isNotNull() + .isNotNull .hasFieldOrPropertyWithValue("className", clazz().name) .hasFieldOrPropertyWithValue("memberName", "method") .hasFieldOrPropertyWithValue("signature", "(J)V") member = classes.getMember(clazz().name, "method", "(B)V") assertThat(member) - .isNotNull() + .isNotNull .hasFieldOrPropertyWithValue("className", clazz().name) .hasFieldOrPropertyWithValue("memberName", "method") .hasFieldOrPropertyWithValue("signature", "(B)V") member = classes.getMember(clazz().name, "anotherMethod", "([B)V") assertThat(member) - .isNotNull() + .isNotNull .hasFieldOrPropertyWithValue("className", clazz().name) .hasFieldOrPropertyWithValue("memberName", "anotherMethod") .hasFieldOrPropertyWithValue("signature", "([B)V") member = classes.getMember(clazz().name, "anotherMethod", "([B)V") assertThat(member) - .isNotNull() + .isNotNull .hasFieldOrPropertyWithValue("className", clazz().name) .hasFieldOrPropertyWithValue("memberName", "anotherMethod") .hasFieldOrPropertyWithValue("signature", "([B)V") @@ -183,8 +183,8 @@ class ClassHierarchyTest { val apiVersion = Opcodes.V1_8 val access = 0 val className = classModule.getBinaryClassName(it.name) - val superClassName = TSuper::class.java.let { - classModule.getBinaryClassName(it.name) + val superClassName = TSuper::class.java.let { s -> + classModule.getBinaryClassName(s.name) } ClassRepresentation(apiVersion, access, className, superClassName, sourceFile = "${it.simpleName}.kt") } diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/references/ClassModuleTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/references/ClassModuleTest.kt index fd62f4f2fe..80de94ebf5 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/references/ClassModuleTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/references/ClassModuleTest.kt @@ -1,7 +1,7 @@ package net.corda.djvm.references import org.assertj.core.api.Assertions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test class ClassModuleTest { diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/references/MemberModuleTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/references/MemberModuleTest.kt index 71cd99cbf7..1b2464b3a8 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/references/MemberModuleTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/references/MemberModuleTest.kt @@ -3,7 +3,7 @@ package net.corda.djvm.references import net.corda.djvm.annotations.NonDeterministic import org.assertj.core.api.Assertions.assertThat import org.jetbrains.annotations.NotNull -import org.junit.Test +import org.junit.jupiter.api.Test import org.objectweb.asm.Type class MemberModuleTest { @@ -132,7 +132,7 @@ class MemberModuleTest { assertThat(module.isConstructor(member(""))).isTrue() } - private val java.lang.Class<*>.descriptor: String + private val Class<*>.descriptor: String get() = Type.getDescriptor(this) private fun member(member: String) = diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/rewiring/ClassRewriterTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/rewiring/ClassRewriterTest.kt index 8e1b013285..b4ecdf6d9e 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/rewiring/ClassRewriterTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/rewiring/ClassRewriterTest.kt @@ -5,7 +5,7 @@ import net.corda.djvm.TestBase import net.corda.djvm.assertions.AssertionExtensions.assertThat import net.corda.djvm.execution.ExecutionProfile import org.assertj.core.api.Assertions.* -import org.junit.Test +import org.junit.jupiter.api.Test import sandbox.net.corda.djvm.costing.ThresholdViolationError import java.nio.file.Paths import java.util.* diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/rules/ReferenceExtractorTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/rules/ReferenceExtractorTest.kt index bde75b7feb..3bd72f0a4a 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/rules/ReferenceExtractorTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/rules/ReferenceExtractorTest.kt @@ -3,7 +3,7 @@ package net.corda.djvm.rules import foo.bar.sandbox.Callable import net.corda.djvm.TestBase import net.corda.djvm.assertions.AssertionExtensions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test import org.objectweb.asm.Type import java.util.* diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/rules/RuleValidatorTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/rules/RuleValidatorTest.kt index cd37df166a..3a67f2d0ad 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/rules/RuleValidatorTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/rules/RuleValidatorTest.kt @@ -4,7 +4,7 @@ import foo.bar.sandbox.Callable import net.corda.djvm.TestBase import net.corda.djvm.assertions.AssertionExtensions.assertThat import net.corda.djvm.messages.Severity -import org.junit.Test +import org.junit.jupiter.api.Test import org.objectweb.asm.Opcodes import sandbox.greymalkin.StringReturner diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/source/SourceClassLoaderTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/source/SourceClassLoaderTest.kt index 401e0b5c0a..8afb9d80d1 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/source/SourceClassLoaderTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/source/SourceClassLoaderTest.kt @@ -3,8 +3,9 @@ package net.corda.djvm.source import net.corda.djvm.analysis.ClassResolver import net.corda.djvm.analysis.Whitelist import org.assertj.core.api.Assertions.assertThat -import org.junit.After -import org.junit.Test +import org.junit.jupiter.api.AfterEach +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertThrows import java.nio.file.Files import java.nio.file.Path @@ -19,10 +20,12 @@ class SourceClassLoaderTest { assertThat(clazz.simpleName).isEqualTo("Boolean") } - @Test(expected = ClassNotFoundException::class) + @Test fun `cannot load arbitrary class when no files are provided to the class loader`() { val classLoader = SourceClassLoader(emptyList(), classResolver) - classLoader.loadClass("net.foo.NonExistentClass") + assertThrows { + classLoader.loadClass("net.foo.NonExistentClass") + } } @Test @@ -34,11 +37,13 @@ class SourceClassLoaderTest { } } - @Test(expected = ClassNotFoundException::class) + @Test fun `cannot load arbitrary class when JAR file is provided to the class loader`() { useTemporaryFile("jar-with-single-class.jar") { val classLoader = SourceClassLoader(this, classResolver) - classLoader.loadClass("net.foo.NonExistentClass") + assertThrows { + classLoader.loadClass("net.foo.NonExistentClass") + } } } @@ -53,11 +58,13 @@ class SourceClassLoaderTest { } } - @Test(expected = ClassNotFoundException::class) + @Test fun `cannot load arbitrary class when multiple JAR files are provided to the class loader`() { useTemporaryFile("jar-with-single-class.jar", "jar-with-two-classes.jar") { val classLoader = SourceClassLoader(this, classResolver) - classLoader.loadClass("com.somewhere.NonExistentClass") + assertThrows { + classLoader.loadClass("com.somewhere.NonExistentClass") + } } } @@ -75,7 +82,7 @@ class SourceClassLoaderTest { } } - @After + @AfterEach fun cleanup() { openedFiles.forEach { try { diff --git a/djvm/djvm/src/test/kotlin/net/corda/djvm/utilities/DiscoveryTest.kt b/djvm/djvm/src/test/kotlin/net/corda/djvm/utilities/DiscoveryTest.kt index e470165426..3ceee02dbb 100644 --- a/djvm/djvm/src/test/kotlin/net/corda/djvm/utilities/DiscoveryTest.kt +++ b/djvm/djvm/src/test/kotlin/net/corda/djvm/utilities/DiscoveryTest.kt @@ -5,7 +5,7 @@ import net.corda.djvm.code.DefinitionProvider import net.corda.djvm.code.Emitter import net.corda.djvm.rules.Rule import org.assertj.core.api.Assertions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test class DiscoveryTest : TestBase() { diff --git a/djvm/gradle.properties b/djvm/gradle.properties index 582007711d..416624c98b 100644 --- a/djvm/gradle.properties +++ b/djvm/gradle.properties @@ -6,7 +6,8 @@ assertj_version=3.12.1 class_graph_version=4.6.12 jcabi_manifests_version=1.1 jopt_simple_version=5.0.2 -junit_version=4.12 +junit_jupiter_version=5.4.2 +junit_platform_version=1.4.2 kotlin_version=1.2.71 log4j_version=2.11.2 picocli_version=3.8.0 diff --git a/djvm/gradle/wrapper/gradle-wrapper.properties b/djvm/gradle/wrapper/gradle-wrapper.properties index 1b2b07cfb0..ee69dd68d1 100644 --- a/djvm/gradle/wrapper/gradle-wrapper.properties +++ b/djvm/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists