refactor(reflection): migrate to using cutin library
All checks were successful
github-mirror / push-github (push) Successful in 12s
Build / Gradle-Build (push) Successful in 15s
Test / Gradle-Test (push) Successful in 24s

This commit is contained in:
2025-04-13 23:15:38 +02:00
parent ebf5600e29
commit ef9384336a
47 changed files with 452 additions and 756 deletions

View File

@@ -38,7 +38,7 @@ class AutoCompleteTest {
LibraryWrapper wrapper = new Discord4JWrapper(null); //null okay as we don't use the discord API in this test.
Marinara marinara = Marinara.load(wrapper);
marinara.getRegistry().addInteractions(new TestAutocomplete());
marinara.getInteractionContainer().addAllMethods(new TestAutocomplete());
wrapper.handleInteraction(autoCompleteEventMock);
verify(autoCompleteEventMock).respondWithSuggestions(any());
}

View File

@@ -13,15 +13,15 @@ import net.tomatentum.marinara.wrapper.LibraryWrapper;
import net.tomatentum.marinara.wrapper.discord4j.Discord4JWrapper;
@TestInstance(Lifecycle.PER_CLASS)
public class ButtonTest {
class ButtonTest {
@Test
public void testButtonExecution() {
void testButtonExecution() {
ButtonInteractionEvent buttonEventMock = CommonMocks.getButtonEventMock("test");
LibraryWrapper wrapper = new Discord4JWrapper(null); //null okay as we don't use the discord API in this test.
Marinara marinara = Marinara.load(wrapper);
marinara.getRegistry().addInteractions(new TestButton());
marinara.getInteractionContainer().addAllMethods(new TestButton());
wrapper.handleInteraction(buttonEventMock);
assertTrue(TestButton.didRun);
}

View File

@@ -24,16 +24,16 @@ import net.tomatentum.marinara.wrapper.discord4j.checks.PermissionCheck;
import reactor.core.publisher.Mono;
@TestInstance(Lifecycle.PER_CLASS)
public class InteractionCheckTest {
class InteractionCheckTest {
@Test
public void testInteractionCheck() {
void testInteractionCheck() {
ButtonInteractionEvent buttonEventMock = CommonMocks.getButtonEventMock("test");
LibraryWrapper wrapper = new Discord4JWrapper(null);
Marinara marinara = Marinara.load(wrapper);
marinara.getCheckRegistry().addCheck(new TestInteractionCheck());
marinara.getRegistry().addInteractions(new TestButton());
marinara.getCheckContainer().addAllMethods(new TestInteractionCheck());
marinara.getInteractionContainer().addAllMethods(new TestButton());
wrapper.handleInteraction(buttonEventMock);
assertTrue(TestInteractionCheck.preExecuted);
@@ -42,7 +42,7 @@ public class InteractionCheckTest {
}
@Test
public void testPermissionCheck() {
void testPermissionCheck() {
Member memberMock = mock();
Interaction interactionMock = mock();
@@ -54,8 +54,8 @@ public class InteractionCheckTest {
LibraryWrapper wrapper = new Discord4JWrapper(null);
Marinara marinara = Marinara.load(wrapper);
marinara.getCheckRegistry().addCheck(new PermissionCheck());
marinara.getRegistry().addInteractions(new TestButton());
marinara.getCheckContainer().addAllMethods(new PermissionCheck());
marinara.getInteractionContainer().addAllMethods(new TestButton());
wrapper.handleInteraction(buttonEventMock);
assertFalse(TestButton.didPermRun);

View File

@@ -22,9 +22,9 @@ import net.tomatentum.marinara.Marinara;
import net.tomatentum.marinara.wrapper.LibraryWrapper;
import net.tomatentum.marinara.wrapper.discord4j.Discord4JWrapper;
@TestInstance(Lifecycle.PER_CLASS)
public class SlashCommandTest {
class SlashCommandTest {
String DISCORD_TOKEN = System.getenv("DISCORD_TEST_TOKEN");
private static String DISCORD_TOKEN = System.getenv("DISCORD_TEST_TOKEN");
GatewayDiscordClient client;
@BeforeAll
@@ -41,8 +41,8 @@ public class SlashCommandTest {
@Test
void testSlashCommand() {
Marinara marinara = Marinara.load(new Discord4JWrapper(client));
marinara.getRegistry().addInteractions(new TestCommand());
marinara.getRegistry().registerCommands();
marinara.getInteractionContainer().addAllMethods(new TestCommand());
marinara.registerCommands();
System.out.println("Success!");
}
@@ -64,7 +64,7 @@ public class SlashCommandTest {
LibraryWrapper wrapper = new Discord4JWrapper(client);
Marinara marinara = Marinara.load(wrapper);
marinara.getRegistry().addInteractions(new TestCommand());
marinara.getInteractionContainer().addAllMethods(new TestCommand());
wrapper.handleInteraction(eventMock);
}

View File

@@ -2,8 +2,6 @@ package net.tomatentum.marinara.test.discord4j;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.Collections;
import discord4j.core.event.domain.interaction.ChatInputAutoCompleteEvent;
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
import discord4j.discordjson.json.ApplicationCommandOptionChoiceData;
@@ -23,9 +21,8 @@ public class TestAutocomplete implements InteractionHandler {
autocompletes = @AutoComplete("testAuto")
)
)
@AutoComplete("testAuto")
public void exec(ChatInputInteractionEvent context) {
// Not executed just there for autocomplete to work
}
@AutoComplete("testAuto")

View File

@@ -26,7 +26,7 @@ public class TestCommand implements InteractionHandler {
}
)
public void exec(ChatInputInteractionEvent event, String test) {
assertEquals(test, "test");
assertEquals("test", test);
System.out.println("Success!");
}
}

View File

@@ -16,10 +16,10 @@ import net.tomatentum.marinara.Marinara;
import net.tomatentum.marinara.wrapper.LibraryWrapper;
import net.tomatentum.marinara.wrapper.javacord.JavacordWrapper;
public class AutoCompleteTest {
class AutoCompleteTest {
@Test
public void testAutocomplete() {
void testAutocomplete() {
SlashCommandInteractionOption optionMock = mock();
AutocompleteInteraction autocompleteInteractionMock = mock();
@@ -33,7 +33,7 @@ public class AutoCompleteTest {
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());
marinara.getInteractionContainer().addAllMethods(new TestAutocomplete());
wrapper.handleInteraction(autocompleteInteractionMock);
verify(autocompleteInteractionMock).respondWithChoices(any());
}

View File

@@ -12,13 +12,13 @@ import net.tomatentum.marinara.wrapper.LibraryWrapper;
import net.tomatentum.marinara.wrapper.javacord.JavacordWrapper;
@TestInstance(Lifecycle.PER_CLASS)
public class ButtonTest {
class ButtonTest {
@Test
public void testButtonExecution() {
void testButtonExecution() {
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 TestButton());
marinara.getInteractionContainer().addAllMethods(new TestButton());
wrapper.handleInteraction(CommonMocks.getButtonInteractionMock("test"));
assertTrue(TestButton.didRun);
}

View File

@@ -19,25 +19,25 @@ import net.tomatentum.marinara.wrapper.javacord.JavacordWrapper;
import net.tomatentum.marinara.wrapper.javacord.checks.PermissionCheck;
@TestInstance(Lifecycle.PER_CLASS)
public class InteractionCheckTest {
class InteractionCheckTest {
@Test
public void testInteractionCheck() {
void testInteractionCheck() {
LibraryWrapper wrapper = new JavacordWrapper(null);
Marinara marinara = Marinara.load(wrapper);
marinara.getCheckRegistry().addCheck(new TestInteractionCheck());
marinara.getRegistry().addInteractions(new TestButton());
marinara.getCheckContainer().addAllMethods(new TestInteractionCheck());
marinara.getInteractionContainer().addAllMethods(new TestButton());
wrapper.handleInteraction(CommonMocks.getButtonInteractionMock("test"));
assertTrue(TestInteractionCheck.preExecuted);
assertTrue(TestInteractionCheck.postExecuted);
}
@Test
public void testPermissionCheck() {
void testPermissionCheck() {
LibraryWrapper wrapper = new JavacordWrapper(null);
Marinara marinara = Marinara.load(wrapper);
marinara.getCheckRegistry().addCheck(new PermissionCheck());
marinara.getRegistry().addInteractions(new TestButton());
marinara.getCheckContainer().addAllMethods(new PermissionCheck());
marinara.getInteractionContainer().addAllMethods(new TestButton());
Server serverMock = mock();
ButtonInteraction buttonInteractionMock = CommonMocks.getButtonInteractionMock("permissionCheck", serverMock);

View File

@@ -20,7 +20,7 @@ import net.tomatentum.marinara.Marinara;
import net.tomatentum.marinara.wrapper.LibraryWrapper;
import net.tomatentum.marinara.wrapper.javacord.JavacordWrapper;
@TestInstance(Lifecycle.PER_CLASS)
public class SlashCommandTest {
class SlashCommandTest {
String DISCORD_TOKEN = System.getenv("DISCORD_TEST_TOKEN");
DiscordApi api;
@@ -41,8 +41,8 @@ public class SlashCommandTest {
@Test
void testSlashCommand() {
Marinara marinara = Marinara.load(new JavacordWrapper(api));
marinara.getRegistry().addInteractions(new TestCommand());
marinara.getRegistry().registerCommands();
marinara.getInteractionContainer().addAllMethods(new TestCommand());
marinara.registerCommands();
System.out.println("Success!");
}
@@ -50,7 +50,7 @@ public class SlashCommandTest {
void testSlashCommandExecution() {
LibraryWrapper wrapper = new JavacordWrapper(api);
Marinara marinara = Marinara.load(wrapper);
marinara.getRegistry().addInteractions(new TestCommand());
marinara.getInteractionContainer().addAllMethods(new TestCommand());
SlashCommandInteractionOption optionMock = mock();
SlashCommandInteraction interactionMock = mock();

View File

@@ -4,7 +4,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.Collections;
import org.javacord.api.event.interaction.SlashCommandCreateEvent;
import org.javacord.api.interaction.AutocompleteInteraction;
import org.javacord.api.interaction.SlashCommandInteraction;
@@ -24,15 +23,14 @@ public class TestAutocomplete implements InteractionHandler {
autocompletes = @AutoComplete("testAuto")
)
)
@AutoComplete("testAuto")
public void exec(SlashCommandInteraction context) {
//only here for command definition
}
@AutoComplete("testAuto")
public void autocomplete(AutocompleteInteraction context, String value) {
System.out.println("Success!");
assertEquals(value, "test");
assertEquals("test", value);
context.respondWithChoices(Collections.emptyList());
}

View File

@@ -16,8 +16,8 @@ import net.tomatentum.marinara.wrapper.javacord.checks.PermissionCheck.HasPermis
public class TestButton implements InteractionHandler {
public static boolean didRun = false;
@Button("test")
@TestCheck
public void exec(ButtonInteraction interaction, TextChannel channel, Message message, User member, Server server) {

View File

@@ -11,6 +11,7 @@ import net.tomatentum.marinara.interaction.commands.annotation.SlashCommandOptio
import net.tomatentum.marinara.interaction.commands.option.SlashCommandOptionType;
public class TestCommand implements InteractionHandler {
@SlashCommand(
name = "test",
description = "testingen",
@@ -27,7 +28,8 @@ public class TestCommand implements InteractionHandler {
}
)
public void exec(SlashCommandInteraction interaction, String test) {
assertEquals(test, "test");
assertEquals("test", test);
System.out.println("Success!");
}
}