mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-11-08 03:29:41 +01:00
Fix #338 Create test to verify consistent argument count
This commit is contained in:
parent
1c68f596bd
commit
0fdc8d2810
@ -5,6 +5,7 @@ import fr.xephi.authme.permission.PermissionNode;
|
||||
import fr.xephi.authme.util.StringUtils;
|
||||
import fr.xephi.authme.util.WrapperMock;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -269,6 +270,42 @@ public class CommandInitializerTest {
|
||||
walkThroughCommands(commands, adminPermissionChecker);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that multiple CommandDescription instances pointing to the same ExecutableCommand use the same
|
||||
* count of arguments.
|
||||
*/
|
||||
@Test
|
||||
@Ignore // TODO #306 ljacqu 20151214: Un-ignore this test and fix the offending command
|
||||
public void shouldPointToSameExecutableCommandWithConsistentArgumentCount() {
|
||||
// given
|
||||
final Map<Class<? extends ExecutableCommand>, Integer> mandatoryArguments = new HashMap<>();
|
||||
final Map<Class<? extends ExecutableCommand>, Integer> totalArguments = new HashMap<>();
|
||||
|
||||
BiConsumer argChecker = new BiConsumer() {
|
||||
@Override
|
||||
public void accept(CommandDescription command, int depth) {
|
||||
testCollectionForCommand(command, CommandUtils.getMinNumberOfArguments(command), mandatoryArguments);
|
||||
testCollectionForCommand(command, CommandUtils.getMaxNumberOfArguments(command), totalArguments);
|
||||
}
|
||||
private void testCollectionForCommand(CommandDescription command, int argCount,
|
||||
Map<Class<? extends ExecutableCommand>, Integer> collection) {
|
||||
final Class<? extends ExecutableCommand> clazz = command.getExecutableCommand().getClass();
|
||||
Integer existingCount = collection.get(clazz);
|
||||
if (existingCount != null) {
|
||||
String commandDescription = "Command with label '" + command.getLabels().get(0) + "' and parent '"
|
||||
+ (command.getParent() != null ? command.getLabels().get(0) : "null") + "' ";
|
||||
assertThat(commandDescription + "should point to " + clazz + " with arguments consistent to others",
|
||||
argCount, equalTo(existingCount));
|
||||
} else {
|
||||
collection.put(clazz, argCount);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// when / then
|
||||
walkThroughCommands(commands, argChecker);
|
||||
}
|
||||
|
||||
|
||||
// ------------
|
||||
// Helper methods
|
||||
|
Loading…
Reference in New Issue
Block a user