diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/junit/VersionStrategy.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/junit/VersionStrategy.java index 570082620..e75d234d0 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/junit/VersionStrategy.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/junit/VersionStrategy.java @@ -16,7 +16,6 @@ package io.github.ascopes.jct.junit; import io.github.ascopes.jct.compilers.JctCompiler; -import java.util.function.BiConsumer; import javax.annotation.concurrent.ThreadSafe; import org.apiguardian.api.API; import org.apiguardian.api.API.Status; @@ -35,8 +34,8 @@ public enum VersionStrategy { * Set the {@link JctCompiler#release release}. */ RELEASE( - JctCompiler::release, (compiler, version) -> compiler + .release(version) .name(compiler.getName() + " (release = Java " + version + ")") ), @@ -44,8 +43,8 @@ public enum VersionStrategy { * Set the {@link JctCompiler#source} source}. */ SOURCE( - JctCompiler::source, (compiler, version) -> compiler + .source(version) .name(compiler.getName() + " (source = Java " + version + ")") ), @@ -53,8 +52,8 @@ public enum VersionStrategy { * Set the {@link JctCompiler#target} target}. */ TARGET( - JctCompiler::target, (compiler, version) -> compiler + .target(version) .name(compiler.getName() + " (target = Java " + version + ")") ), @@ -64,20 +63,14 @@ public enum VersionStrategy { SOURCE_AND_TARGET( (compiler, version) -> compiler .source(version) - .target(version), - (compiler, version) -> compiler + .target(version) .name(compiler.getName() + " (source and target = Java " + version + ")") ); - private final BiConsumer, Integer> versionSetter; - private final BiConsumer, Integer> descriptionFormatter; + private final VersionConsumer versionSetter; - VersionStrategy( - BiConsumer, Integer> versionSetter, - BiConsumer, Integer> descriptionFormatter - ) { + VersionStrategy(VersionConsumer versionSetter) { this.versionSetter = versionSetter; - this.descriptionFormatter = descriptionFormatter; } /** @@ -87,7 +80,11 @@ public enum VersionStrategy { * @param version the version to set. */ public void configureCompiler(JctCompiler compiler, int version) { - versionSetter.accept(compiler, version); - descriptionFormatter.accept(compiler, version); + versionSetter.apply(compiler, version); + } + + @FunctionalInterface + private interface VersionConsumer { + void apply(JctCompiler compiler, int version); } } diff --git a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/junit/AbstractCompilersProviderTest.java b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/junit/AbstractCompilersProviderTest.java index d45fb3805..a9e6ef2f5 100644 --- a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/junit/AbstractCompilersProviderTest.java +++ b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/junit/AbstractCompilersProviderTest.java @@ -39,6 +39,7 @@ import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; +import org.mockito.Answers; import org.opentest4j.TestAbortedException; /** @@ -380,7 +381,9 @@ final void configureInternals( protected JctCompiler initializeNewCompiler() { return mockRaw(JctCompiler.class) .>upcastedTo() - .build(withSettings().name("mock compiler")); + .build(withSettings() + .name("mock compiler") + .defaultAnswer(Answers.RETURNS_SELF)); } @Override