Fix junit test error when named suggestion provider runs before method construction
Parsing should occur in the @BeforeAll or this test fails sporadically Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
This commit is contained in:
parent
d8f0b1a47e
commit
1c7ebe0957
1 changed files with 9 additions and 4 deletions
|
|
@ -31,6 +31,7 @@ import cloud.commandframework.meta.SimpleCommandMeta;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.TestInstance;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
|
|
@ -43,15 +44,17 @@ import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.CompletionException;
|
import java.util.concurrent.CompletionException;
|
||||||
|
|
||||||
|
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||||
class AnnotationParserTest {
|
class AnnotationParserTest {
|
||||||
|
|
||||||
private static final List<String> NAMED_SUGGESTIONS = Arrays.asList("Dancing-Queen", "Gimme!-Gimme!-Gimme!", "Waterloo");
|
private static final List<String> NAMED_SUGGESTIONS = Arrays.asList("Dancing-Queen", "Gimme!-Gimme!-Gimme!", "Waterloo");
|
||||||
|
|
||||||
private static CommandManager<TestCommandSender> manager;
|
private CommandManager<TestCommandSender> manager;
|
||||||
private static AnnotationParser<TestCommandSender> annotationParser;
|
private AnnotationParser<TestCommandSender> annotationParser;
|
||||||
|
private Collection<Command<TestCommandSender>> commands;
|
||||||
|
|
||||||
@BeforeAll
|
@BeforeAll
|
||||||
static void setup() {
|
void setup() {
|
||||||
manager = new TestCommandManager();
|
manager = new TestCommandManager();
|
||||||
annotationParser = new AnnotationParser<>(manager, TestCommandSender.class, p -> SimpleCommandMeta.empty());
|
annotationParser = new AnnotationParser<>(manager, TestCommandSender.class, p -> SimpleCommandMeta.empty());
|
||||||
manager.getParserRegistry().registerNamedParserSupplier("potato", p -> new StringArgument.StringParser<>(
|
manager.getParserRegistry().registerNamedParserSupplier("potato", p -> new StringArgument.StringParser<>(
|
||||||
|
|
@ -66,11 +69,13 @@ class AnnotationParserTest {
|
||||||
InjectableValue.class,
|
InjectableValue.class,
|
||||||
(context, annotations) -> new InjectableValue("Hello World!")
|
(context, annotations) -> new InjectableValue("Hello World!")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* Parse the class. Required for both testMethodConstruction() and testNamedSuggestionProvider() */
|
||||||
|
commands = annotationParser.parse(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testMethodConstruction() {
|
void testMethodConstruction() {
|
||||||
final Collection<Command<TestCommandSender>> commands = annotationParser.parse(this);
|
|
||||||
Assertions.assertFalse(commands.isEmpty());
|
Assertions.assertFalse(commands.isEmpty());
|
||||||
manager.executeCommand(new TestCommandSender(), "test literal 10").join();
|
manager.executeCommand(new TestCommandSender(), "test literal 10").join();
|
||||||
manager.executeCommand(new TestCommandSender(), "t literal 10 o").join();
|
manager.executeCommand(new TestCommandSender(), "t literal 10 o").join();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue