Skip to content

Commit bcb9cec

Browse files
MikeTheSnowmanremkop
authored andcommitted
Fix and unit test for issue 1836.
1 parent 94bc75d commit bcb9cec

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/main/java/picocli/CommandLine.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7010,7 +7010,7 @@ public CommandSpec addMixin(String name, CommandSpec mixin) {
70107010
mixins.put(interpolator.interpolate(name), mixin);
70117011

70127012
initName(interpolator.interpolateCommandName(mixin.name()));
7013-
// TODO initAliases(mixin.aliases()); // should we?
7013+
initAliases(mixin.aliases()); // should we?
70147014
// TODO initCommandHierarchyWithResourceBundle(mixin.usageMessage().messages().resourceBundleBaseName(), );
70157015
initFrom(mixin);
70167016

@@ -7455,6 +7455,7 @@ public void updateCommandAttributes(Command cmd, IFactory factory) {
74557455
}
74567456
}
74577457

7458+
void initAliases(String[] aliases) { if (aliases != null) { this.aliases.addAll(Arrays.asList(aliases));}}
74587459
void initName(String value) { if (initializable(name, value, DEFAULT_COMMAND_NAME)) {name = value;} }
74597460
void initHelpCommand(boolean value) { if (initializable(isHelpCommand, value, DEFAULT_IS_HELP_COMMAND)) {isHelpCommand = value;} }
74607461
void initVersion(String[] value) { if (initializable(version, value, UsageMessageSpec.DEFAULT_MULTI_LINE)) {version = value.clone();} }

src/test/java/picocli/MixinTest.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1081,4 +1081,23 @@ public void testMixinLongOptionsMaxWidth() {
10811081

10821082
assertEquals(43, another.usageMessage().longOptionsMaxWidth());
10831083
}
1084+
1085+
@Command(aliases = {"ls"} )
1086+
public static class ListAliasMixin {
1087+
}
1088+
1089+
@Command(name="list")
1090+
public static class MyListCommand {
1091+
@Mixin() public ListAliasMixin aliasMixin;
1092+
}
1093+
1094+
@Command(subcommands = {MyListCommand.class})
1095+
public static class App_Issue1836 {
1096+
}
1097+
1098+
@Test
1099+
public void testIssue1836CommandAliasOnMixin() {
1100+
Help help = new Help(new App_Issue1836());
1101+
assertEquals("list, ls", help.commandList().trim());
1102+
}
10841103
}

0 commit comments

Comments
 (0)