mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-16 04:21:49 +00:00
added test for context utils
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package dev.sheldan.abstracto.core.utils;
|
package dev.sheldan.abstracto.core.utils;
|
||||||
|
|
||||||
|
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
|
||||||
import dev.sheldan.abstracto.core.service.management.ChannelManagementService;
|
import dev.sheldan.abstracto.core.service.management.ChannelManagementService;
|
||||||
import dev.sheldan.abstracto.core.service.management.ServerManagementService;
|
import dev.sheldan.abstracto.core.service.management.ServerManagementService;
|
||||||
import dev.sheldan.abstracto.core.service.management.UserManagementService;
|
import dev.sheldan.abstracto.core.service.management.UserManagementService;
|
||||||
@@ -25,9 +26,6 @@ public class ContextUtils {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserManagementService userManagementService;
|
private UserManagementService userManagementService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ServerManagementService serverManagementService;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private Bot bot;
|
private Bot bot;
|
||||||
|
|
||||||
@@ -43,13 +41,13 @@ public class ContextUtils {
|
|||||||
.guild(guildChannelMember.getGuild())
|
.guild(guildChannelMember.getGuild())
|
||||||
.messageChannel(guildChannelMember.getTextChannel())
|
.messageChannel(guildChannelMember.getTextChannel())
|
||||||
.channel(channelManagementService.loadChannel(message.getChannelId()))
|
.channel(channelManagementService.loadChannel(message.getChannelId()))
|
||||||
.server(serverManagementService.loadOrCreate(message.getServerId()))
|
.server(aUserInAServer.getServerReference())
|
||||||
.aUserInAServer(aUserInAServer)
|
.aUserInAServer(aUserInAServer)
|
||||||
.user(aUserInAServer.getUserReference())
|
.user(aUserInAServer.getUserReference())
|
||||||
.build();
|
.build();
|
||||||
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
|
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
|
||||||
log.error("Failed to execute builder method", e);
|
log.error("Failed to execute builder method", e);
|
||||||
}
|
}
|
||||||
throw new RuntimeException("Failed to create model from message");
|
throw new AbstractoRunTimeException("Failed to create model from message");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,67 @@
|
|||||||
|
package dev.sheldan.abstracto.core.utils;
|
||||||
|
|
||||||
|
import dev.sheldan.abstracto.core.models.GuildChannelMember;
|
||||||
|
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||||
|
import dev.sheldan.abstracto.core.models.database.AChannel;
|
||||||
|
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.core.models.template.commands.PingModel;
|
||||||
|
import dev.sheldan.abstracto.core.service.Bot;
|
||||||
|
import dev.sheldan.abstracto.core.service.management.ChannelManagementService;
|
||||||
|
import dev.sheldan.abstracto.core.service.management.ServerManagementService;
|
||||||
|
import dev.sheldan.abstracto.core.service.management.UserManagementService;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.InjectMocks;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.junit.MockitoJUnitRunner;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
@RunWith(MockitoJUnitRunner.class)
|
||||||
|
public class ContextUtilsTest {
|
||||||
|
|
||||||
|
public static final Long CHANNEL_ID = 1L;
|
||||||
|
public static final Long SERVER_ID = 1L;
|
||||||
|
public static final Long AUTHOR_ID = 1L;
|
||||||
|
@InjectMocks
|
||||||
|
private ContextUtils classToTest;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private ChannelManagementService channelManagementService;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private UserManagementService userManagementService;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private Bot bot;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
GuildChannelMember build = GuildChannelMember.builder().build();
|
||||||
|
when(bot.getServerChannelUser(eq(SERVER_ID), eq(CHANNEL_ID), eq(AUTHOR_ID))).thenReturn(build);
|
||||||
|
AServer server = AServer.builder().id(SERVER_ID).build();
|
||||||
|
AUserInAServer aUserInAServer = AUserInAServer.builder().userReference(AUser.builder().id(AUTHOR_ID).build()).serverReference(server).build();
|
||||||
|
when(userManagementService.loadUser(eq(SERVER_ID), eq(AUTHOR_ID))).thenReturn(aUserInAServer);
|
||||||
|
AChannel channel = AChannel.builder().id(CHANNEL_ID).build();
|
||||||
|
when(channelManagementService.loadChannel(eq(CHANNEL_ID))).thenReturn(channel);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFromMessage() {
|
||||||
|
PingModel pingModel = (PingModel) classToTest.fromMessage(buildCachedMessage(), PingModel.class);
|
||||||
|
assertEquals(pingModel.getUser().getId(), AUTHOR_ID);
|
||||||
|
assertEquals(pingModel.getAUserInAServer().getUserReference().getId(), AUTHOR_ID);
|
||||||
|
assertEquals(pingModel.getAUserInAServer().getServerReference().getId(), SERVER_ID);
|
||||||
|
assertEquals(pingModel.getServer().getId(), SERVER_ID);
|
||||||
|
assertEquals(pingModel.getChannel().getId(), CHANNEL_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
private CachedMessage buildCachedMessage() {
|
||||||
|
return CachedMessage.builder().authorId(AUTHOR_ID).serverId(SERVER_ID).channelId(CHANNEL_ID).build();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user