diff --git a/cli/src/test/java/de/jplag/cli/MergingOptionsTest.java b/cli/src/test/java/de/jplag/cli/MergingOptionsTest.java index 595c420b9..47eeb1cf3 100644 --- a/cli/src/test/java/de/jplag/cli/MergingOptionsTest.java +++ b/cli/src/test/java/de/jplag/cli/MergingOptionsTest.java @@ -1,5 +1,9 @@ package de.jplag.cli; +import static de.jplag.cli.test.CliArgument.GAP_SIZE; +import static de.jplag.cli.test.CliArgument.MERGING_ENABLED; +import static de.jplag.cli.test.CliArgument.NEIGHBOR_LENGTH; +import static de.jplag.cli.test.CliArgument.REQUIRED_MERGES; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -27,5 +31,22 @@ void testMergingDefault() throws ExitException, IOException { assertEquals(MergingOptions.DEFAULT_ENABLED, options.mergingOptions().enabled()); assertEquals(MergingOptions.DEFAULT_NEIGHBOR_LENGTH, options.mergingOptions().minimumNeighborLength()); assertEquals(MergingOptions.DEFAULT_GAP_SIZE, options.mergingOptions().maximumGapSize()); + assertEquals(MergingOptions.DEFAULT_REQUIRED_MERGES, options.mergingOptions().minimumRequiredMerges()); } + + @Test + @DisplayName("Test if custom values are correctly propagated when creating merging options from CLI") + void testMergingCustom() throws ExitException, IOException { + int customNumber = 7; + + JPlagOptions options = runCliForOptions(args -> args.with(MERGING_ENABLED).with(NEIGHBOR_LENGTH, customNumber).with(GAP_SIZE, customNumber) + .with(REQUIRED_MERGES, customNumber)); + + assertNotNull(options.mergingOptions()); + assertEquals(true, options.mergingOptions().enabled()); + assertEquals(customNumber, options.mergingOptions().minimumNeighborLength()); + assertEquals(customNumber, options.mergingOptions().maximumGapSize()); + assertEquals(customNumber, options.mergingOptions().minimumRequiredMerges()); + } + } diff --git a/cli/src/test/java/de/jplag/cli/test/CliArgument.java b/cli/src/test/java/de/jplag/cli/test/CliArgument.java index 168be61d9..6731b5a3c 100644 --- a/cli/src/test/java/de/jplag/cli/test/CliArgument.java +++ b/cli/src/test/java/de/jplag/cli/test/CliArgument.java @@ -36,4 +36,9 @@ public record CliArgument(String name, boolean isPositional) { public static CliArgument EXCLUDE_FILES = new CliArgument<>("x", false); public static CliArgument MODE = new CliArgument<>("mode", false); + + public static CliArgument MERGING_ENABLED = new CliArgument<>("match-merging", false); + public static CliArgument NEIGHBOR_LENGTH = new CliArgument<>("neighbor-length", false); + public static CliArgument GAP_SIZE = new CliArgument<>("gap-size", false); + public static CliArgument REQUIRED_MERGES = new CliArgument<>("required-merges", false); }