migrate AutocompleteTest and add mockito ofc
This commit is contained in:
parent
92704ca230
commit
ded81983e3
@ -18,6 +18,7 @@ repositories {
|
||||
dependencies {
|
||||
// Use JUnit Jupiter for testing.
|
||||
testImplementation(libs.junit.jupiter)
|
||||
testImplementation(libs.mockito)
|
||||
|
||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
||||
implementation(libs.log4j)
|
||||
|
@ -1,12 +1,18 @@
|
||||
package net.tomatentum.marinara.test.javacord;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.javacord.api.interaction.AutocompleteInteraction;
|
||||
import org.javacord.api.interaction.SlashCommandInteractionOption;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import net.tomatentum.marinara.Marinara;
|
||||
import net.tomatentum.marinara.test.javacord.mocks.AutocompleteInteractionMock;
|
||||
import net.tomatentum.marinara.test.javacord.mocks.DiscordApiMock;
|
||||
import net.tomatentum.marinara.wrapper.LibraryWrapper;
|
||||
import net.tomatentum.marinara.wrapper.javacord.JavacordWrapper;
|
||||
|
||||
@ -14,10 +20,21 @@ public class AutoCompleteTest {
|
||||
|
||||
@Test
|
||||
public void testAutocomplete() {
|
||||
LibraryWrapper wrapper = new JavacordWrapper(new DiscordApiMock()); //null okay as we don't use the discord API in this test.
|
||||
|
||||
SlashCommandInteractionOption optionMock = mock();
|
||||
AutocompleteInteraction autocompleteInteractionMock = mock();
|
||||
|
||||
when(optionMock.getName()).thenReturn("foo");
|
||||
when(optionMock.getStringValue()).thenReturn(Optional.of("test"));
|
||||
|
||||
when(autocompleteInteractionMock.getCommandName()).thenReturn("test");
|
||||
when(autocompleteInteractionMock.getFocusedOption()).thenReturn(optionMock);
|
||||
when(autocompleteInteractionMock.getOptions()).thenReturn(Collections.emptyList());
|
||||
|
||||
LibraryWrapper wrapper = new JavacordWrapper(null); //null okay as we don't use the discord API in this test.
|
||||
Marinara marinara = Marinara.load(wrapper);
|
||||
marinara.getRegistry().addInteractions(new TestAutocomplete());
|
||||
wrapper.handleInteraction(new AutocompleteInteractionMock());
|
||||
assertTrue(AutocompleteInteractionMock.didAutocompleteRun);
|
||||
wrapper.handleInteraction(autocompleteInteractionMock);
|
||||
verify(autocompleteInteractionMock).respondWithChoices(any());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user