From ded81983e342c6dedc931acc3ebf1e3fec0f2a94 Mon Sep 17 00:00:00 2001 From: tueem Date: Wed, 19 Feb 2025 14:00:01 +0100 Subject: [PATCH] migrate AutocompleteTest and add mockito ofc --- wrapper/javacord/build.gradle.kts | 1 + .../test/javacord/AutoCompleteTest.java | 29 +++++++++++++++---- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/wrapper/javacord/build.gradle.kts b/wrapper/javacord/build.gradle.kts index 2d1e7c7..22b62c0 100644 --- a/wrapper/javacord/build.gradle.kts +++ b/wrapper/javacord/build.gradle.kts @@ -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) diff --git a/wrapper/javacord/src/test/java/net/tomatentum/marinara/test/javacord/AutoCompleteTest.java b/wrapper/javacord/src/test/java/net/tomatentum/marinara/test/javacord/AutoCompleteTest.java index 9c5fc32..e10d19c 100644 --- a/wrapper/javacord/src/test/java/net/tomatentum/marinara/test/javacord/AutoCompleteTest.java +++ b/wrapper/javacord/src/test/java/net/tomatentum/marinara/test/javacord/AutoCompleteTest.java @@ -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()); } }