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:
Sheldan
2020-06-07 00:22:42 +02:00
parent a577932c42
commit ac93440546
91 changed files with 3721 additions and 425 deletions

View File

@@ -23,17 +23,17 @@ public abstract class ExperienceRelatedTest {
return experiences;
}
protected AUserExperience getUserExperienceObject(AServer server, int i) {
AUserInAServer userObject = MockUtils.getUserObject((long)i, server);
protected AUserExperience getUserExperienceObject(AServer server, long i) {
AUserInAServer userObject = MockUtils.getUserObject(i, server);
AExperienceLevel level = AExperienceLevel
.builder()
.level(i)
.experienceNeeded((long) i * 100)
.level((int)i)
.experienceNeeded(i * 100)
.build();
return AUserExperience
.builder()
.user(userObject)
.experience((long) i)
.experience(i)
.currentLevel(level)
.build();
}

View File

@@ -8,7 +8,6 @@ import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.experience.service.management.DisabledExpRoleManagementService;
import dev.sheldan.abstracto.test.MockUtils;
import dev.sheldan.abstracto.test.command.CommandTestUtilities;
import net.dv8tion.jda.internal.JDAImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -28,17 +27,14 @@ public class DisableExpForRoleTest {
@Mock
private DisabledExpRoleManagementService disabledExpRoleManagementService;
@Mock
private JDAImpl jda;
@Test(expected = InsufficientParameters.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit, jda);
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit, jda);
CommandTestUtilities.executeWrongParametersTest(testUnit);
}
@Test
@@ -53,7 +49,7 @@ public class DisableExpForRoleTest {
private void executeDisableExpForRoleTest(boolean value, int wantedNumberOfInvocations) {
ARole disabledRole = MockUtils.getRole(1L, MockUtils.getServer());
CommandContext context = CommandTestUtilities.getWithParameters(jda, Arrays.asList(disabledRole));
CommandContext context = CommandTestUtilities.getWithParameters(Arrays.asList(disabledRole));
when(disabledExpRoleManagementService.isExperienceDisabledForRole(disabledRole)).thenReturn(value);
CommandResult result = testUnit.execute(context);
verify(disabledExpRoleManagementService, times(wantedNumberOfInvocations)).setRoleToBeDisabledForExp(disabledRole);

View File

@@ -10,11 +10,11 @@ import dev.sheldan.abstracto.experience.service.AUserExperienceService;
import dev.sheldan.abstracto.test.MockUtils;
import dev.sheldan.abstracto.test.command.CommandTestUtilities;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.internal.JDAImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import static org.mockito.Mockito.*;
@@ -33,24 +33,21 @@ public class DisableExpGainTest {
@Mock
private UserInServerManagementService userInServerManagementService;
@Mock
private JDAImpl jda;
@Test(expected = InsufficientParameters.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit, jda);
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit, jda);
CommandTestUtilities.executeWrongParametersTest(testUnit);
}
@Test
public void testDisableExpForMember() {
CommandContext noParameters = CommandTestUtilities.getNoParameters(jda);
CommandContext noParameters = CommandTestUtilities.getNoParameters();
AUserInAServer parameterUser = MockUtils.getUserObject(4L, noParameters.getUserInitiatedContext().getServer());
Member member = MockUtils.getMockedMember(noParameters.getUserInitiatedContext().getServer(), parameterUser, jda);
Member member = Mockito.mock(Member.class);
CommandContext context = CommandTestUtilities.enhanceWithParameters(noParameters, Arrays.asList(member));
when(userInServerManagementService.loadUser(member)).thenReturn(parameterUser);
CommandResult result = testUnit.execute(context);

View File

@@ -8,7 +8,6 @@ import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.experience.service.management.DisabledExpRoleManagementService;
import dev.sheldan.abstracto.test.MockUtils;
import dev.sheldan.abstracto.test.command.CommandTestUtilities;
import net.dv8tion.jda.internal.JDAImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -28,17 +27,14 @@ public class EnableExpForRoleTest {
@Mock
private DisabledExpRoleManagementService disabledExpRoleManagementService;
@Mock
private JDAImpl jda;
@Test(expected = InsufficientParameters.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit, jda);
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit, jda);
CommandTestUtilities.executeWrongParametersTest(testUnit);
}
@Test
@@ -53,7 +49,7 @@ public class EnableExpForRoleTest {
private void executeEnableExpForRoleTest(boolean value, int wantedNumberOfInvocations) {
ARole disabledRole = MockUtils.getRole(1L, MockUtils.getServer());
CommandContext context = CommandTestUtilities.getWithParameters(jda, Arrays.asList(disabledRole));
CommandContext context = CommandTestUtilities.getWithParameters(Arrays.asList(disabledRole));
when(disabledExpRoleManagementService.isExperienceDisabledForRole(disabledRole)).thenReturn(value);
CommandResult result = testUnit.execute(context);
verify(disabledExpRoleManagementService, times(wantedNumberOfInvocations)).removeRoleToBeDisabledForExp(disabledRole);

View File

@@ -10,11 +10,11 @@ import dev.sheldan.abstracto.experience.service.AUserExperienceService;
import dev.sheldan.abstracto.test.MockUtils;
import dev.sheldan.abstracto.test.command.CommandTestUtilities;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.internal.JDAImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import java.util.Arrays;
@@ -33,24 +33,21 @@ public class EnableExpGainTest {
@Mock
private UserInServerManagementService userInServerManagementService;
@Mock
private JDAImpl jda;
@Test(expected = InsufficientParameters.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit, jda);
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit, jda);
CommandTestUtilities.executeWrongParametersTest(testUnit);
}
@Test
public void testEnableExpForMember() {
CommandContext noParameters = CommandTestUtilities.getNoParameters(jda);
CommandContext noParameters = CommandTestUtilities.getNoParameters();
AUserInAServer parameterUser = MockUtils.getUserObject(4L, noParameters.getUserInitiatedContext().getServer());
Member member = MockUtils.getMockedMember(noParameters.getUserInitiatedContext().getServer(), parameterUser, jda);
Member member = Mockito.mock(Member.class);
CommandContext context = CommandTestUtilities.enhanceWithParameters(noParameters, Arrays.asList(member));
when(userInServerManagementService.loadUser(member)).thenReturn(parameterUser);
CommandResult result = testUnit.execute(context);

View File

@@ -6,7 +6,6 @@ import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.service.ConfigService;
import dev.sheldan.abstracto.test.command.CommandTestUtilities;
import net.dv8tion.jda.internal.JDAImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -26,23 +25,20 @@ public class ExpScaleTest {
@Mock
private ConfigService configService;
@Mock
private JDAImpl jda;
@Test(expected = InsufficientParameters.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit, jda);
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit, jda);
CommandTestUtilities.executeWrongParametersTest(testUnit);
}
@Test
public void testSetExpScaleForGuild() {
double newScale = 4.5;
CommandContext context = CommandTestUtilities.getWithParameters(jda, Arrays.asList(newScale));
CommandContext context = CommandTestUtilities.getWithParameters(Arrays.asList(newScale));
CommandResult result = testUnit.execute(context);
CommandTestUtilities.checkSuccessfulCompletion(result);
verify(configService, times(1)).setDoubleValue(ExpScale.EXP_MULTIPLIER_KEY, context.getGuild().getIdLong(), newScale);

View File

@@ -13,7 +13,6 @@ import dev.sheldan.abstracto.experience.service.AUserExperienceService;
import dev.sheldan.abstracto.templating.model.MessageToSend;
import dev.sheldan.abstracto.templating.service.TemplateService;
import dev.sheldan.abstracto.test.command.CommandTestUtilities;
import net.dv8tion.jda.internal.JDAImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -43,22 +42,19 @@ public class LeaderBoardCommandTest {
@Mock
private LeaderBoardModelConverter converter;
@Mock
private JDAImpl jda;
@Test(expected = IncorrectParameter.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit, jda);
CommandTestUtilities.executeWrongParametersTest(testUnit);
}
@Test
public void testLeaderBoardWithNoParameter() {
testLeaderBoardCommand(CommandTestUtilities.getNoParameters(jda), 1);
testLeaderBoardCommand(CommandTestUtilities.getNoParameters(), 1);
}
@Test
public void testLeaderBoardWithPageParameter() {
testLeaderBoardCommand(CommandTestUtilities.getWithParameters(jda, Arrays.asList(5)), 5);
testLeaderBoardCommand(CommandTestUtilities.getWithParameters(Arrays.asList(5)), 5);
}
private void testLeaderBoardCommand(CommandContext context, int expectedPage) {

View File

@@ -11,7 +11,6 @@ import dev.sheldan.abstracto.experience.models.templates.DisabledExperienceRoles
import dev.sheldan.abstracto.experience.service.management.DisabledExpRoleManagementService;
import dev.sheldan.abstracto.test.MockUtils;
import dev.sheldan.abstracto.test.command.CommandTestUtilities;
import net.dv8tion.jda.internal.JDAImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -38,12 +37,9 @@ public class ListDisabledExperienceRolesTest {
@Mock
private ChannelService channelService;
@Mock
private JDAImpl jda;
@Test
public void testCommandExecutionNoRolesFound() {
CommandContext context = CommandTestUtilities.getNoParameters(jda);
CommandContext context = CommandTestUtilities.getNoParameters();
AServer server = context.getUserInitiatedContext().getServer();
when(disabledExpRoleManagementService.getDisabledRolesForServer(server)).thenReturn(new ArrayList<>());
CommandResult result = testUnit.execute(context);
@@ -55,7 +51,7 @@ public class ListDisabledExperienceRolesTest {
@Test
public void testCommandExecutionRolesFound() {
CommandContext context = CommandTestUtilities.getNoParameters(jda);
CommandContext context = CommandTestUtilities.getNoParameters();
AServer server = context.getUserInitiatedContext().getServer();
ADisabledExpRole disabledExpRole1 = ADisabledExpRole.builder().role(MockUtils.getRole(4L, server)).build();
ADisabledExpRole disabledExpRole2 = ADisabledExpRole.builder().role(MockUtils.getRole(6L, server)).build();

View File

@@ -14,7 +14,6 @@ import dev.sheldan.abstracto.experience.service.ExperienceLevelService;
import dev.sheldan.abstracto.templating.model.MessageToSend;
import dev.sheldan.abstracto.templating.service.TemplateService;
import dev.sheldan.abstracto.test.command.CommandTestUtilities;
import net.dv8tion.jda.internal.JDAImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -45,14 +44,11 @@ public class RankTest {
@Mock
private ChannelService channelService;
@Mock
private JDAImpl jda;
@Test
public void testRankExecution() {
int currentLevelValue = 50;
long currentExperience = 50L;
CommandContext context = CommandTestUtilities.getNoParameters(jda);
CommandContext context = CommandTestUtilities.getNoParameters();
AExperienceLevel currentLevel = AExperienceLevel.builder().level(currentLevelValue).build();
AUserExperience aUserExperience = AUserExperience.builder().experience(currentExperience).currentLevel(currentLevel).build();
LeaderBoardEntry leaderBoardEntry = LeaderBoardEntry.builder().experience(aUserExperience).build();

View File

@@ -10,7 +10,6 @@ import dev.sheldan.abstracto.core.service.RoleService;
import dev.sheldan.abstracto.experience.service.ExperienceRoleService;
import dev.sheldan.abstracto.test.MockUtils;
import dev.sheldan.abstracto.test.command.CommandTestUtilities;
import net.dv8tion.jda.internal.JDAImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -33,34 +32,31 @@ public class SetExpRoleTest {
@Mock
private RoleService roleService;
@Mock
private JDAImpl jda;
@Test(expected = InsufficientParameters.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit, jda);
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = InsufficientParameters.class)
public void testRoleMissing() {
CommandContext context = CommandTestUtilities.getWithParameters(jda, Arrays.asList(4));
CommandContext context = CommandTestUtilities.getWithParameters(Arrays.asList(4));
testUnit.execute(context);
}
@Test(expected = IncorrectParameter.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit, jda);
CommandTestUtilities.executeWrongParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
public void testLevelProvidedButNotRole() {
CommandContext context = CommandTestUtilities.getWithParameters(jda, Arrays.asList(4, ""));
CommandContext context = CommandTestUtilities.getWithParameters(Arrays.asList(4, ""));
testUnit.execute(context);
}
@Test
public void setExpRole() {
CommandContext noParameters = CommandTestUtilities.getNoParameters(jda);
CommandContext noParameters = CommandTestUtilities.getNoParameters();
ARole changedRole = MockUtils.getRole(4L, noParameters.getUserInitiatedContext().getServer());
Integer levelToSetTo = 4;
CommandContext context = CommandTestUtilities.enhanceWithParameters(noParameters, Arrays.asList(levelToSetTo, changedRole));
@@ -72,7 +68,7 @@ public class SetExpRoleTest {
@Test(expected = RoleNotFoundInGuildException.class)
public void setExpRoleNotExistingOnServer() {
CommandContext noParameters = CommandTestUtilities.getNoParameters(jda);
CommandContext noParameters = CommandTestUtilities.getNoParameters();
ARole changedRole = MockUtils.getRole(4L, noParameters.getUserInitiatedContext().getServer());
Integer levelToSetTo = 4;
CommandContext context = CommandTestUtilities.enhanceWithParameters(noParameters, Arrays.asList(levelToSetTo, changedRole));

View File

@@ -6,7 +6,6 @@ import dev.sheldan.abstracto.core.models.database.AChannel;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.experience.service.AUserExperienceService;
import dev.sheldan.abstracto.test.command.CommandTestUtilities;
import net.dv8tion.jda.internal.JDAImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -24,12 +23,9 @@ public class SyncRolesTest {
@Mock
private AUserExperienceService userExperienceService;
@Mock
private JDAImpl jda;
@Test
public void executeCommand() {
CommandContext context = CommandTestUtilities.getNoParameters(jda);
CommandContext context = CommandTestUtilities.getNoParameters();
CommandResult result = testUnit.execute(context);
AServer server = context.getUserInitiatedContext().getServer();
AChannel channel = context.getUserInitiatedContext().getChannel();

View File

@@ -8,7 +8,6 @@ import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.experience.service.ExperienceRoleService;
import dev.sheldan.abstracto.test.MockUtils;
import dev.sheldan.abstracto.test.command.CommandTestUtilities;
import net.dv8tion.jda.internal.JDAImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -29,22 +28,19 @@ public class UnSetExpRoleTest {
@Mock
private ExperienceRoleService experienceRoleService;
@Mock
private JDAImpl jda;
@Test(expected = InsufficientParameters.class)
public void testTooLittleParameters() {
CommandTestUtilities.executeNoParametersTest(testUnit, jda);
CommandTestUtilities.executeNoParametersTest(testUnit);
}
@Test(expected = IncorrectParameter.class)
public void testIncorrectParameterType() {
CommandTestUtilities.executeWrongParametersTest(testUnit, jda);
CommandTestUtilities.executeWrongParametersTest(testUnit);
}
@Test
public void setUnSetExpRole() {
CommandContext noParameters = CommandTestUtilities.getNoParameters(jda);
CommandContext noParameters = CommandTestUtilities.getNoParameters();
ARole changedRole = MockUtils.getRole(4L, noParameters.getUserInitiatedContext().getServer());
CommandContext context = CommandTestUtilities.enhanceWithParameters(noParameters, Arrays.asList(changedRole));
CommandResult result = testUnit.execute(context);

View File

@@ -8,13 +8,14 @@ import dev.sheldan.abstracto.experience.models.LeaderBoardEntry;
import dev.sheldan.abstracto.experience.models.database.AUserExperience;
import dev.sheldan.abstracto.experience.models.templates.LeaderBoardEntryModel;
import dev.sheldan.abstracto.test.MockUtils;
import net.dv8tion.jda.internal.JDAImpl;
import net.dv8tion.jda.internal.entities.MemberImpl;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.User;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import java.util.Arrays;
@@ -31,9 +32,6 @@ public class LeaderBoardModelConverterTest extends ExperienceRelatedTest {
@Mock
private BotService botService;
@Mock
private JDAImpl jda;
@Test
public void testFromLeaderBoard() {
AServer server = MockUtils.getServer();
@@ -58,9 +56,13 @@ public class LeaderBoardModelConverterTest extends ExperienceRelatedTest {
@Test
public void testFromEntry() {
AServer server = MockUtils.getServer();
AUserExperience experience = getUserExperienceObject(server, 3);
Long userId = 3L;
AUserExperience experience = getUserExperienceObject(server, userId);
LeaderBoardEntry entry = LeaderBoardEntry.builder().experience(experience).rank(1).build();
MemberImpl member = MockUtils.getMockedMember(server, experience.getUser(), jda);
Member member = Mockito.mock(Member.class);
User user = Mockito.mock(User.class);
when(user.getIdLong()).thenReturn(userId);
when(member.getUser()).thenReturn(user);
when(botService.getMemberInServer(server.getId(), experience.getUser().getUserReference().getId())).thenReturn(member);
LeaderBoardEntryModel leaderBoardEntryModel = testUnit.fromLeaderBoardEntry(entry);
Assert.assertEquals(1, leaderBoardEntryModel.getRank().intValue());

View File

@@ -6,14 +6,13 @@ import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
import dev.sheldan.abstracto.experience.ExperienceRelatedTest;
import dev.sheldan.abstracto.experience.service.AUserExperienceService;
import dev.sheldan.abstracto.test.MockUtils;
import net.dv8tion.jda.internal.JDAImpl;
import net.dv8tion.jda.internal.entities.MemberImpl;
import net.dv8tion.jda.internal.entities.ReceivedMessage;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Message;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import static org.mockito.Mockito.*;
@@ -30,16 +29,14 @@ public class ExperienceTrackerListenerTest extends ExperienceRelatedTest {
@Mock
private UserInServerManagementService userInServerManagementService;
@Mock
private JDAImpl jda;
@Test
public void testExperienceTracking() {
AServer server = AServer.builder().id(3L).build();
AUser user = AUser.builder().id(4L).build();
AUserInAServer userInAServer = AUserInAServer.builder().userReference(user).serverReference(server).build();
MemberImpl member = MockUtils.getMockedMember(server, userInAServer, jda);
ReceivedMessage mockedMessage = MockUtils.buildMockedMessage(1L, "text", member);
Member member = Mockito.mock(Member.class);
Message mockedMessage = Mockito.mock(Message.class);
when(mockedMessage.getMember()).thenReturn(member);
when(userInServerManagementService.loadUser(member)).thenReturn(userInAServer);
testUnit.execute(mockedMessage);
verify(userExperienceService, times(1)).addExperience(userInAServer);

View File

@@ -1,20 +1,19 @@
package dev.sheldan.abstracto.experience.listener;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.AUser;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.experience.ExperienceRelatedTest;
import dev.sheldan.abstracto.experience.models.database.AUserExperience;
import dev.sheldan.abstracto.experience.service.AUserExperienceService;
import dev.sheldan.abstracto.experience.service.management.UserExperienceManagementService;
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.api.entities.Guild;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import static org.mockito.Mockito.*;
@@ -31,16 +30,15 @@ public class JoiningUserRoleListenerTest extends ExperienceRelatedTest {
@Mock
private AUserExperienceService userExperienceService;
@Mock
private JDAImpl jda;
@Test
public void testUserWithExperienceRejoining() {
AServer server = AServer.builder().id(3L).build();
AUser user = AUser.builder().id(1L).build();
AUserInAServer aUserInAServer = AUserInAServer.builder().userInServerId(2L).userReference(user).build();
MemberImpl member = MockUtils.getMockedMember(server, aUserInAServer, jda);
GuildImpl guild = MockUtils.getGuild(server, jda);
Member member = Mockito.mock(Member.class);
User jdaUser = Mockito.mock(User.class);
when(member.getUser()).thenReturn(jdaUser);
when(jdaUser.getIdLong()).thenReturn(user.getId());
Guild guild = Mockito.mock(Guild.class);
AUserExperience experience = AUserExperience.builder().experience(3L).user(aUserInAServer).build();
when(userExperienceManagementService.findUserInServer(aUserInAServer)).thenReturn(experience);
testUnit.execute(member, guild, aUserInAServer);
@@ -49,11 +47,10 @@ public class JoiningUserRoleListenerTest extends ExperienceRelatedTest {
@Test
public void testUserWithOutExperienceRejoining() {
AServer server = AServer.builder().id(3L).build();
AUser user = AUser.builder().id(1L).build();
AUserInAServer aUserInAServer = AUserInAServer.builder().userInServerId(2L).userReference(user).build();
MemberImpl member = MockUtils.getMockedMember(server, aUserInAServer, jda);
GuildImpl guild = MockUtils.getGuild(server, jda);
Member member = Mockito.mock(Member.class);
Guild guild = Mockito.mock(Guild.class);
AUserExperience experience = AUserExperience.builder().experience(3L).user(aUserInAServer).build();
when(userExperienceManagementService.findUserInServer(aUserInAServer)).thenReturn(null);
testUnit.execute(member, guild, aUserInAServer);

View File

@@ -21,15 +21,12 @@ import dev.sheldan.abstracto.experience.service.management.UserExperienceManagem
import dev.sheldan.abstracto.templating.model.MessageToSend;
import dev.sheldan.abstracto.templating.service.TemplateService;
import dev.sheldan.abstracto.test.MockUtils;
import net.dv8tion.jda.internal.JDAImpl;
import net.dv8tion.jda.internal.entities.*;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Message;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.*;
import org.mockito.junit.MockitoJUnitRunner;
import static org.mockito.Mockito.*;
@@ -74,9 +71,6 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
@Mock
private BotService botService;
@Mock
private JDAImpl jda;
@Mock
private RunTimeExperienceService runTimeExperienceService;
@@ -159,7 +153,7 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
levels.add(AExperienceLevel.builder().level(4).experienceNeeded(400L).build());
mockSimpleServer(levels, experienceRoles, serverToUse);
AUserInAServer userToUse = serverToUse.getUsers().get(0);
MemberImpl jdaMember = MockUtils.getMockedMember(serverToUse, userToUse, jda);
Member jdaMember = Mockito.mock(Member.class);
when(botService.getMemberInServer(serverToUse, userToUse.getUserReference())).thenReturn(jdaMember);
AExperienceRole previousExperienceRole = experienceRoles.get(3);
AUserExperience newUserExperience = mockServerWithSingleUser(levels, serverToUse, 401L, 3, previousExperienceRole, false);
@@ -183,7 +177,7 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
List<AExperienceRole> experienceRoles = getExperienceRoles(levels, serverToUse);
mockSimpleServer(levels, experienceRoles, serverToUse);
AUserInAServer userToUse = serverToUse.getUsers().get(0);
MemberImpl jdaMember = MockUtils.getMockedMember(serverToUse, userToUse, jda);
Member jdaMember = Mockito.mock(Member.class);
when(botService.getMemberInServer(serverToUse, userToUse.getUserReference())).thenReturn(jdaMember);
AUserExperience newUserExperience = mockServerWithSingleUser(levels, serverToUse, 101L, 1, null, false);
@@ -202,7 +196,7 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
List<AExperienceRole> experienceRoles = getExperienceRoles(levels, serverToUse);
mockSimpleServer(levels, experienceRoles, serverToUse);
AUserInAServer userToUse = serverToUse.getUsers().get(0);
MemberImpl jdaMember = MockUtils.getMockedMember(serverToUse, userToUse, jda);
Member jdaMember = Mockito.mock(Member.class);
when(botService.getMemberInServer(serverToUse, userToUse.getUserReference())).thenReturn(jdaMember);
AUserExperience newUserExperience = mockServerWithSingleUser(levels, serverToUse, 50L, 0, null, false);
@@ -221,7 +215,7 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
List<AExperienceRole> experienceRoles = getExperienceRoles(levels, serverToUse);
mockSimpleServer(levels, experienceRoles, serverToUse);
AUserInAServer userToUse = serverToUse.getUsers().get(0);
MemberImpl jdaMember = MockUtils.getMockedMember(serverToUse, userToUse, jda);
Member jdaMember = Mockito.mock(Member.class);
when(botService.getMemberInServer(serverToUse, userToUse.getUserReference())).thenReturn(jdaMember);
AUserExperience newUserExperience = mockServerWithSingleUser(levels, serverToUse, 50L, 0, experienceRoles.get(0), false);
@@ -243,7 +237,6 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
List<AExperienceRole> experienceRoles = getExperienceRoles(levels, serverToUse);
mockSimpleServer(levels, experienceRoles, serverToUse);
AUserInAServer userToUse = serverToUse.getUsers().get(0);
MockUtils.getMockedMember(serverToUse, userToUse, jda);
AUserExperience newUserExperience = mockServerWithSingleUser(levels, serverToUse, 50L, 0, experienceRoles.get(0), true);
testUnit.handleExperienceGain(servers);
@@ -262,7 +255,7 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
List<AExperienceRole> experienceRoles = getExperienceRoles(levels, serverToUse);
mockSimpleServer(levels, experienceRoles, serverToUse);
AUserInAServer userToUse = serverToUse.getUsers().get(0);
MemberImpl jdaMember = MockUtils.getMockedMember(serverToUse, userToUse, jda);
Member jdaMember = Mockito.mock(Member.class);
AUserExperience newUserExperience = mockServerWithSingleUser(levels, serverToUse, 50L, 0, experienceRoles.get(0), false);
when(botService.getMemberInServer(userToUse)).thenReturn(jdaMember);
when(roleService.hasAnyOfTheRoles(eq(jdaMember), anyList())).thenReturn(true);
@@ -282,7 +275,7 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
List<AExperienceRole> experienceRoles = getExperienceRoles(levels, serverToUse);
mockSimpleServer(levels, experienceRoles, serverToUse);
AUserInAServer userToUse = serverToUse.getUsers().get(0);
MemberImpl jdaMember = MockUtils.getMockedMember(serverToUse, userToUse, jda);
Member jdaMember = Mockito.mock(Member.class);
when(botService.getMemberInServer(serverToUse, userToUse.getUserReference())).thenReturn(jdaMember);
AUserExperience newUserExperience = mockServerWithSingleUser(levels, serverToUse, 101L, 1, experienceRoles.get(1), false);
when(experienceRoleService.calculateRole(newUserExperience, experienceRoles)).thenReturn(experienceRoles.get(1));
@@ -311,7 +304,7 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
List<AExperienceRole> experienceRoles = getExperienceRoles(levels, aServer);
mockSimpleServer(levels, experienceRoles, aServer);
AUserInAServer userToUse = aServer.getUsers().get(0);
MemberImpl jdaMember = MockUtils.getMockedMember(aServer, userToUse, jda);
Member jdaMember = Mockito.mock(Member.class);
when(botService.getMemberInServer(aServer, userToUse.getUserReference())).thenReturn(jdaMember);
AExperienceRole role = experienceRoles.get(experienceRoleIndices.get(i));
AUserExperience newUserExperience = mockServerWithSingleUser(levels, aServer, experienceValues, level, role, false);
@@ -450,9 +443,9 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
List<AUserExperience> experiences = Arrays.asList(experience, experience2);
List<AUserInAServer> users = experiences.stream().map(AUserExperience::getUser).collect(Collectors.toList());
MemberImpl firstMember = MockUtils.getMockedMember(server, users.get(0), jda);
Member firstMember = Mockito.mock(Member.class);
when(botService.getMemberInServer(server, users.get(0).getUserReference())).thenReturn(firstMember);
MemberImpl secondMember = MockUtils.getMockedMember(server, users.get(1), jda);
Member secondMember = Mockito.mock(Member.class);
when(botService.getMemberInServer(server, users.get(1).getUserReference())).thenReturn(secondMember);
experience.setCurrentExperienceRole(firstPreviousRole);
experience2.setCurrentExperienceRole(secondPreviousRole);
@@ -547,7 +540,8 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
MessageToSend statusMessage = MessageToSend.builder().message("text").build();
when(templateService.renderEmbedTemplate(eq("user_sync_status_message"), any(UserSyncStatusModel.class))).thenReturn(statusMessage);
long messageId = 5L;
ReceivedMessage statusMessageJDA = MockUtils.buildMockedMessage(messageId, "text", null);
Message statusMessageJDA = Mockito.mock(Message.class);
when(statusMessageJDA.getIdLong()).thenReturn(messageId);
when(messageService.createStatusMessage(statusMessage, channel)).thenReturn(CompletableFuture.completedFuture(statusMessageJDA));
testUnit.syncUserRolesWithFeedback(server, channel);
verify(messageService, times(messageCount)).updateStatusMessage(channel, messageId, statusMessage);
@@ -559,7 +553,7 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
List<AUserExperience> experiences = Arrays.asList(experience);
List<AUserInAServer> users = experiences.stream().map(AUserExperience::getUser).collect(Collectors.toList());
MemberImpl firstMember = MockUtils.getMockedMember(server, users.get(0), jda);
Member firstMember = Mockito.mock(Member.class);
when(botService.getMemberInServer(server, users.get(0).getUserReference())).thenReturn(firstMember);
experience.setCurrentExperienceRole(previousRole);
when(experienceRoleManagementService.getExperienceRolesForServer(server)).thenReturn(usedExperienceRoles);
@@ -605,7 +599,7 @@ public class AUserExperienceServiceBeanTest extends ExperienceRelatedTest {
private AExperienceRole testRoleRelatedScenario(boolean shouldHaveRole, List<AExperienceLevel> levels, List<AServer> servers, AServer serverToUse, List<AExperienceRole> experienceRoles, AUserInAServer userToUse, AExperienceRole previousExperienceRole) {
mockSimpleServer(levels, experienceRoles, serverToUse);
MemberImpl jdaMember = MockUtils.getMockedMember(serverToUse, userToUse, jda);
Member jdaMember = Mockito.mock(Member.class);
when(botService.getMemberInServer(serverToUse, userToUse.getUserReference())).thenReturn(jdaMember);
AUserExperience newUserExperience = mockServerWithSingleUser(levels, serverToUse, 301L, 1, previousExperienceRole, false);