From 3a39b268c175c597a4c3891f3f3c6d37a9ee21b6 Mon Sep 17 00:00:00 2001 From: tueem Date: Wed, 19 Feb 2025 14:39:48 +0100 Subject: [PATCH] migrate InteractionCheckTest --- .../test/javacord/InteractionCheckTest.java | 30 +++++++++++-------- .../test/javacord/mocks/CommonMocks.java | 13 ++++++++ 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/wrapper/javacord/src/test/java/net/tomatentum/marinara/test/javacord/InteractionCheckTest.java b/wrapper/javacord/src/test/java/net/tomatentum/marinara/test/javacord/InteractionCheckTest.java index be5d8e1..950c314 100644 --- a/wrapper/javacord/src/test/java/net/tomatentum/marinara/test/javacord/InteractionCheckTest.java +++ b/wrapper/javacord/src/test/java/net/tomatentum/marinara/test/javacord/InteractionCheckTest.java @@ -2,16 +2,18 @@ package net.tomatentum.marinara.test.javacord; import static org.junit.jupiter.api.Assertions.assertFalse; 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.when; -import org.javacord.api.entity.permission.PermissionType; +import org.javacord.api.entity.server.Server; +import org.javacord.api.interaction.ButtonInteraction; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestInstance.Lifecycle; import net.tomatentum.marinara.Marinara; -import net.tomatentum.marinara.test.javacord.mocks.ButtonInteractionMock; -import net.tomatentum.marinara.test.javacord.mocks.DiscordApiMock; -import net.tomatentum.marinara.test.javacord.mocks.ServerMock; +import net.tomatentum.marinara.test.javacord.mocks.CommonMocks; import net.tomatentum.marinara.wrapper.LibraryWrapper; import net.tomatentum.marinara.wrapper.javacord.JavacordWrapper; import net.tomatentum.marinara.wrapper.javacord.checks.PermissionCheck; @@ -21,27 +23,31 @@ public class InteractionCheckTest { @Test public void testInteractionCheck() { - LibraryWrapper wrapper = new JavacordWrapper(new DiscordApiMock()); + LibraryWrapper wrapper = new JavacordWrapper(null); Marinara marinara = Marinara.load(wrapper); marinara.getCheckRegistry().addCheck(new TestInteractionCheck()); marinara.getRegistry().addInteractions(new TestButton()); - wrapper.handleInteraction(new ButtonInteractionMock("test")); + wrapper.handleInteraction(CommonMocks.getButtonInteractionMock("test")); assertTrue(TestInteractionCheck.preExecuted); assertTrue(TestInteractionCheck.postExecuted); } @Test public void testPermissionCheck() { - LibraryWrapper wrapper = new JavacordWrapper(new DiscordApiMock()); + LibraryWrapper wrapper = new JavacordWrapper(null); Marinara marinara = Marinara.load(wrapper); marinara.getCheckRegistry().addCheck(new PermissionCheck()); marinara.getRegistry().addInteractions(new TestButton()); - wrapper.handleInteraction(new ButtonInteractionMock("permissionCheck")); - assertTrue(TestButton.didPermRun); - TestButton.didPermRun = false; - ServerMock.TESTPERMISSION = PermissionType.ATTACH_FILE; - wrapper.handleInteraction(new ButtonInteractionMock("permissionCheck")); + + Server serverMock = mock(); + ButtonInteraction buttonInteractionMock = CommonMocks.getButtonInteractionMock("permissionCheck", serverMock); + when(serverMock.hasPermissions(any(), any())).thenReturn(false); + wrapper.handleInteraction(buttonInteractionMock); assertFalse(TestButton.didPermRun); + + when(serverMock.hasPermissions(any(), any())).thenReturn(true); + wrapper.handleInteraction(buttonInteractionMock); + assertTrue(TestButton.didPermRun); } } diff --git a/wrapper/javacord/src/test/java/net/tomatentum/marinara/test/javacord/mocks/CommonMocks.java b/wrapper/javacord/src/test/java/net/tomatentum/marinara/test/javacord/mocks/CommonMocks.java index 207bcbc..532003f 100644 --- a/wrapper/javacord/src/test/java/net/tomatentum/marinara/test/javacord/mocks/CommonMocks.java +++ b/wrapper/javacord/src/test/java/net/tomatentum/marinara/test/javacord/mocks/CommonMocks.java @@ -23,6 +23,19 @@ public class CommonMocks { when(buttonInteractionMock.getUser()).thenReturn(mock(User.class)); + return buttonInteractionMock; + } + + public static ButtonInteraction getButtonInteractionMock(String customId, Server serverMock) { + ButtonInteraction buttonInteractionMock = mock(); + + when(buttonInteractionMock.getCustomId()).thenReturn(customId); + when(buttonInteractionMock.getMessage()).thenReturn(mock(Message.class)); + when(buttonInteractionMock.getServer()).thenReturn(Optional.of(serverMock)); + when(buttonInteractionMock.getChannel()).thenReturn(Optional.of(mock(TextChannel.class))); + when(buttonInteractionMock.getUser()).thenReturn(mock(User.class)); + + return buttonInteractionMock; }