mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-18 04:50:38 +00:00
added tests for utility module
refactored various commands and services optimized code for message embeds removed emoteUtils completely and moved to service removed suggestion validation, because its now done via feature config fixed regex for discord links changed template to handle the case in which a member which suggested it originally left the server added suggestion update exception in cases the message to edit, does not qualify as a suggestion added check to not allow cross server quoting and added test case refactored mocking for jda objects
This commit is contained in:
@@ -1,15 +1,6 @@
|
||||
package dev.sheldan.abstracto.test;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.*;
|
||||
import net.dv8tion.jda.api.entities.MessageType;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
import net.dv8tion.jda.internal.JDAImpl;
|
||||
import net.dv8tion.jda.internal.entities.*;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class MockUtils {
|
||||
|
||||
@@ -19,7 +10,7 @@ public class MockUtils {
|
||||
|
||||
public static AUserInAServer getUserObject(Long id, AServer server) {
|
||||
AUser user = AUser.builder().id(id).build();
|
||||
AUserInAServer createdUser = AUserInAServer.builder().userReference(user).serverReference(server).build();
|
||||
AUserInAServer createdUser = AUserInAServer.builder().userReference(user).serverReference(server).userInServerId(id).build();
|
||||
server.getUsers().add(createdUser);
|
||||
return createdUser;
|
||||
}
|
||||
@@ -32,34 +23,11 @@ public class MockUtils {
|
||||
return getServer(2L);
|
||||
}
|
||||
|
||||
public static GuildImpl getGuild(AServer serverToUse, JDAImpl jda) {
|
||||
return new GuildImpl(jda, serverToUse.getId());
|
||||
}
|
||||
|
||||
public static MemberImpl getMockedMember(AServer serverToUse, AUserInAServer user, JDAImpl jda) {
|
||||
UserImpl jdaUser = new UserImpl(user.getUserReference().getId(), jda);
|
||||
GuildImpl jdaGuild = new GuildImpl(jda, serverToUse.getId());
|
||||
return new MemberImpl(jdaGuild, jdaUser);
|
||||
}
|
||||
|
||||
public static AChannel getTextChannel(AServer server, Long id) {
|
||||
return AChannel.builder().id(id).server(server).deleted(false).type(AChannelType.TEXT).build();
|
||||
}
|
||||
|
||||
public static TextChannelImpl getMockedTextChannel(Long id, GuildImpl guild) {
|
||||
return new TextChannelImpl(id, guild);
|
||||
}
|
||||
|
||||
public static ARole getRole(Long id, AServer server) {
|
||||
return ARole.builder().server(server).id(id).build();
|
||||
}
|
||||
|
||||
public static ReceivedMessage buildMockedMessage(long messageId, String text, MemberImpl member) {
|
||||
Instant dateObj = Instant.ofEpochSecond(1590615937);
|
||||
OffsetDateTime messageDate = OffsetDateTime.ofInstant(dateObj, ZoneId.systemDefault());
|
||||
User user = member != null ? member.getUser() : null;
|
||||
return new ReceivedMessage(messageId, null, MessageType.DEFAULT, false, false
|
||||
, null, null, false, false, text, "nonce", user, member, null, messageDate,
|
||||
new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,11 +9,12 @@ import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
|
||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import dev.sheldan.abstracto.test.MockUtils;
|
||||
import net.dv8tion.jda.internal.JDAImpl;
|
||||
import net.dv8tion.jda.internal.entities.GuildImpl;
|
||||
import net.dv8tion.jda.internal.entities.MemberImpl;
|
||||
import net.dv8tion.jda.internal.entities.TextChannelImpl;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import org.junit.Assert;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -25,32 +26,32 @@ public class CommandTestUtilities {
|
||||
|
||||
}
|
||||
|
||||
public static void executeNoParametersTest(Command com, JDAImpl jda) {
|
||||
CommandContext context = CommandTestUtilities.getNoParameters(jda);
|
||||
public static void executeNoParametersTest(Command com) {
|
||||
CommandContext context = CommandTestUtilities.getNoParameters();
|
||||
com.execute(context);
|
||||
}
|
||||
|
||||
public static void executeWrongParametersTest(Command com, JDAImpl jda) {
|
||||
executeWrongParametersTest(com, jda, "");
|
||||
public static void executeWrongParametersTest(Command com) {
|
||||
executeWrongParametersTest(com, new ArrayList<>());
|
||||
}
|
||||
|
||||
public static void executeWrongParametersTest(Command com, JDAImpl jda, Object value) {
|
||||
CommandContext context = CommandTestUtilities.getWithParameters(jda, Arrays.asList(value));
|
||||
public static void executeWrongParametersTest(Command com, Object value) {
|
||||
CommandContext context = CommandTestUtilities.getWithParameters(Arrays.asList(value));
|
||||
com.execute(context);
|
||||
}
|
||||
|
||||
public static CommandContext getNoParameters(JDAImpl jda) {
|
||||
public static CommandContext getNoParameters() {
|
||||
AServer server = MockUtils.getServer();
|
||||
AUserInAServer author = MockUtils.getUserObject(3L, server);
|
||||
CommandContext context = CommandContext
|
||||
.builder()
|
||||
.build();
|
||||
GuildImpl guild = MockUtils.getGuild(server, jda);
|
||||
Guild guild = Mockito.mock(Guild.class);
|
||||
context.setGuild(guild);
|
||||
MemberImpl member = MockUtils.getMockedMember(server, author, jda);
|
||||
Member member = Mockito.mock(Member.class);
|
||||
context.setAuthor(member);
|
||||
long channelId = 4L;
|
||||
TextChannelImpl mockedTextChannel = MockUtils.getMockedTextChannel(channelId, guild);
|
||||
TextChannel mockedTextChannel = Mockito.mock(TextChannel.class);
|
||||
UserInitiatedServerContext userInitiatedContext = UserInitiatedServerContext
|
||||
.builder()
|
||||
.server(server)
|
||||
@@ -62,15 +63,14 @@ public class CommandTestUtilities {
|
||||
.messageChannel(mockedTextChannel)
|
||||
.build();
|
||||
context.setUserInitiatedContext(userInitiatedContext);
|
||||
context.setJda(jda);
|
||||
context.setChannel(mockedTextChannel);
|
||||
context.setParameters(Parameters.builder().parameters(new ArrayList<>()).build());
|
||||
context.setMessage(MockUtils.buildMockedMessage(3L, "text", member));
|
||||
context.setMessage(Mockito.mock(Message.class));
|
||||
return context;
|
||||
}
|
||||
|
||||
public static CommandContext getWithParameters(JDAImpl jda, List<Object> parameters) {
|
||||
CommandContext context = getNoParameters(jda);
|
||||
public static CommandContext getWithParameters(List<Object> parameters) {
|
||||
CommandContext context = getNoParameters();
|
||||
context.getParameters().getParameters().addAll(parameters);
|
||||
return context;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user