Compare commits
No commits in common. "ca0ab13316a097a77f41536e6b155f08c643be49" and "5d8f7374819f8493bf371564fba5153c37692b71" have entirely different histories.
ca0ab13316
...
5d8f737481
@ -57,8 +57,6 @@ public class Discord4JWrapper extends LibraryWrapper {
|
|||||||
if (api != null)
|
if (api != null)
|
||||||
api.on(InteractionCreateEvent.class)
|
api.on(InteractionCreateEvent.class)
|
||||||
.subscribe(event -> handleInteraction(event));
|
.subscribe(event -> handleInteraction(event));
|
||||||
else
|
|
||||||
logger.warn("GatewayDiscordClient was null so no Events were subscribed to.");
|
|
||||||
|
|
||||||
logger.info("Discord4J wrapper loaded!");
|
logger.info("Discord4J wrapper loaded!");
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,6 @@ repositories {
|
|||||||
dependencies {
|
dependencies {
|
||||||
// Use JUnit Jupiter for testing.
|
// Use JUnit Jupiter for testing.
|
||||||
testImplementation(libs.junit.jupiter)
|
testImplementation(libs.junit.jupiter)
|
||||||
testImplementation(libs.mockito)
|
|
||||||
|
|
||||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
||||||
implementation(libs.log4j)
|
implementation(libs.log4j)
|
||||||
|
@ -44,10 +44,7 @@ public class JavacordWrapper extends LibraryWrapper {
|
|||||||
public JavacordWrapper(DiscordApi api) {
|
public JavacordWrapper(DiscordApi api) {
|
||||||
this.api = api;
|
this.api = api;
|
||||||
this.contextObjectProvider = new JavacordContextObjectProvider();
|
this.contextObjectProvider = new JavacordContextObjectProvider();
|
||||||
if (api != null)
|
|
||||||
api.addInteractionCreateListener((e) -> handleInteraction(e.getInteraction()));
|
api.addInteractionCreateListener((e) -> handleInteraction(e.getInteraction()));
|
||||||
else
|
|
||||||
logger.warn("DiscordApi was null so no Events were subscribed to.");
|
|
||||||
logger.info("Javacord wrapper loaded!");
|
logger.info("Javacord wrapper loaded!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,18 +1,12 @@
|
|||||||
package net.tomatentum.marinara.test.javacord;
|
package net.tomatentum.marinara.test.javacord;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
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 org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import net.tomatentum.marinara.Marinara;
|
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.LibraryWrapper;
|
||||||
import net.tomatentum.marinara.wrapper.javacord.JavacordWrapper;
|
import net.tomatentum.marinara.wrapper.javacord.JavacordWrapper;
|
||||||
|
|
||||||
@ -20,21 +14,10 @@ public class AutoCompleteTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAutocomplete() {
|
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 marinara = Marinara.load(wrapper);
|
||||||
marinara.getRegistry().addInteractions(new TestAutocomplete());
|
marinara.getRegistry().addInteractions(new TestAutocomplete());
|
||||||
wrapper.handleInteraction(autocompleteInteractionMock);
|
wrapper.handleInteraction(new AutocompleteInteractionMock());
|
||||||
verify(autocompleteInteractionMock).respondWithChoices(any());
|
assertTrue(AutocompleteInteractionMock.didAutocompleteRun);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,8 @@ import org.junit.jupiter.api.TestInstance;
|
|||||||
import org.junit.jupiter.api.TestInstance.Lifecycle;
|
import org.junit.jupiter.api.TestInstance.Lifecycle;
|
||||||
|
|
||||||
import net.tomatentum.marinara.Marinara;
|
import net.tomatentum.marinara.Marinara;
|
||||||
import net.tomatentum.marinara.test.javacord.mocks.CommonMocks;
|
import net.tomatentum.marinara.test.javacord.mocks.ButtonInteractionMock;
|
||||||
|
import net.tomatentum.marinara.test.javacord.mocks.DiscordApiMock;
|
||||||
import net.tomatentum.marinara.wrapper.LibraryWrapper;
|
import net.tomatentum.marinara.wrapper.LibraryWrapper;
|
||||||
import net.tomatentum.marinara.wrapper.javacord.JavacordWrapper;
|
import net.tomatentum.marinara.wrapper.javacord.JavacordWrapper;
|
||||||
|
|
||||||
@ -16,10 +17,10 @@ public class ButtonTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testButtonExecution() {
|
public void testButtonExecution() {
|
||||||
LibraryWrapper wrapper = new JavacordWrapper(null); //null okay as we don't use the discord API in this test.
|
LibraryWrapper wrapper = new JavacordWrapper(new DiscordApiMock()); //null okay as we don't use the discord API in this test.
|
||||||
Marinara marinara = Marinara.load(wrapper);
|
Marinara marinara = Marinara.load(wrapper);
|
||||||
marinara.getRegistry().addInteractions(new TestButton());
|
marinara.getRegistry().addInteractions(new TestButton());
|
||||||
wrapper.handleInteraction(CommonMocks.getButtonInteractionMock("test"));
|
wrapper.handleInteraction(new ButtonInteractionMock("test"));
|
||||||
assertTrue(TestButton.didRun);
|
assertTrue(TestButton.didRun);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
package net.tomatentum.marinara.test.javacord.mocks;
|
|
||||||
|
|
||||||
import static org.mockito.Mockito.mock;
|
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
import org.javacord.api.entity.channel.TextChannel;
|
|
||||||
import org.javacord.api.entity.message.Message;
|
|
||||||
import org.javacord.api.entity.server.Server;
|
|
||||||
import org.javacord.api.entity.user.User;
|
|
||||||
import org.javacord.api.interaction.ButtonInteraction;
|
|
||||||
|
|
||||||
public class CommonMocks {
|
|
||||||
|
|
||||||
public static ButtonInteraction getButtonInteractionMock(String customId) {
|
|
||||||
ButtonInteraction buttonInteractionMock = mock();
|
|
||||||
|
|
||||||
when(buttonInteractionMock.getCustomId()).thenReturn(customId);
|
|
||||||
when(buttonInteractionMock.getMessage()).thenReturn(mock(Message.class));
|
|
||||||
when(buttonInteractionMock.getServer()).thenReturn(Optional.of(mock(Server.class)));
|
|
||||||
when(buttonInteractionMock.getChannel()).thenReturn(Optional.of(mock(TextChannel.class)));
|
|
||||||
when(buttonInteractionMock.getUser()).thenReturn(mock(User.class));
|
|
||||||
|
|
||||||
|
|
||||||
return buttonInteractionMock;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user