diff --git a/src/test/java/io/airlift/airline/ArgsRequiredWrongMain.java b/src/test/java/io/airlift/airline/ArgsRequiredWrongMain.java index 5036fe237..5802dd961 100644 --- a/src/test/java/io/airlift/airline/ArgsRequiredWrongMain.java +++ b/src/test/java/io/airlift/airline/ArgsRequiredWrongMain.java @@ -1,6 +1,6 @@ package io.airlift.airline; -@Command(name="ArgsRequiredWrongMain") +@Command(name = "ArgsRequiredWrongMain") public class ArgsRequiredWrongMain { @Arguments(required = true) diff --git a/src/test/java/io/airlift/airline/Git.java b/src/test/java/io/airlift/airline/Git.java index 5a508fa58..e20589b83 100644 --- a/src/test/java/io/airlift/airline/Git.java +++ b/src/test/java/io/airlift/airline/Git.java @@ -13,21 +13,22 @@ public static void main(String... args) CliBuilder builder = Cli.builder("git") .withDescription("the stupid content tracker") .withDefaultCommand(Help.class) - .withCommands(Help.class, - Add.class); + .withCommand(Help.class) + .withCommand(Add.class); builder.withGroup("remote") .withDescription("Manage set of tracked repositories") .withDefaultCommand(RemoteShow.class) - .withCommands(RemoteShow.class, - RemoteAdd.class); + .withCommand(RemoteShow.class) + .withCommand(RemoteAdd.class); Cli gitParser = builder.build(); gitParser.parse(args).run(); } - public static class GitCommand implements Runnable + public static class GitCommand + implements Runnable { @Option(type = GLOBAL, name = "-v", description = "Verbose mode") public boolean verbose; @@ -39,7 +40,8 @@ public void run() } @Command(name = "add", description = "Add file contents to the index") - public static class Add extends GitCommand + public static class Add + extends GitCommand { @Arguments(description = "Patterns of files to be added") public List patterns; @@ -49,7 +51,8 @@ public static class Add extends GitCommand } @Command(name = "show", description = "Gives some information about the remote ") - public static class RemoteShow extends GitCommand + public static class RemoteShow + extends GitCommand { @Option(name = "-n", description = "Do not query remote heads") public boolean noQuery; @@ -59,7 +62,8 @@ public static class RemoteShow extends GitCommand } @Command(name = "add", description = "Adds a remote") - public static class RemoteAdd extends GitCommand + public static class RemoteAdd + extends GitCommand { @Option(name = "-t", description = "Track only a specific branch") public String branch; diff --git a/src/test/java/io/airlift/airline/CommandTest.java b/src/test/java/io/airlift/airline/TestCommand.java similarity index 70% rename from src/test/java/io/airlift/airline/CommandTest.java rename to src/test/java/io/airlift/airline/TestCommand.java index e2c203ffd..4e8bd77b7 100644 --- a/src/test/java/io/airlift/airline/CommandTest.java +++ b/src/test/java/io/airlift/airline/TestCommand.java @@ -37,7 +37,6 @@ import io.airlift.airline.command.CommandAdd; import io.airlift.airline.command.CommandCommit; import io.airlift.airline.model.CommandMetadata; -import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -48,11 +47,14 @@ import static com.google.common.base.Predicates.compose; import static com.google.common.base.Predicates.equalTo; import static com.google.common.collect.Iterables.find; -import static io.airlift.airline.TestUtil.singleCommandParser; +import static io.airlift.airline.TestingUtil.singleCommandParser; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertTrue; -@Test -public class CommandTest +public class TestCommand { + @Test public void simpleArgs() throws ParseException { @@ -60,15 +62,16 @@ public void simpleArgs() "-debug", "-log", "2", "-float", "1.2", "-double", "1.3", "-bigdecimal", "1.4", "-groups", "unit", "a", "b", "c"); - Assert.assertTrue(args.debug); - Assert.assertEquals(args.verbose.intValue(), 2); - Assert.assertEquals(args.groups, "unit"); - Assert.assertEquals(args.parameters, Arrays.asList("a", "b", "c")); - Assert.assertEquals(args.floa, 1.2f, 0.1f); - Assert.assertEquals(args.doub, 1.3f, 0.1f); - Assert.assertEquals(args.bigd, new BigDecimal("1.4")); + assertTrue(args.debug); + assertEquals(args.verbose.intValue(), 2); + assertEquals(args.groups, "unit"); + assertEquals(args.parameters, Arrays.asList("a", "b", "c")); + assertEquals(args.floa, 1.2f, 0.1f); + assertEquals(args.doub, 1.3f, 0.1f); + assertEquals(args.bigd, new BigDecimal("1.4")); } + @Test public void equalsArgs() throws ParseException { @@ -76,54 +79,57 @@ public void equalsArgs() "-debug", "-log=2", "-float=1.2", "-double=1.3", "-bigdecimal=1.4", "-groups=unit", "a", "b", "c"); - Assert.assertTrue(args.debug); - Assert.assertEquals(args.verbose.intValue(), 2); - Assert.assertEquals(args.groups, "unit"); - Assert.assertEquals(args.parameters, Arrays.asList("a", "b", "c")); - Assert.assertEquals(args.floa, 1.2f, 0.1f); - Assert.assertEquals(args.doub, 1.3f, 0.1f); - Assert.assertEquals(args.bigd, new BigDecimal("1.4")); + assertTrue(args.debug); + assertEquals(args.verbose.intValue(), 2); + assertEquals(args.groups, "unit"); + assertEquals(args.parameters, Arrays.asList("a", "b", "c")); + assertEquals(args.floa, 1.2f, 0.1f); + assertEquals(args.doub, 1.3f, 0.1f); + assertEquals(args.bigd, new BigDecimal("1.4")); } + @Test public void classicGetoptArgs() throws ParseException { ArgsSingleChar args = singleCommandParser(ArgsSingleChar.class).parse("ArgsSingleChar", "-lg", "-dsn", "-pa-p", "-2f", "-z", "--Dfoo"); - Assert.assertTrue(args.l); - Assert.assertTrue(args.g); - Assert.assertTrue(args.d); - Assert.assertEquals(args.s, "n"); - Assert.assertEquals(args.p, "a-p"); - Assert.assertFalse(args.n); - Assert.assertTrue(args.two); - Assert.assertEquals(args.f, "-z"); - Assert.assertFalse(args.z); - Assert.assertEquals(args.dir, null); - Assert.assertEquals(args.parameters, Arrays.asList("--Dfoo")); + assertTrue(args.l); + assertTrue(args.g); + assertTrue(args.d); + assertEquals(args.s, "n"); + assertEquals(args.p, "a-p"); + assertFalse(args.n); + assertTrue(args.two); + assertEquals(args.f, "-z"); + assertFalse(args.z); + assertEquals(args.dir, null); + assertEquals(args.parameters, Arrays.asList("--Dfoo")); } + @Test public void classicGetoptFailure() throws ParseException { ArgsSingleChar args = singleCommandParser(ArgsSingleChar.class).parse("ArgsSingleChar", "-lgX"); - Assert.assertFalse(args.l); - Assert.assertFalse(args.g); - Assert.assertEquals(args.parameters, Arrays.asList("-lgX")); + assertFalse(args.l); + assertFalse(args.g); + assertEquals(args.parameters, Arrays.asList("-lgX")); } /** * Make sure that if there are args with multiple names (e.g. "-log" and "-verbose"), * the usage will only display it once. */ + @Test public void repeatedArgs() { Cli parser = singleCommandParser(Args1.class); CommandMetadata command = find(parser.getMetadata().getDefaultGroupCommands(), compose(equalTo("Args1"), CommandMetadata.nameGetter())); - Assert.assertEquals(command.getAllOptions().size(), 8); + assertEquals(command.getAllOptions().size(), 8); } /** @@ -150,28 +156,31 @@ public void unrecognizedCommandShouldThrow() private void multipleNames(String option) { Args1 args = singleCommandParser(Args1.class).parse("Args1", option, "2"); - Assert.assertEquals(args.verbose.intValue(), 2); + assertEquals(args.verbose.intValue(), 2); } + @Test public void multipleNames1() { multipleNames("-log"); } + @Test public void multipleNames2() { multipleNames("-verbose"); } + @Test public void arityString() { ArgsArityString args = singleCommandParser(ArgsArityString.class).parse("ArgsArityString", "-pairs", "pair0", "pair1", "rest"); - Assert.assertEquals(args.pairs.size(), 2); - Assert.assertEquals(args.pairs.get(0), "pair0"); - Assert.assertEquals(args.pairs.get(1), "pair1"); - Assert.assertEquals(args.rest.size(), 1); - Assert.assertEquals(args.rest.get(0), "rest"); + assertEquals(args.pairs.size(), 2); + assertEquals(args.pairs.get(0), "pair0"); + assertEquals(args.pairs.get(1), "pair1"); + assertEquals(args.rest.size(), 1); + assertEquals(args.rest.get(0), "rest"); } @Test(expectedExceptions = ParseException.class) @@ -186,37 +195,39 @@ public void multipleUnparsedFail() singleCommandParser(ArgsMultipleUnparsed.class).parse(); } + @Test public void privateArgs() { ArgsPrivate args = singleCommandParser(ArgsPrivate.class).parse("ArgsPrivate", "-verbose", "3"); - Assert.assertEquals(args.getVerbose().intValue(), 3); + assertEquals(args.getVerbose().intValue(), 3); } private void argsBoolean1(String[] params, Boolean expected) { - params = ImmutableList.builder().add("ArgsBooleanArity").add(params).build().toArray(new String[0]); - ArgsBooleanArity args = singleCommandParser(ArgsBooleanArity.class).parse(params); - Assert.assertEquals(args.debug, expected); + List values = ImmutableList.builder().add("ArgsBooleanArity").add(params).build(); + ArgsBooleanArity args = singleCommandParser(ArgsBooleanArity.class).parse(values); + assertEquals(args.debug, expected); } private void argsBoolean0(String[] params, Boolean expected) { - params = ImmutableList.builder().add("ArgsBooleanArity0").add(params).build().toArray(new String[0]); - - ArgsBooleanArity0 args = singleCommandParser(ArgsBooleanArity0.class).parse(params); - Assert.assertEquals(args.debug, expected); + List values = ImmutableList.builder().add("ArgsBooleanArity0").add(params).build(); + ArgsBooleanArity0 args = singleCommandParser(ArgsBooleanArity0.class).parse(values); + assertEquals(args.debug, expected); } + @Test public void booleanArity1() { - argsBoolean1(new String[]{}, Boolean.FALSE); - argsBoolean1(new String[]{"-debug", "true"}, Boolean.TRUE); + argsBoolean1(new String[] {}, Boolean.FALSE); + argsBoolean1(new String[] {"-debug", "true"}, Boolean.TRUE); } + @Test public void booleanArity0() { - argsBoolean0(new String[]{}, Boolean.FALSE); - argsBoolean0(new String[]{"-debug"}, Boolean.TRUE); + argsBoolean0(new String[] {}, Boolean.FALSE); + argsBoolean0(new String[] {"-debug"}, Boolean.TRUE); } @Test(expectedExceptions = ParseException.class) @@ -231,26 +242,29 @@ public void badParameterShouldThrowParameter2Exception() singleCommandParser(Args1.class).parse("Args1", "-long", "foo"); } + @Test public void listParameters() { Args2 a = singleCommandParser(Args2.class).parse("Args2", "-log", "2", "-groups", "unit", "a", "b", "c", "-host", "host2"); - Assert.assertEquals(a.verbose.intValue(), 2); - Assert.assertEquals(a.groups, "unit"); - Assert.assertEquals(a.hosts, Arrays.asList("host2")); - Assert.assertEquals(a.parameters, Arrays.asList("a", "b", "c")); + assertEquals(a.verbose.intValue(), 2); + assertEquals(a.groups, "unit"); + assertEquals(a.hosts, Arrays.asList("host2")); + assertEquals(a.parameters, Arrays.asList("a", "b", "c")); } + @Test public void inheritance() { ArgsInherited args = singleCommandParser(ArgsInherited.class).parse("ArgsInherited", "-log", "3", "-child", "2"); - Assert.assertEquals(args.child.intValue(), 2); - Assert.assertEquals(args.log.intValue(), 3); + assertEquals(args.child.intValue(), 2); + assertEquals(args.log.intValue(), 3); } + @Test public void negativeNumber() { Args1 a = singleCommandParser(Args1.class).parse("Args1", "-verbose", "-3"); - Assert.assertEquals(a.verbose.intValue(), -3); + assertEquals(a.verbose.intValue(), -3); } @Test(expectedExceptions = ParseException.class) @@ -280,31 +294,32 @@ private void verifyCommandOrdering(String[] commandNames, Class... commands) Cli parser = builder.build(); final List commandParsers = parser.getMetadata().getDefaultGroupCommands(); - Assert.assertEquals(commandParsers.size(), commands.length); + assertEquals(commandParsers.size(), commands.length); int i = 0; for (CommandMetadata commandParser : commandParsers) { - Assert.assertEquals(commandParser.getName(), commandNames[i++]); + assertEquals(commandParser.getName(), commandNames[i++]); } } + @Test public void commandsShouldBeShownInOrderOfInsertion() { - verifyCommandOrdering(new String[]{"add", "commit"}, + verifyCommandOrdering(new String[] {"add", "commit"}, CommandAdd.class, CommandCommit.class); - verifyCommandOrdering(new String[]{"commit", "add"}, + verifyCommandOrdering(new String[] {"commit", "add"}, CommandCommit.class, CommandAdd.class); } @DataProvider public static Object[][] f() { - return new Integer[][]{ - new Integer[]{3, 5, 1}, - new Integer[]{3, 8, 1}, - new Integer[]{3, 12, 2}, - new Integer[]{8, 12, 2}, - new Integer[]{9, 10, 1}, + return new Integer[][] { + new Integer[] {3, 5, 1}, + new Integer[] {3, 8, 1}, + new Integer[] {3, 12, 2}, + new Integer[] {8, 12, 2}, + new Integer[] {9, 10, 1}, }; } @@ -314,16 +329,18 @@ public void arity1Fail() singleCommandParser(Arity1.class).parse("Arity1", "-inspect"); } + @Test public void arity1Success1() { Arity1 arguments = singleCommandParser(Arity1.class).parse("Arity1", "-inspect", "true"); - Assert.assertTrue(arguments.inspect); + assertTrue(arguments.inspect); } + @Test public void arity1Success2() { Arity1 arguments = singleCommandParser(Arity1.class).parse("Arity1", "-inspect", "false"); - Assert.assertFalse(arguments.inspect); + assertFalse(arguments.inspect); } @Test(expectedExceptions = ParseException.class, @@ -350,19 +367,20 @@ public void getParametersShouldNotNpe() @DataProvider public Object[][] variable() { - return new Object[][]{ - new Object[]{0, V.subList(0, 0), V}, - new Object[]{1, V.subList(0, 1), V.subList(1, 4)}, - new Object[]{2, V.subList(0, 2), V.subList(2, 4)}, - new Object[]{3, V.subList(0, 3), V.subList(3, 4)}, - new Object[]{4, V.subList(0, 4), V.subList(4, 4)}, + return new Object[][] { + new Object[] {0, V.subList(0, 0), V}, + new Object[] {1, V.subList(0, 1), V.subList(1, 4)}, + new Object[] {2, V.subList(0, 2), V.subList(2, 4)}, + new Object[] {3, V.subList(0, 3), V.subList(3, 4)}, + new Object[] {4, V.subList(0, 4), V.subList(4, 4)}, }; } + @Test public void enumArgs() { ArgsEnum args = singleCommandParser(ArgsEnum.class).parse("ArgsEnum", "-choice", "ONE"); - Assert.assertEquals(args.choice, ArgsEnum.ChoiceType.ONE); + assertEquals(args.choice, ArgsEnum.ChoiceType.ONE); } @Test(expectedExceptions = ParseException.class) @@ -371,6 +389,7 @@ public void enumArgsFail() singleCommandParser(ArgsEnum.class).parse("-choice", "A"); } + @SuppressWarnings("UnusedDeclaration") @Test(expectedExceptions = ParseException.class) public void shouldThrowIfUnknownOption() { diff --git a/src/test/java/io/airlift/airline/GalaxyCommandLineParser.java b/src/test/java/io/airlift/airline/TestGalaxyCommandLineParser.java similarity index 57% rename from src/test/java/io/airlift/airline/GalaxyCommandLineParser.java rename to src/test/java/io/airlift/airline/TestGalaxyCommandLineParser.java index 9d3c068f0..499c18260 100644 --- a/src/test/java/io/airlift/airline/GalaxyCommandLineParser.java +++ b/src/test/java/io/airlift/airline/TestGalaxyCommandLineParser.java @@ -1,18 +1,20 @@ package io.airlift.airline; import com.google.common.base.Joiner; -import com.google.common.base.Objects; import com.google.common.collect.Lists; import io.airlift.airline.Cli.CliBuilder; import org.testng.annotations.Test; import javax.inject.Inject; + import java.util.List; +import static com.google.common.base.MoreObjects.firstNonNull; +import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.collect.Lists.newArrayList; import static io.airlift.airline.OptionType.GLOBAL; -public class GalaxyCommandLineParser +public class TestGalaxyCommandLineParser { @Test public void test() @@ -55,26 +57,25 @@ private Cli createParser() CliBuilder builder = Cli.builder("galaxy") .withDescription("cloud management system") .withDefaultCommand(HelpCommand.class) - .withCommands(HelpCommand.class, - ShowCommand.class, - InstallCommand.class, - UpgradeCommand.class, - TerminateCommand.class, - StartCommand.class, - StopCommand.class, - RestartCommand.class, - SshCommand.class, - ResetToActualCommand.class); + .withCommand(HelpCommand.class) + .withCommand(ShowCommand.class) + .withCommand(InstallCommand.class) + .withCommand(UpgradeCommand.class) + .withCommand(TerminateCommand.class) + .withCommand(StartCommand.class) + .withCommand(StopCommand.class) + .withCommand(RestartCommand.class) + .withCommand(SshCommand.class) + .withCommand(ResetToActualCommand.class); builder.withGroup("agent") .withDescription("Manage agents") .withDefaultCommand(AgentShowCommand.class) - .withCommands(AgentShowCommand.class, - AgentAddCommand.class, - AgentTerminateCommand.class); + .withCommand(AgentShowCommand.class) + .withCommand(AgentAddCommand.class) + .withCommand(AgentTerminateCommand.class); - Cli galaxy = builder.build(); - return galaxy; + return builder.build(); } private void parse(String... args) @@ -91,17 +92,15 @@ public static class GlobalOptions public boolean debug = false; @Option(type = GLOBAL, name = "--coordinator", description = "Galaxy coordinator host (overrides GALAXY_COORDINATOR)") - public String coordinator = Objects.firstNonNull(System.getenv("GALAXY_COORDINATOR"), "http://localhost:64000"); + public String coordinator = firstNonNull(System.getenv("GALAXY_COORDINATOR"), "http://localhost:64000"); @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("GlobalOptions"); - sb.append("{debug=").append(debug); - sb.append(", coordinator='").append(coordinator).append('\''); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("debug", debug) + .add("coordinator", coordinator) + .toString(); } } @@ -128,16 +127,14 @@ public static class SlotFilter @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("Filter"); - sb.append("{binary=").append(binary); - sb.append(", config=").append(config); - sb.append(", host=").append(host); - sb.append(", ip=").append(ip); - sb.append(", uuid=").append(uuid); - sb.append(", state=").append(state); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("binary", binary) + .add("config", config) + .add("host", host) + .add("ip", ip) + .add("uuid", uuid) + .add("state", state) + .toString(); } } @@ -158,14 +155,12 @@ public static class AgentFilter @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("Filter"); - sb.append("{host=").append(host); - sb.append(", ip=").append(ip); - sb.append(", uuid=").append(uuid); - sb.append(", state=").append(state); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("host", host) + .add("ip", ip) + .add("uuid", uuid) + .add("state", state) + .toString(); } } @@ -181,7 +176,8 @@ public void execute() } @Command(name = "help", description = "Display help information about galaxy") - public static class HelpCommand extends GalaxyCommand + public static class HelpCommand + extends GalaxyCommand { @Inject public Help help; @@ -194,7 +190,8 @@ public void execute() } @Command(name = "show", description = "Show state of all slots") - public static class ShowCommand extends GalaxyCommand + public static class ShowCommand + extends GalaxyCommand { @Inject public final SlotFilter slotFilter = new SlotFilter(); @@ -202,17 +199,16 @@ public static class ShowCommand extends GalaxyCommand @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("ShowCommand"); - sb.append("{slotFilter=").append(slotFilter); - sb.append(", globalOptions=").append(globalOptions); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("slotFilter", slotFilter) + .add("globalOptions", globalOptions) + .toString(); } } @Command(name = "install", description = "Install software in a new slot") - public static class InstallCommand extends GalaxyCommand + public static class InstallCommand + extends GalaxyCommand { @Option(name = {"--count"}, description = "Number of instances to install") public int count = 1; @@ -227,19 +223,18 @@ public static class InstallCommand extends GalaxyCommand @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("InstallCommand"); - sb.append("{count=").append(count); - sb.append(", agentFilter=").append(agentFilter); - sb.append(", assignment=").append(assignment); - sb.append(", globalOptions=").append(globalOptions); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("count", count) + .add("agentFilter", agentFilter) + .add("assignment", assignment) + .add("globalOptions", globalOptions) + .toString(); } } @Command(name = "upgrade", description = "Upgrade software in a slot") - public static class UpgradeCommand extends GalaxyCommand + public static class UpgradeCommand + extends GalaxyCommand { @Inject public final SlotFilter slotFilter = new SlotFilter(); @@ -251,18 +246,17 @@ public static class UpgradeCommand extends GalaxyCommand @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("UpgradeCommand"); - sb.append("{slotFilter=").append(slotFilter); - sb.append(", versions=").append(versions); - sb.append(", globalOptions=").append(globalOptions); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("slotFilter", slotFilter) + .add("versions", versions) + .add("globalOptions", globalOptions) + .toString(); } } @Command(name = "terminate", description = "Terminate (remove) a slot") - public static class TerminateCommand extends GalaxyCommand + public static class TerminateCommand + extends GalaxyCommand { @Inject public final SlotFilter slotFilter = new SlotFilter(); @@ -270,17 +264,16 @@ public static class TerminateCommand extends GalaxyCommand @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("TerminateCommand"); - sb.append("{slotFilter=").append(slotFilter); - sb.append(", globalOptions=").append(globalOptions); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("slotFilter", slotFilter) + .add("globalOptions", globalOptions) + .toString(); } } @Command(name = "start", description = "Start a server") - public static class StartCommand extends GalaxyCommand + public static class StartCommand + extends GalaxyCommand { @Inject public final SlotFilter slotFilter = new SlotFilter(); @@ -288,17 +281,16 @@ public static class StartCommand extends GalaxyCommand @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("StartCommand"); - sb.append("{slotFilter=").append(slotFilter); - sb.append(", globalOptions=").append(globalOptions); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("slotFilter", slotFilter) + .add("globalOptions", globalOptions) + .toString(); } } @Command(name = "stop", description = "Stop a server") - public static class StopCommand extends GalaxyCommand + public static class StopCommand + extends GalaxyCommand { @Inject public final SlotFilter slotFilter = new SlotFilter(); @@ -306,17 +298,16 @@ public static class StopCommand extends GalaxyCommand @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("StopCommand"); - sb.append("{slotFilter=").append(slotFilter); - sb.append(", globalOptions=").append(globalOptions); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("slotFilter", slotFilter) + .add("globalOptions", globalOptions) + .toString(); } } @Command(name = "restart", description = "Restart server") - public static class RestartCommand extends GalaxyCommand + public static class RestartCommand + extends GalaxyCommand { @Inject public final SlotFilter slotFilter = new SlotFilter(); @@ -324,17 +315,16 @@ public static class RestartCommand extends GalaxyCommand @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("RestartCommand"); - sb.append("{slotFilter=").append(slotFilter); - sb.append(", globalOptions=").append(globalOptions); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("slotFilter", slotFilter) + .add("globalOptions", globalOptions) + .toString(); } } @Command(name = "reset-to-actual", description = "Reset slot expected state to actual") - public static class ResetToActualCommand extends GalaxyCommand + public static class ResetToActualCommand + extends GalaxyCommand { @Inject public final SlotFilter slotFilter = new SlotFilter(); @@ -342,17 +332,16 @@ public static class ResetToActualCommand extends GalaxyCommand @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("ResetToActualCommand"); - sb.append("{slotFilter=").append(slotFilter); - sb.append(", globalOptions=").append(globalOptions); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("slotFilter", slotFilter) + .add("globalOptions", globalOptions) + .toString(); } } @Command(name = "ssh", description = "ssh to slot installation") - public static class SshCommand extends GalaxyCommand + public static class SshCommand + extends GalaxyCommand { @Inject public final SlotFilter slotFilter = new SlotFilter(); @@ -363,15 +352,16 @@ public static class SshCommand extends GalaxyCommand @Override public String toString() { - return "SshCommand{" + - "slotFilter=" + slotFilter + - ", command='" + command + '\'' + - '}'; + return toStringHelper(this) + .add("slotFilter", slotFilter) + .add("command", command) + .toString(); } } @Command(name = "add", description = "Provision a new agent") - public static class AgentAddCommand extends GalaxyCommand + public static class AgentAddCommand + extends GalaxyCommand { @Option(name = {"--count"}, description = "Number of agents to provision") public int count = 1; @@ -385,19 +375,18 @@ public static class AgentAddCommand extends GalaxyCommand @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("AgentAddCommand"); - sb.append("{count=").append(count); - sb.append(", availabilityZone='").append(availabilityZone).append('\''); - sb.append(", instanceType=").append(instanceType); - sb.append(", globalOptions=").append(globalOptions); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("count", count) + .add("availabilityZone", availabilityZone) + .add("instanceType", instanceType) + .add("globalOptions", globalOptions) + .toString(); } } @Command(name = "show", description = "Show agent details") - public static class AgentShowCommand extends GalaxyCommand + public static class AgentShowCommand + extends GalaxyCommand { @Inject public final AgentFilter agentFilter = new AgentFilter(); @@ -405,17 +394,16 @@ public static class AgentShowCommand extends GalaxyCommand @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("AgentShowCommand"); - sb.append("{globalOptions=").append(globalOptions); - sb.append(", agentFilter=").append(agentFilter); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("agentFilter", agentFilter) + .add("globalOptions", globalOptions) + .toString(); } } @Command(name = "terminate", description = "Provision a new agent") - public static class AgentTerminateCommand extends GalaxyCommand + public static class AgentTerminateCommand + extends GalaxyCommand { @Arguments(title = "agent-id", description = "Agent to terminate", required = true) public String agentId; @@ -423,12 +411,10 @@ public static class AgentTerminateCommand extends GalaxyCommand @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("AgentTerminateCommand"); - sb.append("{agentId='").append(agentId).append('\''); - sb.append(", globalOptions=").append(globalOptions); - sb.append('}'); - return sb.toString(); + return toStringHelper(this) + .add("agentId", agentId) + .add("globalOptions", globalOptions) + .toString(); } } } diff --git a/src/test/java/io/airlift/airline/GitTest.java b/src/test/java/io/airlift/airline/TestGit.java similarity index 97% rename from src/test/java/io/airlift/airline/GitTest.java rename to src/test/java/io/airlift/airline/TestGit.java index 87069fb11..a7c32f1f3 100644 --- a/src/test/java/io/airlift/airline/GitTest.java +++ b/src/test/java/io/airlift/airline/TestGit.java @@ -3,7 +3,7 @@ import com.google.common.base.Joiner; import org.testng.annotations.Test; -public class GitTest +public class TestGit { @Test public void test() diff --git a/src/test/java/io/airlift/airline/HelpTest.java b/src/test/java/io/airlift/airline/TestHelp.java similarity index 94% rename from src/test/java/io/airlift/airline/HelpTest.java rename to src/test/java/io/airlift/airline/TestHelp.java index 77c1aaf2e..d201c92b2 100644 --- a/src/test/java/io/airlift/airline/HelpTest.java +++ b/src/test/java/io/airlift/airline/TestHelp.java @@ -31,13 +31,13 @@ import io.airlift.airline.args.CommandHidden; import io.airlift.airline.args.OptionsHidden; import io.airlift.airline.args.OptionsRequired; -import org.testng.Assert; import org.testng.annotations.Test; import static io.airlift.airline.SingleCommand.singleCommand; +import static org.testng.Assert.assertEquals; @Test -public class HelpTest +public class TestHelp { @Test public void testGit() @@ -45,20 +45,20 @@ public void testGit() CliBuilder builder = Cli.builder("git") .withDescription("the stupid content tracker") .withDefaultCommand(Help.class) - .withCommands(Help.class, - Add.class); + .withCommand(Help.class) + .withCommand(Add.class); builder.withGroup("remote") .withDescription("Manage set of tracked repositories") .withDefaultCommand(RemoteShow.class) - .withCommands(RemoteShow.class, - RemoteAdd.class); + .withCommand(RemoteShow.class) + .withCommand(RemoteAdd.class); Cli gitParser = builder.build(); StringBuilder out = new StringBuilder(); Help.help(gitParser.getMetadata(), ImmutableList.of(), out); - Assert.assertEquals(out.toString(), "usage: git [-v] []\n" + + assertEquals(out.toString(), "usage: git [-v] []\n" + "\n" + "The most commonly used git commands are:\n" + " add Add file contents to the index\n" + @@ -69,7 +69,7 @@ public void testGit() out = new StringBuilder(); Help.help(gitParser.getMetadata(), ImmutableList.of("add"), out); - Assert.assertEquals(out.toString(), "NAME\n" + + assertEquals(out.toString(), "NAME\n" + " git add - Add file contents to the index\n" + "\n" + "SYNOPSIS\n" + @@ -93,7 +93,7 @@ public void testGit() out = new StringBuilder(); Help.help(gitParser.getMetadata(), ImmutableList.of("remote"), out); - Assert.assertEquals(out.toString(), "NAME\n" + + assertEquals(out.toString(), "NAME\n" + " git remote - Manage set of tracked repositories\n" + "\n" + "SYNOPSIS\n" + @@ -133,7 +133,7 @@ public void testArgs1() StringBuilder out = new StringBuilder(); Help.help(parser.getMetadata(), ImmutableList.of("Args1"), out); - Assert.assertEquals(out.toString(), "NAME\n" + + assertEquals(out.toString(), "NAME\n" + " test Args1 - args1 description\n" + "\n" + "SYNOPSIS\n" + @@ -177,8 +177,8 @@ public void testArgs1() "\n"); } - @Test - public void testArgs2() + @Test + public void testArgs2() { CliBuilder builder = Cli.builder("test") .withDescription("Test commandline") @@ -190,7 +190,7 @@ public void testArgs2() StringBuilder out = new StringBuilder(); Help.help(parser.getMetadata(), ImmutableList.of("Args2"), out); - Assert.assertEquals(out.toString(), "NAME\n" + + assertEquals(out.toString(), "NAME\n" + " test Args2 -\n" + "\n" + "SYNOPSIS\n" + @@ -233,7 +233,7 @@ public void testArgsAritySting() StringBuilder out = new StringBuilder(); Help.help(parser.getMetadata(), ImmutableList.of("ArgsArityString"), out); - Assert.assertEquals(out.toString(), "NAME\n" + + assertEquals(out.toString(), "NAME\n" + " test ArgsArityString -\n" + "\n" + "SYNOPSIS\n" + @@ -266,7 +266,7 @@ public void testArgsBooleanArity() StringBuilder out = new StringBuilder(); Help.help(parser.getMetadata(), ImmutableList.of("ArgsBooleanArity"), out); - Assert.assertEquals(out.toString(), "NAME\n" + + assertEquals(out.toString(), "NAME\n" + " test ArgsBooleanArity -\n" + "\n" + "SYNOPSIS\n" + @@ -291,7 +291,7 @@ public void testArgsInherited() StringBuilder out = new StringBuilder(); Help.help(parser.getMetadata(), ImmutableList.of("ArgsInherited"), out); - Assert.assertEquals(out.toString(), "NAME\n" + + assertEquals(out.toString(), "NAME\n" + " test ArgsInherited -\n" + "\n" + "SYNOPSIS\n" + @@ -337,7 +337,7 @@ public void testArgsRequired() StringBuilder out = new StringBuilder(); Help.help(parser.getMetadata(), ImmutableList.of("ArgsRequired"), out); - Assert.assertEquals(out.toString(), "NAME\n" + + assertEquals(out.toString(), "NAME\n" + " test ArgsRequired -\n" + "\n" + "SYNOPSIS\n" + @@ -367,7 +367,7 @@ public void testOptionsRequired() StringBuilder out = new StringBuilder(); Help.help(parser.getMetadata(), ImmutableList.of("OptionsRequired"), out); - Assert.assertEquals(out.toString(), "NAME\n" + + assertEquals(out.toString(), "NAME\n" + " test OptionsRequired -\n" + "\n" + "SYNOPSIS\n" + @@ -396,7 +396,7 @@ public void testOptionsHidden() StringBuilder out = new StringBuilder(); Help.help(parser.getMetadata(), ImmutableList.of("OptionsHidden"), out); - Assert.assertEquals(out.toString(), "NAME\n" + + assertEquals(out.toString(), "NAME\n" + " test OptionsHidden -\n" + "\n" + "SYNOPSIS\n" + @@ -421,7 +421,7 @@ public void testCommandHidden() StringBuilder out = new StringBuilder(); Help.help(parser.getMetadata(), ImmutableList.of(), out); - Assert.assertEquals(out.toString(), "usage: test []\n" + + assertEquals(out.toString(), "usage: test []\n" + "\n" + "The most commonly used test commands are:\n" + " ArgsRequired\n" + @@ -431,7 +431,7 @@ public void testCommandHidden() out = new StringBuilder(); Help.help(parser.getMetadata(), ImmutableList.of("CommandHidden"), out); - Assert.assertEquals(out.toString(), "NAME\n" + + assertEquals(out.toString(), "NAME\n" + " test CommandHidden -\n" + "\n" + "SYNOPSIS\n" + @@ -441,7 +441,6 @@ public void testCommandHidden() " --optional \n" + "\n" + "\n"); - } @Test @@ -451,7 +450,7 @@ public void testSingleCommandArgs1() StringBuilder out = new StringBuilder(); new CommandUsage().usage(null, null, "test", command.getCommandMetadata(), out); - Assert.assertEquals(out.toString(), "NAME\n" + + assertEquals(out.toString(), "NAME\n" + " test - args1 description\n" + "\n" + "SYNOPSIS\n" + diff --git a/src/test/java/io/airlift/airline/ParametersDelegateTest.java b/src/test/java/io/airlift/airline/TestParametersDelegate.java similarity index 84% rename from src/test/java/io/airlift/airline/ParametersDelegateTest.java rename to src/test/java/io/airlift/airline/TestParametersDelegate.java index e42452b99..57b40de1c 100644 --- a/src/test/java/io/airlift/airline/ParametersDelegateTest.java +++ b/src/test/java/io/airlift/airline/TestParametersDelegate.java @@ -1,22 +1,24 @@ package io.airlift.airline; import com.google.common.collect.ImmutableList; -import org.testng.Assert; import org.testng.annotations.Test; import javax.inject.Inject; + import java.util.List; import static com.google.common.collect.Lists.newArrayList; -import static io.airlift.airline.TestUtil.singleCommandParser; +import static io.airlift.airline.TestingUtil.singleCommandParser; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertTrue; /** * @author dain * @author rodionmoiseev */ -public class ParametersDelegateTest +public class TestParametersDelegate { - @Command(name = "command") public static class DelegatingEmptyClassHasNoEffect { @@ -41,14 +43,13 @@ public void delegatingEmptyClassHasNoEffect() .build() .parse("command", "-a", "-b", "someValue"); - Assert.assertTrue(p.isA); - Assert.assertEquals(p.bValue, "someValue"); - Assert.assertEquals(p.delegate.nonParamString, "a"); + assertTrue(p.isA); + assertEquals(p.bValue, "someValue"); + assertEquals(p.delegate.nonParamString, "a"); } // ======================================================================================================================== - @Command(name = "command") public static class DelegatingSetsFieldsOnBothMainParamsAndTheDelegatedParams { @@ -74,13 +75,12 @@ public void delegatingSetsFieldsOnBothMainParamsAndTheDelegatedParams() DelegatingSetsFieldsOnBothMainParamsAndTheDelegatedParams p = singleCommandParser(DelegatingSetsFieldsOnBothMainParamsAndTheDelegatedParams.class) .parse("command", "-c", "--long-d", "123", "--long-b", "bValue"); - Assert.assertFalse(p.isA); - Assert.assertEquals(p.bValue, "bValue"); - Assert.assertTrue(p.delegate.isC); - Assert.assertEquals(p.delegate.d, Integer.valueOf(123)); + assertFalse(p.isA); + assertEquals(p.bValue, "bValue"); + assertTrue(p.delegate.isC); + assertEquals(p.delegate.d, Integer.valueOf(123)); } - // ======================================================================================================================== @Command(name = "command") @@ -128,12 +128,12 @@ public void combinedAndNestedDelegates() { CombinedAndNestedDelegates p = singleCommandParser(CombinedAndNestedDelegates.class) .parse("command", "-d", "234", "--list", "a", "--list", "b", "-a"); - Assert.assertEquals(p.nestedDelegate2.nestedDelegate1.leafDelegate.list, newArrayList("value1", "value2", "a", "b")); - Assert.assertFalse(p.nestedDelegate2.nestedDelegate1.leafDelegate.bool); - Assert.assertEquals(p.nestedDelegate2.nestedDelegate1.d, Integer.valueOf(234)); - Assert.assertFalse(p.nestedDelegate2.isC); - Assert.assertTrue(p.isA); - Assert.assertEquals(p.bValue, ""); + assertEquals(p.nestedDelegate2.nestedDelegate1.leafDelegate.list, newArrayList("value1", "value2", "a", "b")); + assertFalse(p.nestedDelegate2.nestedDelegate1.leafDelegate.bool); + assertEquals(p.nestedDelegate2.nestedDelegate1.d, Integer.valueOf(234)); + assertFalse(p.nestedDelegate2.isC); + assertTrue(p.isA); + assertEquals(p.bValue, ""); } // ======================================================================================================================== @@ -155,7 +155,7 @@ public static class Delegate public void commandTest() { CommandTest c = singleCommandParser(CommandTest.class).parse("command", "-a", "a"); - Assert.assertEquals(c.delegate.a, "a"); + assertEquals(c.delegate.a, "a"); } // ======================================================================================================================== @@ -178,7 +178,7 @@ public void nullDelegatesAreAllowed() { NullDelegatesAreProhibited value = singleCommandParser(NullDelegatesAreProhibited.class).parse("command", "-a"); - Assert.assertEquals(value.delegate.a, true); + assertEquals(value.delegate.a, true); } // ======================================================================================================================== @@ -202,8 +202,8 @@ public static class Delegate public void duplicateDelegateAllowed() { DuplicateDelegateAllowed value = singleCommandParser(DuplicateDelegateAllowed.class).parse("command", "-a", "value"); - Assert.assertEquals(value.d1.a, "value"); - Assert.assertEquals(value.d2.a, "value"); + assertEquals(value.d1.a, "value"); + assertEquals(value.d2.a, "value"); } // ======================================================================================================================== @@ -234,12 +234,13 @@ public static class Delegate2 public void duplicateMainParametersAreAllowed() { DuplicateMainParametersAreAllowed value = singleCommandParser(DuplicateMainParametersAreAllowed.class).parse("command", "main", "params"); - Assert.assertEquals(value.delegate1.mainParams1, ImmutableList.of("main", "params")); - Assert.assertEquals(value.delegate2.mainParams1, ImmutableList.of("main", "params")); + assertEquals(value.delegate1.mainParams1, ImmutableList.of("main", "params")); + assertEquals(value.delegate2.mainParams1, ImmutableList.of("main", "params")); } // ======================================================================================================================== + @SuppressWarnings("UnusedDeclaration") @Command(name = "command") public static class ConflictingMainParametersAreNotAllowed { @@ -266,6 +267,5 @@ public static class Delegate2 public void conflictingMainParametersAreNotAllowed() { singleCommandParser(ConflictingMainParametersAreNotAllowed.class).parse("command", "main", "params"); - } } diff --git a/src/test/java/io/airlift/airline/PingTest.java b/src/test/java/io/airlift/airline/TestPing.java similarity index 95% rename from src/test/java/io/airlift/airline/PingTest.java rename to src/test/java/io/airlift/airline/TestPing.java index 3d3ccbbb4..ef893db71 100644 --- a/src/test/java/io/airlift/airline/PingTest.java +++ b/src/test/java/io/airlift/airline/TestPing.java @@ -3,7 +3,7 @@ import com.google.common.base.Joiner; import org.testng.annotations.Test; -public class PingTest +public class TestPing { @Test public void test() diff --git a/src/test/java/io/airlift/airline/SingleCommandTest.java b/src/test/java/io/airlift/airline/TestSingleCommand.java similarity index 71% rename from src/test/java/io/airlift/airline/SingleCommandTest.java rename to src/test/java/io/airlift/airline/TestSingleCommand.java index 5439f6802..ee1eeaf6b 100644 --- a/src/test/java/io/airlift/airline/SingleCommandTest.java +++ b/src/test/java/io/airlift/airline/TestSingleCommand.java @@ -37,7 +37,6 @@ import io.airlift.airline.command.CommandAdd; import io.airlift.airline.command.CommandCommit; import io.airlift.airline.model.CommandMetadata; -import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -51,11 +50,13 @@ import static com.google.common.base.Predicates.equalTo; import static com.google.common.collect.Iterables.find; import static io.airlift.airline.SingleCommand.singleCommand; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; -@Test -public class SingleCommandTest +public class TestSingleCommand { + @Test public void simpleArgs() throws ParseException { @@ -64,14 +65,15 @@ public void simpleArgs() "-groups", "unit", "a", "b", "c"); assertTrue(args.debug); - Assert.assertEquals(args.verbose.intValue(), 2); - Assert.assertEquals(args.groups, "unit"); - Assert.assertEquals(args.parameters, Arrays.asList("a", "b", "c")); - Assert.assertEquals(args.floa, 1.2f, 0.1f); - Assert.assertEquals(args.doub, 1.3f, 0.1f); - Assert.assertEquals(args.bigd, new BigDecimal("1.4")); + assertEquals(args.verbose.intValue(), 2); + assertEquals(args.groups, "unit"); + assertEquals(args.parameters, Arrays.asList("a", "b", "c")); + assertEquals(args.floa, 1.2f, 0.1f); + assertEquals(args.doub, 1.3f, 0.1f); + assertEquals(args.bigd, new BigDecimal("1.4")); } + @Test public void equalsArgs() throws ParseException { @@ -80,14 +82,15 @@ public void equalsArgs() "-groups=unit", "a", "b", "c"); assertTrue(args.debug); - Assert.assertEquals(args.verbose.intValue(), 2); - Assert.assertEquals(args.groups, "unit"); - Assert.assertEquals(args.parameters, Arrays.asList("a", "b", "c")); - Assert.assertEquals(args.floa, 1.2f, 0.1f); - Assert.assertEquals(args.doub, 1.3f, 0.1f); - Assert.assertEquals(args.bigd, new BigDecimal("1.4")); + assertEquals(args.verbose.intValue(), 2); + assertEquals(args.groups, "unit"); + assertEquals(args.parameters, Arrays.asList("a", "b", "c")); + assertEquals(args.floa, 1.2f, 0.1f); + assertEquals(args.doub, 1.3f, 0.1f); + assertEquals(args.bigd, new BigDecimal("1.4")); } + @Test public void classicGetoptArgs() throws ParseException { @@ -97,36 +100,38 @@ public void classicGetoptArgs() assertTrue(args.l); assertTrue(args.g); assertTrue(args.d); - Assert.assertEquals(args.s, "n"); - Assert.assertEquals(args.p, "a-p"); - Assert.assertFalse(args.n); + assertEquals(args.s, "n"); + assertEquals(args.p, "a-p"); + assertFalse(args.n); assertTrue(args.two); - Assert.assertEquals(args.f, "-z"); - Assert.assertFalse(args.z); - Assert.assertEquals(args.dir, null); - Assert.assertEquals(args.parameters, Arrays.asList("--Dfoo")); + assertEquals(args.f, "-z"); + assertFalse(args.z); + assertEquals(args.dir, null); + assertEquals(args.parameters, Arrays.asList("--Dfoo")); } + @Test public void classicGetoptFailure() throws ParseException { ArgsSingleChar args = singleCommand(ArgsSingleChar.class).parse( "-lgX"); - Assert.assertFalse(args.l); - Assert.assertFalse(args.g); - Assert.assertEquals(args.parameters, Arrays.asList("-lgX")); + assertFalse(args.l); + assertFalse(args.g); + assertEquals(args.parameters, Arrays.asList("-lgX")); } /** * Make sure that if there are args with multiple names (e.g. "-log" and "-verbose"), * the usage will only display it once. */ + @Test public void repeatedArgs() { SingleCommand parser = singleCommand(Args1.class); CommandMetadata command = find(ImmutableList.of(parser.getCommandMetadata()), compose(equalTo("Args1"), CommandMetadata.nameGetter())); - Assert.assertEquals(command.getAllOptions().size(), 8); + assertEquals(command.getAllOptions().size(), 8); } /** @@ -135,28 +140,31 @@ public void repeatedArgs() private void multipleNames(String option) { Args1 args = singleCommand(Args1.class).parse(option, "2"); - Assert.assertEquals(args.verbose.intValue(), 2); + assertEquals(args.verbose.intValue(), 2); } + @Test public void multipleNames1() { multipleNames("-log"); } + @Test public void multipleNames2() { multipleNames("-verbose"); } + @Test public void arityString() { ArgsArityString args = singleCommand(ArgsArityString.class).parse("-pairs", "pair0", "pair1", "rest"); - Assert.assertEquals(args.pairs.size(), 2); - Assert.assertEquals(args.pairs.get(0), "pair0"); - Assert.assertEquals(args.pairs.get(1), "pair1"); - Assert.assertEquals(args.rest.size(), 1); - Assert.assertEquals(args.rest.get(0), "rest"); + assertEquals(args.pairs.size(), 2); + assertEquals(args.pairs.get(0), "pair0"); + assertEquals(args.pairs.get(1), "pair1"); + assertEquals(args.rest.size(), 1); + assertEquals(args.rest.get(0), "rest"); } @Test(expectedExceptions = ParseException.class) @@ -171,37 +179,37 @@ public void multipleUnparsedFail() singleCommand(ArgsMultipleUnparsed.class).parse(); } + @Test public void privateArgs() { ArgsPrivate args = singleCommand(ArgsPrivate.class).parse("-verbose", "3"); - Assert.assertEquals(args.getVerbose().intValue(), 3); + assertEquals(args.getVerbose().intValue(), 3); } private void argsBoolean1(String[] params, Boolean expected) { - params = ImmutableList.builder().add(params).build().toArray(new String[0]); ArgsBooleanArity args = singleCommand(ArgsBooleanArity.class).parse(params); - Assert.assertEquals(args.debug, expected); + assertEquals(args.debug, expected); } private void argsBoolean0(String[] params, Boolean expected) { - params = ImmutableList.builder().add(params).build().toArray(new String[0]); - ArgsBooleanArity0 args = singleCommand(ArgsBooleanArity0.class).parse(params); - Assert.assertEquals(args.debug, expected); + assertEquals(args.debug, expected); } + @Test public void booleanArity1() { - argsBoolean1(new String[]{}, Boolean.FALSE); - argsBoolean1(new String[]{"-debug", "true"}, Boolean.TRUE); + argsBoolean1(new String[] {}, Boolean.FALSE); + argsBoolean1(new String[] {"-debug", "true"}, Boolean.TRUE); } + @Test public void booleanArity0() { - argsBoolean0(new String[]{}, Boolean.FALSE); - argsBoolean0(new String[]{"-debug"}, Boolean.TRUE); + argsBoolean0(new String[] {}, Boolean.FALSE); + argsBoolean0(new String[] {"-debug"}, Boolean.TRUE); } @Test(expectedExceptions = ParseException.class) @@ -216,26 +224,29 @@ public void badParameterShouldThrowParameter2Exception() singleCommand(Args1.class).parse("-long", "foo"); } + @Test public void listParameters() { Args2 a = singleCommand(Args2.class).parse("-log", "2", "-groups", "unit", "a", "b", "c", "-host", "host2"); - Assert.assertEquals(a.verbose.intValue(), 2); - Assert.assertEquals(a.groups, "unit"); - Assert.assertEquals(a.hosts, Arrays.asList("host2")); - Assert.assertEquals(a.parameters, Arrays.asList("a", "b", "c")); + assertEquals(a.verbose.intValue(), 2); + assertEquals(a.groups, "unit"); + assertEquals(a.hosts, Arrays.asList("host2")); + assertEquals(a.parameters, Arrays.asList("a", "b", "c")); } + @Test public void inheritance() { ArgsInherited args = singleCommand(ArgsInherited.class).parse("-log", "3", "-child", "2"); - Assert.assertEquals(args.child.intValue(), 2); - Assert.assertEquals(args.log.intValue(), 3); + assertEquals(args.child.intValue(), 2); + assertEquals(args.log.intValue(), 3); } + @Test public void negativeNumber() { Args1 a = singleCommand(Args1.class).parse("-verbose", "-3"); - Assert.assertEquals(a.verbose.intValue(), -3); + assertEquals(a.verbose.intValue(), -3); } @Test(expectedExceptions = ParseException.class) @@ -265,31 +276,30 @@ private void verifyCommandOrdering(String[] commandNames, Class... commands) Cli parser = builder.build(); final List commandParsers = parser.getMetadata().getDefaultGroupCommands(); - Assert.assertEquals(commandParsers.size(), commands.length); + assertEquals(commandParsers.size(), commands.length); int i = 0; for (CommandMetadata commandParser : commandParsers) { - Assert.assertEquals(commandParser.getName(), commandNames[i++]); + assertEquals(commandParser.getName(), commandNames[i++]); } } + @Test public void commandsShouldBeShownInOrderOfInsertion() { - verifyCommandOrdering(new String[]{"add", "commit"}, - CommandAdd.class, CommandCommit.class); - verifyCommandOrdering(new String[]{"commit", "add"}, - CommandCommit.class, CommandAdd.class); + verifyCommandOrdering(new String[] {"add", "commit"}, CommandAdd.class, CommandCommit.class); + verifyCommandOrdering(new String[] {"commit", "add"}, CommandCommit.class, CommandAdd.class); } @DataProvider public static Object[][] f() { - return new Integer[][]{ - new Integer[]{3, 5, 1}, - new Integer[]{3, 8, 1}, - new Integer[]{3, 12, 2}, - new Integer[]{8, 12, 2}, - new Integer[]{9, 10, 1}, + return new Integer[][] { + new Integer[] {3, 5, 1}, + new Integer[] {3, 8, 1}, + new Integer[] {3, 12, 2}, + new Integer[] {8, 12, 2}, + new Integer[] {9, 10, 1}, }; } @@ -299,16 +309,18 @@ public void arity1Fail() singleCommand(Arity1.class).parse("-inspect"); } + @Test public void arity1Success1() { Arity1 arguments = singleCommand(Arity1.class).parse("-inspect", "true"); assertTrue(arguments.inspect); } + @Test public void arity1Success2() { Arity1 arguments = singleCommand(Arity1.class).parse("-inspect", "false"); - Assert.assertFalse(arguments.inspect); + assertFalse(arguments.inspect); } @Test(expectedExceptions = ParseException.class, @@ -335,19 +347,20 @@ public void getParametersShouldNotNpe() @DataProvider public Object[][] variable() { - return new Object[][]{ - new Object[]{0, V.subList(0, 0), V}, - new Object[]{1, V.subList(0, 1), V.subList(1, 4)}, - new Object[]{2, V.subList(0, 2), V.subList(2, 4)}, - new Object[]{3, V.subList(0, 3), V.subList(3, 4)}, - new Object[]{4, V.subList(0, 4), V.subList(4, 4)}, + return new Object[][] { + new Object[] {0, V.subList(0, 0), V}, + new Object[] {1, V.subList(0, 1), V.subList(1, 4)}, + new Object[] {2, V.subList(0, 2), V.subList(2, 4)}, + new Object[] {3, V.subList(0, 3), V.subList(3, 4)}, + new Object[] {4, V.subList(0, 4), V.subList(4, 4)}, }; } + @Test public void enumArgs() { ArgsEnum args = singleCommand(ArgsEnum.class).parse("-choice", "ONE"); - Assert.assertEquals(args.choice, ArgsEnum.ChoiceType.ONE); + assertEquals(args.choice, ArgsEnum.ChoiceType.ONE); } @Test(expectedExceptions = ParseException.class) @@ -356,6 +369,7 @@ public void enumArgsFail() singleCommand(ArgsEnum.class).parse("A"); } + @SuppressWarnings("UnusedDeclaration") @Test(expectedExceptions = ParseException.class) public void shouldThrowIfUnknownOption() { @@ -386,6 +400,5 @@ public static class CommandTest @Option(name = "-i", description = "Interactive add mode") public Boolean interactive = false; - } } diff --git a/src/test/java/io/airlift/airline/TestUtil.java b/src/test/java/io/airlift/airline/TestingUtil.java similarity index 74% rename from src/test/java/io/airlift/airline/TestUtil.java rename to src/test/java/io/airlift/airline/TestingUtil.java index 5dbf3ce01..20107d618 100644 --- a/src/test/java/io/airlift/airline/TestUtil.java +++ b/src/test/java/io/airlift/airline/TestingUtil.java @@ -1,10 +1,10 @@ package io.airlift.airline; -public class TestUtil +public class TestingUtil { public static Cli singleCommandParser(Class commandClass) { - return Cli.builder("parser") + return Cli.builder("parser") .withCommand(commandClass) .build(); } diff --git a/src/test/java/io/airlift/airline/args/Args1.java b/src/test/java/io/airlift/airline/args/Args1.java index 65a994d14..779e22337 100644 --- a/src/test/java/io/airlift/airline/args/Args1.java +++ b/src/test/java/io/airlift/airline/args/Args1.java @@ -27,7 +27,7 @@ import java.util.Date; import java.util.List; -@Command(name="Args1", description="args1 description") +@Command(name = "Args1", description = "args1 description") public class Args1 { @Arguments diff --git a/src/test/java/io/airlift/airline/args/Args2.java b/src/test/java/io/airlift/airline/args/Args2.java index e14ad5390..bb6fe546f 100644 --- a/src/test/java/io/airlift/airline/args/Args2.java +++ b/src/test/java/io/airlift/airline/args/Args2.java @@ -26,7 +26,7 @@ import static com.google.common.collect.Lists.newArrayList; -@Command(name="Args2") +@Command(name = "Args2") public class Args2 { @Arguments(description = "List of parameters") diff --git a/src/test/java/io/airlift/airline/args/ArgsArityString.java b/src/test/java/io/airlift/airline/args/ArgsArityString.java index 6f812880b..f17e4c2fe 100644 --- a/src/test/java/io/airlift/airline/args/ArgsArityString.java +++ b/src/test/java/io/airlift/airline/args/ArgsArityString.java @@ -29,7 +29,7 @@ * * @author cbeust */ -@Command(name="ArgsArityString") +@Command(name = "ArgsArityString") public class ArgsArityString { diff --git a/src/test/java/io/airlift/airline/args/ArgsBooleanArity.java b/src/test/java/io/airlift/airline/args/ArgsBooleanArity.java index f5d0b632a..91070d83e 100644 --- a/src/test/java/io/airlift/airline/args/ArgsBooleanArity.java +++ b/src/test/java/io/airlift/airline/args/ArgsBooleanArity.java @@ -21,7 +21,7 @@ import io.airlift.airline.Command; import io.airlift.airline.Option; -@Command(name="ArgsBooleanArity") +@Command(name = "ArgsBooleanArity") public class ArgsBooleanArity { @Option(name = "-debug", arity = 1) diff --git a/src/test/java/io/airlift/airline/args/ArgsBooleanArity0.java b/src/test/java/io/airlift/airline/args/ArgsBooleanArity0.java index ce2f81727..cb19928e8 100644 --- a/src/test/java/io/airlift/airline/args/ArgsBooleanArity0.java +++ b/src/test/java/io/airlift/airline/args/ArgsBooleanArity0.java @@ -21,7 +21,7 @@ import io.airlift.airline.Command; import io.airlift.airline.Option; -@Command(name="ArgsBooleanArity0") +@Command(name = "ArgsBooleanArity0") public class ArgsBooleanArity0 { @Option(name = "-debug", arity = 0) diff --git a/src/test/java/io/airlift/airline/args/ArgsDefault.java b/src/test/java/io/airlift/airline/args/ArgsDefault.java index 4dbb39097..d1f758fa0 100644 --- a/src/test/java/io/airlift/airline/args/ArgsDefault.java +++ b/src/test/java/io/airlift/airline/args/ArgsDefault.java @@ -40,5 +40,4 @@ public class ArgsDefault @Option(name = "-level", description = "A long number") public long level; - } diff --git a/src/test/java/io/airlift/airline/args/ArgsEnum.java b/src/test/java/io/airlift/airline/args/ArgsEnum.java index df8111c5b..75fc99c7c 100644 --- a/src/test/java/io/airlift/airline/args/ArgsEnum.java +++ b/src/test/java/io/airlift/airline/args/ArgsEnum.java @@ -37,7 +37,6 @@ public enum ChoiceType @Option(name = "-choice", description = "Choice parameter") public ChoiceType choice = ChoiceType.ONE; - } diff --git a/src/test/java/io/airlift/airline/args/ArgsInherited.java b/src/test/java/io/airlift/airline/args/ArgsInherited.java index 23349c2ce..59d1d79b1 100644 --- a/src/test/java/io/airlift/airline/args/ArgsInherited.java +++ b/src/test/java/io/airlift/airline/args/ArgsInherited.java @@ -21,11 +21,10 @@ import io.airlift.airline.Command; import io.airlift.airline.Option; -@Command(name="ArgsInherited") -public class ArgsInherited extends ArgsDefault +@Command(name = "ArgsInherited") +public class ArgsInherited + extends ArgsDefault { - @Option(name = "-child", description = "Child parameter") public Integer child = 1; - } diff --git a/src/test/java/io/airlift/airline/args/ArgsMultipleUnparsed.java b/src/test/java/io/airlift/airline/args/ArgsMultipleUnparsed.java index 0eab6c1a4..042daa031 100644 --- a/src/test/java/io/airlift/airline/args/ArgsMultipleUnparsed.java +++ b/src/test/java/io/airlift/airline/args/ArgsMultipleUnparsed.java @@ -26,7 +26,7 @@ * * @author cbeust */ -@Command(name="ArgsMultipleUnparsed") +@Command(name = "ArgsMultipleUnparsed") public class ArgsMultipleUnparsed { @Arguments(description = "Bogus1") diff --git a/src/test/java/io/airlift/airline/args/ArgsOutOfMemory.java b/src/test/java/io/airlift/airline/args/ArgsOutOfMemory.java index 800de9a71..d065b076f 100644 --- a/src/test/java/io/airlift/airline/args/ArgsOutOfMemory.java +++ b/src/test/java/io/airlift/airline/args/ArgsOutOfMemory.java @@ -3,7 +3,7 @@ import io.airlift.airline.Command; import io.airlift.airline.Option; -@Command(name="ArgsOutOfMemory") +@Command(name = "ArgsOutOfMemory") public class ArgsOutOfMemory { @Option(name = {"-p", "--pattern"}, diff --git a/src/test/java/io/airlift/airline/args/ArgsPrivate.java b/src/test/java/io/airlift/airline/args/ArgsPrivate.java index a9f9c71f7..be54a8f71 100644 --- a/src/test/java/io/airlift/airline/args/ArgsPrivate.java +++ b/src/test/java/io/airlift/airline/args/ArgsPrivate.java @@ -21,7 +21,7 @@ import io.airlift.airline.Command; import io.airlift.airline.Option; -@Command(name="ArgsPrivate") +@Command(name = "ArgsPrivate") public class ArgsPrivate { @Option(name = "-verbose") diff --git a/src/test/java/io/airlift/airline/args/ArgsRequired.java b/src/test/java/io/airlift/airline/args/ArgsRequired.java index b5cf46903..05a498293 100644 --- a/src/test/java/io/airlift/airline/args/ArgsRequired.java +++ b/src/test/java/io/airlift/airline/args/ArgsRequired.java @@ -23,7 +23,7 @@ import java.util.List; -@Command(name="ArgsRequired") +@Command(name = "ArgsRequired") public class ArgsRequired { @Arguments(description = "List of files", required = true) diff --git a/src/test/java/io/airlift/airline/args/ArgsSingleChar.java b/src/test/java/io/airlift/airline/args/ArgsSingleChar.java index 4da491a82..2eb18de95 100644 --- a/src/test/java/io/airlift/airline/args/ArgsSingleChar.java +++ b/src/test/java/io/airlift/airline/args/ArgsSingleChar.java @@ -25,7 +25,7 @@ import java.util.List; -@Command(name="ArgsSingleChar") +@Command(name = "ArgsSingleChar") public class ArgsSingleChar { @Arguments diff --git a/src/test/java/io/airlift/airline/args/Arity1.java b/src/test/java/io/airlift/airline/args/Arity1.java index 638da4e9f..c4e444418 100644 --- a/src/test/java/io/airlift/airline/args/Arity1.java +++ b/src/test/java/io/airlift/airline/args/Arity1.java @@ -3,7 +3,7 @@ import io.airlift.airline.Command; import io.airlift.airline.Option; -@Command(name="Arity1") +@Command(name = "Arity1") public class Arity1 { @Option(arity = 1, name = "-inspect", description = "", required = false) diff --git a/src/test/java/io/airlift/airline/args/CommandHidden.java b/src/test/java/io/airlift/airline/args/CommandHidden.java index 20fdde8a5..6f7c71da8 100644 --- a/src/test/java/io/airlift/airline/args/CommandHidden.java +++ b/src/test/java/io/airlift/airline/args/CommandHidden.java @@ -21,7 +21,7 @@ import io.airlift.airline.Command; import io.airlift.airline.Option; -@Command(name="CommandHidden", hidden = true) +@Command(name = "CommandHidden", hidden = true) public class CommandHidden { @Option(name = "--hidden", hidden = true) diff --git a/src/test/java/io/airlift/airline/args/CommandLineArgs.java b/src/test/java/io/airlift/airline/args/CommandLineArgs.java index 9b61e269c..b8b91de26 100644 --- a/src/test/java/io/airlift/airline/args/CommandLineArgs.java +++ b/src/test/java/io/airlift/airline/args/CommandLineArgs.java @@ -24,7 +24,7 @@ import java.util.List; -@Command(name="CommandLineArgs") +@Command(name = "CommandLineArgs") public class CommandLineArgs { @@ -119,5 +119,4 @@ public class CommandLineArgs @Option(name = "-slave", description = "Host where the slave is") public String slave; - } diff --git a/src/test/java/io/airlift/airline/args/OptionsHidden.java b/src/test/java/io/airlift/airline/args/OptionsHidden.java index 7263e949b..ac1e6e448 100644 --- a/src/test/java/io/airlift/airline/args/OptionsHidden.java +++ b/src/test/java/io/airlift/airline/args/OptionsHidden.java @@ -21,7 +21,7 @@ import io.airlift.airline.Command; import io.airlift.airline.Option; -@Command(name="OptionsHidden") +@Command(name = "OptionsHidden") public class OptionsHidden { @Option(name = "--hidden", hidden = true) diff --git a/src/test/java/io/airlift/airline/args/OptionsRequired.java b/src/test/java/io/airlift/airline/args/OptionsRequired.java index b42576595..30fdd9ae3 100644 --- a/src/test/java/io/airlift/airline/args/OptionsRequired.java +++ b/src/test/java/io/airlift/airline/args/OptionsRequired.java @@ -21,7 +21,7 @@ import io.airlift.airline.Command; import io.airlift.airline.Option; -@Command(name="OptionsRequired") +@Command(name = "OptionsRequired") public class OptionsRequired { @Option(name = "--required", required = true) diff --git a/src/test/java/io/airlift/airline/command/CommandAdd.java b/src/test/java/io/airlift/airline/command/CommandAdd.java index bceb5ff50..d0b07f98a 100644 --- a/src/test/java/io/airlift/airline/command/CommandAdd.java +++ b/src/test/java/io/airlift/airline/command/CommandAdd.java @@ -23,6 +23,7 @@ import io.airlift.airline.Option; import javax.inject.Inject; + import java.util.List; @Command(name = "add", description = "Add file contents to the index") @@ -36,5 +37,4 @@ public class CommandAdd @Option(name = "-i") public Boolean interactive = false; - } diff --git a/src/test/java/io/airlift/airline/command/CommandCommit.java b/src/test/java/io/airlift/airline/command/CommandCommit.java index e62dc7892..dd797a59f 100644 --- a/src/test/java/io/airlift/airline/command/CommandCommit.java +++ b/src/test/java/io/airlift/airline/command/CommandCommit.java @@ -23,6 +23,7 @@ import io.airlift.airline.Option; import javax.inject.Inject; + import java.util.List; @Command(name = "commit", description = "Record changes to the repository") diff --git a/src/test/java/io/airlift/airline/command/CommandTest.java b/src/test/java/io/airlift/airline/command/CommandTest.java index 531b99441..c4d89f160 100644 --- a/src/test/java/io/airlift/airline/command/CommandTest.java +++ b/src/test/java/io/airlift/airline/command/CommandTest.java @@ -19,12 +19,14 @@ package io.airlift.airline.command; import io.airlift.airline.Cli; -import org.testng.Assert; import org.testng.annotations.Test; import java.util.Arrays; -import static io.airlift.airline.TestUtil.singleCommandParser; +import static io.airlift.airline.TestingUtil.singleCommandParser; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertTrue; public class CommandTest { @@ -37,11 +39,11 @@ public void namedCommandTest1() .build(); Object command = parser.parse("add", "-i", "A.java"); - Assert.assertNotNull(command, "command is null"); - Assert.assertTrue(command instanceof CommandAdd); + assertNotNull(command, "command is null"); + assertTrue(command instanceof CommandAdd); CommandAdd add = (CommandAdd) command; - Assert.assertEquals(add.interactive.booleanValue(), true); - Assert.assertEquals(add.patterns, Arrays.asList("A.java")); + assertEquals(add.interactive.booleanValue(), true); + assertEquals(add.patterns, Arrays.asList("A.java")); } @Test(expectedExceptions = IllegalArgumentException.class) @@ -60,13 +62,13 @@ public void commandTest2() parser.parse("-v", "commit", "--amend", "--author", "cbeust", "A.java", "B.java"); Object command = parser.parse("-v", "commit", "--amend", "--author", "cbeust", "A.java", "B.java"); - Assert.assertNotNull(command, "command is null"); - Assert.assertTrue(command instanceof CommandCommit); + assertNotNull(command, "command is null"); + assertTrue(command instanceof CommandCommit); CommandCommit commit = (CommandCommit) command; - Assert.assertTrue(commit.commandMain.verbose); - Assert.assertTrue(commit.amend); - Assert.assertEquals(commit.author, "cbeust"); - Assert.assertEquals(commit.files, Arrays.asList("A.java", "B.java")); + assertTrue(commit.commandMain.verbose); + assertTrue(commit.amend); + assertEquals(commit.author, "cbeust"); + assertEquals(commit.files, Arrays.asList("A.java", "B.java")); } }