Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -35,26 +34,26 @@ public enum VersionStrategy {
* Set the {@link JctCompiler#release release}.
*/
RELEASE(
JctCompiler::release,
(compiler, version) -> compiler
.release(version)
.name(compiler.getName() + " (release = Java " + version + ")")
),

/**
* Set the {@link JctCompiler#source} source}.
*/
SOURCE(
JctCompiler::source,
(compiler, version) -> compiler
.source(version)
.name(compiler.getName() + " (source = Java " + version + ")")
),

/**
* Set the {@link JctCompiler#target} target}.
*/
TARGET(
JctCompiler::target,
(compiler, version) -> compiler
.target(version)
.name(compiler.getName() + " (target = Java " + version + ")")
),

Expand All @@ -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<JctCompiler<?, ?>, Integer> versionSetter;
private final BiConsumer<JctCompiler<?, ?>, Integer> descriptionFormatter;
private final VersionConsumer versionSetter;

VersionStrategy(
BiConsumer<JctCompiler<?, ?>, Integer> versionSetter,
BiConsumer<JctCompiler<?, ?>, Integer> descriptionFormatter
) {
VersionStrategy(VersionConsumer versionSetter) {
this.versionSetter = versionSetter;
this.descriptionFormatter = descriptionFormatter;
}

/**
Expand All @@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

/**
Expand Down Expand Up @@ -380,7 +381,9 @@ final void configureInternals(
protected JctCompiler<?, ?> initializeNewCompiler() {
return mockRaw(JctCompiler.class)
.<JctCompiler<?, ?>>upcastedTo()
.build(withSettings().name("mock compiler"));
.build(withSettings()
.name("mock compiler")
.defaultAnswer(Answers.RETURNS_SELF));
}

@Override
Expand Down