This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-cli.git
commit 1d3197e550fc21ac56aaf8231aa18ae05cc1c2d2 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Sat May 11 13:59:31 2024 -0400 Sort members --- .../java/org/apache/commons/cli/HelpFormatter.java | 16 ++-- .../apache/commons/cli/AbstractParserTestCase.java | 8 +- .../org/apache/commons/cli/HelpFormatterTest.java | 106 ++++++++++----------- 3 files changed, 65 insertions(+), 65 deletions(-) diff --git a/src/main/java/org/apache/commons/cli/HelpFormatter.java b/src/main/java/org/apache/commons/cli/HelpFormatter.java index aa2ced3..062784c 100644 --- a/src/main/java/org/apache/commons/cli/HelpFormatter.java +++ b/src/main/java/org/apache/commons/cli/HelpFormatter.java @@ -109,23 +109,23 @@ public class HelpFormatter { /** * Sets whether to show deprecated options. * - * @param useDefaultFormat if {@code true} use the default format, otherwise clear the formatter. + * @param showDeprecatedFunc Specify the format for the deprecated options. * @return this. + * @since 1.8.0 */ - public Builder setShowDeprecated(final boolean useDefaultFormat) { - return setShowDeprecated(useDefaultFormat ? DEFAULT_DEPRECATED_FORMAT : null); + public Builder setShowDeprecated(final BiFunction<String, Option, String> showDeprecatedFunc) { + this.deprecatedFormatFunc = showDeprecatedFunc; + return this; } /** * Sets whether to show deprecated options. * - * @param showDeprecatedFunc Specify the format for the deprecated options. + * @param useDefaultFormat if {@code true} use the default format, otherwise clear the formatter. * @return this. - * @since 1.8.0 */ - public Builder setShowDeprecated(final BiFunction<String, Option, String> showDeprecatedFunc) { - this.deprecatedFormatFunc = showDeprecatedFunc; - return this; + public Builder setShowDeprecated(final boolean useDefaultFormat) { + return setShowDeprecated(useDefaultFormat ? DEFAULT_DEPRECATED_FORMAT : null); } } diff --git a/src/test/java/org/apache/commons/cli/AbstractParserTestCase.java b/src/test/java/org/apache/commons/cli/AbstractParserTestCase.java index 69c61e4..0114098 100644 --- a/src/test/java/org/apache/commons/cli/AbstractParserTestCase.java +++ b/src/test/java/org/apache/commons/cli/AbstractParserTestCase.java @@ -421,8 +421,8 @@ public abstract class AbstractParserTestCase { } @Test - public void testMultipleWithNull() throws Exception { - final String[] args = { null, "-c", null, "foobar", null, "-b", null, "toast", null }; + public void testMultipleWithLong() throws Exception { + final String[] args = { "--copt", "foobar", "--bfile", "toast" }; CommandLine cl = parser.parse(options, args, true); assertTrue(cl.hasOption("c"), "Confirm -c is set"); @@ -438,8 +438,8 @@ public abstract class AbstractParserTestCase { } @Test - public void testMultipleWithLong() throws Exception { - final String[] args = { "--copt", "foobar", "--bfile", "toast" }; + public void testMultipleWithNull() throws Exception { + final String[] args = { null, "-c", null, "foobar", null, "-b", null, "toast", null }; CommandLine cl = parser.parse(options, args, true); assertTrue(cl.hasOption("c"), "Confirm -c is set"); diff --git a/src/test/java/org/apache/commons/cli/HelpFormatterTest.java b/src/test/java/org/apache/commons/cli/HelpFormatterTest.java index 6c1a31a..e7e6cb9 100644 --- a/src/test/java/org/apache/commons/cli/HelpFormatterTest.java +++ b/src/test/java/org/apache/commons/cli/HelpFormatterTest.java @@ -40,6 +40,39 @@ import org.junit.jupiter.params.provider.MethodSource; public class HelpFormatterTest { private static final String EOL = System.lineSeparator(); + static Stream<Arguments> deprecatedOptionsProvider() { + List<Arguments> lst = new ArrayList<>(); + Option option = Option.builder("a").longOpt("aaa").desc("dddd dddd dddd") + .deprecated(DeprecatedAttributes.builder().setForRemoval(true).setSince("now") + .setDescription("Why why why").get()) + .build(); + + HelpFormatter hf = HelpFormatter.builder().setShowDeprecated(false).get(); + lst.add(Arguments.of(hf, option, "dddd dddd dddd")); + + hf = HelpFormatter.builder().setShowDeprecated(true).get(); + lst.add(Arguments.of(hf, option, "[Deprecated] dddd dddd dddd")); + + hf = HelpFormatter.builder().setShowDeprecated((d, o) -> String.format("%s [%s]", d, o.getDeprecated())).get(); + lst.add(Arguments.of(hf, option, "dddd dddd dddd [Deprecated for removal since now: Why why why]")); + + option = Option.builder("a").longOpt("aaa") + .deprecated(DeprecatedAttributes.builder().setForRemoval(true).setSince("now") + .setDescription("Why why why").get()) + .build(); + + hf = HelpFormatter.builder().setShowDeprecated(false).get(); + lst.add(Arguments.of(hf, option, "")); + + hf = HelpFormatter.builder().setShowDeprecated(true).get(); + lst.add(Arguments.of(hf, option, "[Deprecated]")); + + hf = HelpFormatter.builder().setShowDeprecated((d, o) -> String.format("%s [%s]", d, o.getDeprecated())).get(); + lst.add(Arguments.of(hf, option, "[Deprecated for removal since now: Why why why]")); + + return lst.stream(); + } + @Test public void testAccessors() { final HelpFormatter formatter = new HelpFormatter(); @@ -366,6 +399,26 @@ public class HelpFormatterTest { //@formatter:on } + @ParameterizedTest + @MethodSource("deprecatedOptionsProvider") + public void testPrintDeprecatedOptions(final HelpFormatter hf, final Option option, final String expectedTxt) { + final StringBuffer sb = new StringBuffer(); + + final int leftPad = 1; + final int descPad = 3; + final String lpad = hf.createPadding(leftPad); + final String dpad = hf.createPadding(descPad); + Options options; + String expected = lpad + "-a,--aaa"; + + options = new Options().addOption(option); + if (expectedTxt.length() > 0) { + expected = expected + dpad + expectedTxt; + } + hf.renderOptions(sb, 160, options, leftPad, descPad); + assertEquals(expected, sb.toString()); + } + @Test public void testPrintHelpNewlineFooter() { final HelpFormatter formatter = new HelpFormatter(); @@ -490,59 +543,6 @@ public class HelpFormatterTest { assertEquals(expected, sb.toString(), "multiple wrapped options"); } - @ParameterizedTest - @MethodSource("deprecatedOptionsProvider") - public void testPrintDeprecatedOptions(final HelpFormatter hf, final Option option, final String expectedTxt) { - final StringBuffer sb = new StringBuffer(); - - final int leftPad = 1; - final int descPad = 3; - final String lpad = hf.createPadding(leftPad); - final String dpad = hf.createPadding(descPad); - Options options; - String expected = lpad + "-a,--aaa"; - - options = new Options().addOption(option); - if (expectedTxt.length() > 0) { - expected = expected + dpad + expectedTxt; - } - hf.renderOptions(sb, 160, options, leftPad, descPad); - assertEquals(expected, sb.toString()); - } - - static Stream<Arguments> deprecatedOptionsProvider() { - List<Arguments> lst = new ArrayList<>(); - Option option = Option.builder("a").longOpt("aaa").desc("dddd dddd dddd") - .deprecated(DeprecatedAttributes.builder().setForRemoval(true).setSince("now") - .setDescription("Why why why").get()) - .build(); - - HelpFormatter hf = HelpFormatter.builder().setShowDeprecated(false).get(); - lst.add(Arguments.of(hf, option, "dddd dddd dddd")); - - hf = HelpFormatter.builder().setShowDeprecated(true).get(); - lst.add(Arguments.of(hf, option, "[Deprecated] dddd dddd dddd")); - - hf = HelpFormatter.builder().setShowDeprecated((d, o) -> String.format("%s [%s]", d, o.getDeprecated())).get(); - lst.add(Arguments.of(hf, option, "dddd dddd dddd [Deprecated for removal since now: Why why why]")); - - option = Option.builder("a").longOpt("aaa") - .deprecated(DeprecatedAttributes.builder().setForRemoval(true).setSince("now") - .setDescription("Why why why").get()) - .build(); - - hf = HelpFormatter.builder().setShowDeprecated(false).get(); - lst.add(Arguments.of(hf, option, "")); - - hf = HelpFormatter.builder().setShowDeprecated(true).get(); - lst.add(Arguments.of(hf, option, "[Deprecated]")); - - hf = HelpFormatter.builder().setShowDeprecated((d, o) -> String.format("%s [%s]", d, o.getDeprecated())).get(); - lst.add(Arguments.of(hf, option, "[Deprecated for removal since now: Why why why]")); - - return lst.stream(); - } - @Test public void testPrintOptionWithEmptyArgNameUsage() { final Option option = new Option("f", true, null);