@Test public void testTooSmallUsageWidthPropertyValue() throws UnsupportedEncodingException { PrintStream originalErr = System.err; ByteArrayOutputStream baos = new ByteArrayOutputStream(2500); System.setErr(new PrintStream(baos)); System.clearProperty("picocli.trace"); System.setProperty("picocli.usage.width", "54"); int actual = new UsageMessageSpec().width(); System.setErr(originalErr); System.clearProperty("picocli.usage.width"); assertEquals(55, actual); assertEquals(format("[picocli WARN] Invalid picocli.usage.width value 54. Using minimum usage width 55.%n"), baos.toString("UTF-8")); }
@Test public void testInvalidUsageWidthPropertyValue() throws UnsupportedEncodingException { PrintStream originalErr = System.err; ByteArrayOutputStream baos = new ByteArrayOutputStream(2500); System.setErr(new PrintStream(baos)); System.clearProperty("picocli.trace"); System.setProperty("picocli.usage.width", "INVALID"); int actual = new UsageMessageSpec().width(); System.setErr(originalErr); System.clearProperty("picocli.usage.width"); assertEquals(80, actual); assertEquals(format("[picocli WARN] Invalid picocli.usage.width value 'INVALID'. Using usage width 80.%n"), baos.toString("UTF-8")); }
@Test public void testUsageHelp_width_configurableWithSystemProperty() { System.setProperty("picocli.usage.width", "67"); try { assertEquals(67, new UsageMessageSpec().width()); } finally { System.clearProperty("picocli.usage.width"); } }
@Test public void testUsageSpec_CustomSynopsisSetter() { UsageMessageSpec usage = new UsageMessageSpec(); assertArrayEquals(new String[0], usage.customSynopsis()); usage.customSynopsis("abc", "def"); assertArrayEquals(new String[] {"abc", "def"}, usage.customSynopsis()); }
@Test public void testUsageSpec_InitFromMixin() { UsageMessageSpec usage = new UsageMessageSpec(); assertFalse(usage.hidden()); UsageMessageSpec mixin = new UsageMessageSpec(); mixin.hidden(true); usage.initFromMixin(mixin, null); assertTrue(usage.hidden()); }
@Test public void testUsageHelp_width_default80() { assertEquals(80, UsageMessageSpec.DEFAULT_USAGE_WIDTH); assertEquals(UsageMessageSpec.DEFAULT_USAGE_WIDTH, new UsageMessageSpec().width()); }
@Test public void testUsageHelp_width_configurableWithSystemProperty() { System.setProperty("picocli.usage.width", "67"); try { assertEquals(67, new UsageMessageSpec().width()); } finally { System.clearProperty("picocli.usage.width"); } }
@Test public void testCommandSpecUsageMessageSetter() { CommandSpec spec = CommandSpec.wrapWithoutInspection(null); UsageMessageSpec old = spec.usageMessage(); assertSame(old, spec.usageMessage()); assertArrayEquals(new String[0], spec.usageMessage().description()); UsageMessageSpec update = new UsageMessageSpec().description("hi"); spec.usageMessage(update); assertSame(old, spec.usageMessage()); assertArrayEquals(new String[] {"hi"}, spec.usageMessage().description()); }
@Test public void testShouldGetUsageWidthFromSystemProperties() { int defaultWidth = new UsageMessageSpec().width(); assertEquals(80, defaultWidth); try { System.setProperty("picocli.usage.width", "123"); int width = new UsageMessageSpec().width(); assertEquals(123, width); } finally { System.setProperty("picocli.usage.width", String.valueOf(defaultWidth)); } }
@Test(expected = InitializationException.class) public void testUsageHelp_width_setterDisallowsValuesBelow55() { new UsageMessageSpec().width(54); }
@Test public void testUsageSpec_InitFromMixin() { UsageMessageSpec usage = new UsageMessageSpec(); assertFalse(usage.hidden()); UsageMessageSpec mixin = new UsageMessageSpec(); mixin.hidden(true); usage.initFromMixin(mixin, null); assertTrue(usage.hidden()); }
@Test public void testCommandSpecUsageMessageSetter() { CommandSpec spec = CommandSpec.wrapWithoutInspection(null); UsageMessageSpec old = spec.usageMessage(); assertSame(old, spec.usageMessage()); assertArrayEquals(new String[0], spec.usageMessage().description()); UsageMessageSpec update = new UsageMessageSpec().description("hi"); spec.usageMessage(update); assertSame(old, spec.usageMessage()); assertArrayEquals(new String[] {"hi"}, spec.usageMessage().description()); }
@Test public void testUsageHelp_width_setter() { UsageMessageSpec spec = new UsageMessageSpec(); spec.width(67); assertEquals(67, spec.width()); }
@Test public void testUsageSpec_CustomSynopsisSetter() { UsageMessageSpec usage = new UsageMessageSpec(); assertArrayEquals(new String[0], usage.customSynopsis()); usage.customSynopsis("abc", "def"); assertArrayEquals(new String[] {"abc", "def"}, usage.customSynopsis()); }
@Test public void testUsageHelp_width_default80() { assertEquals(80, UsageMessageSpec.DEFAULT_USAGE_WIDTH); assertEquals(UsageMessageSpec.DEFAULT_USAGE_WIDTH, new UsageMessageSpec().width()); }
@Test public void testShouldGetUsageWidthFromSystemProperties() { int defaultWidth = new UsageMessageSpec().width(); assertEquals(80, defaultWidth); try { System.setProperty("picocli.usage.width", "123"); int width = new UsageMessageSpec().width(); assertEquals(123, width); } finally { System.setProperty("picocli.usage.width", String.valueOf(defaultWidth)); } }
@Test public void testUsageSpec_commandListHeading() { UsageMessageSpec usage = new UsageMessageSpec(); assertEquals("Commands:%n", usage.commandListHeading()); usage.commandListHeading("abcdef"); assertEquals("abcdef", usage.commandListHeading()); }
@Test public void testUsageSpec_HiddenSetter() { UsageMessageSpec usage = new UsageMessageSpec(); assertFalse(usage.hidden()); usage.hidden(true); assertTrue(usage.hidden()); }
@Test public void testUsageHelp_width_setterAllowsValuesAt55OrHigher() { assertEquals(55, new UsageMessageSpec().width(55).width()); assertEquals(Integer.MAX_VALUE, new UsageMessageSpec().width(Integer.MAX_VALUE).width()); }
@Test public void testUsageHelp_width_SystemPropertyOverrulesSetValue() { System.setProperty("picocli.usage.width", "67"); try { assertEquals(67, new UsageMessageSpec().width(123).width()); } finally { System.clearProperty("picocli.usage.width"); } }