Skip to content

Commit

Permalink
Added test Issue1528#testSubCommandAliasModification
Browse files Browse the repository at this point in the history
  • Loading branch information
rgoldberg authored and remkop committed Feb 7, 2022
1 parent e5ee68b commit edd902c
Showing 1 changed file with 74 additions and 0 deletions.
74 changes: 74 additions & 0 deletions src/test/java/picocli/Issue1528.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package picocli;

import java.util.concurrent.Callable;
import org.junit.Test;
import picocli.CommandLine.Command;
import picocli.CommandLine.Model.CommandSpec;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;

public class Issue1528 {

@Command(name = "main", subcommands = SubCommand.class)
static class MainCommand implements Callable<Integer> {
@Override
public Integer call() throws Exception {
return null;
}
}

@Command(name = "sub")
static class SubCommand implements Callable<Integer> {
@Override
public Integer call() throws Exception {
return null;
}
}

@Test
public void testSubCommandAliasModification() {
CommandLine cl = new CommandLine(new MainCommand());
CommandSpec cs = cl.getSubcommands().get("sub").getCommandSpec();

assertEquals(0, cs.aliases().length);
assertEquals(0, cl.execute("sub"));
assertNotEquals(0, cl.execute("alias1"));

cs.aliases("alias1");
assertEquals(1, cs.aliases().length);
assertEquals("alias1", cs.aliases()[0]);
assertEquals(0, cl.execute("sub"));
assertEquals(0, cl.execute("alias1"));

cs.aliases("alias1", "alias2");
assertEquals(2, cs.aliases().length);
assertEquals("alias1", cs.aliases()[0]);
assertEquals("alias2", cs.aliases()[1]);
assertEquals(0, cl.execute("sub"));
assertEquals(0, cl.execute("alias1"));
assertEquals(0, cl.execute("alias2"));

cs.aliases("alias2");
assertEquals(1, cs.aliases().length);
assertEquals("alias2", cs.aliases()[0]);
assertEquals(0, cl.execute("sub"));
assertNotEquals(0, cl.execute("alias1"));
assertEquals(0, cl.execute("alias2"));

cs.aliases("alias3");
assertEquals(1, cs.aliases().length);
assertEquals("alias3", cs.aliases()[0]);
assertEquals(0, cl.execute("sub"));
assertNotEquals(0, cl.execute("alias1"));
assertNotEquals(0, cl.execute("alias2"));
assertEquals(0, cl.execute("alias3"));

cs.aliases(new String[0]);
assertEquals(0, cs.aliases().length);
assertEquals(0, cl.execute("sub"));
assertNotEquals(0, cl.execute("alias1"));
assertNotEquals(0, cl.execute("alias2"));
assertNotEquals(0, cl.execute("alias3"));
}
}

0 comments on commit edd902c

Please sign in to comment.