mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-27 14:23:56 +00:00
[AB-94] adding possibility to reference member/role/channel via name for parameters
showing an embed for parameter handling exceptions adding discord webhook for build status
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package dev.sheldan.abstracto.core.command.handler;
|
||||
|
||||
import dev.sheldan.abstracto.core.command.exception.AbstractoTemplatedException;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
@@ -12,6 +13,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@@ -54,7 +56,7 @@ public class MemberParameterHandlerImplTest extends AbstractParameterHandlerTest
|
||||
oneMemberInIterator();
|
||||
String input = getUserMention();
|
||||
CompletableFuture<Member> parsed = (CompletableFuture) testUnit.handleAsync(getPieceWithValue(input), iterators, Member.class, null);
|
||||
Assert.assertEquals(parsed.join(), member);
|
||||
Assert.assertEquals(member, parsed.join());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -63,13 +65,35 @@ public class MemberParameterHandlerImplTest extends AbstractParameterHandlerTest
|
||||
setupMessage();
|
||||
String input = USER_ID.toString();
|
||||
CompletableFuture<Member> parsed = (CompletableFuture) testUnit.handleAsync(getPieceWithValue(input), null, Member.class, message);
|
||||
Assert.assertEquals(parsed.join(), member);
|
||||
Assert.assertEquals(member, parsed.join());
|
||||
}
|
||||
|
||||
@Test(expected = NumberFormatException.class)
|
||||
public void testInvalidMemberMention() {
|
||||
@Test(expected = AbstractoTemplatedException.class)
|
||||
public void testNotExistingMember() {
|
||||
String input = "test";
|
||||
testUnit.handleAsync(getPieceWithValue(input), null, Member.class, null);
|
||||
when(message.getGuild()).thenReturn(guild);
|
||||
when(guild.getMembersByName(input, true)).thenReturn(new ArrayList<>());
|
||||
testUnit.handleAsync(getPieceWithValue(input), null, Member.class, message);
|
||||
}
|
||||
|
||||
@Test(expected = AbstractoTemplatedException.class)
|
||||
public void testMultipleFoundMemberByName() {
|
||||
String input = "test";
|
||||
Member secondMember = Mockito.mock(Member.class);
|
||||
when(message.getGuild()).thenReturn(guild);
|
||||
when(guild.getMembersByName(input, true)).thenReturn(Arrays.asList(member, secondMember));
|
||||
testUnit.handleAsync(getPieceWithValue(input), null, Member.class, message);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindMemberByName() {
|
||||
String input = "test";
|
||||
when(message.getGuild()).thenReturn(guild);
|
||||
when(guild.getMembersByName(input, true)).thenReturn(Arrays.asList(member));
|
||||
CompletableFuture<Object> future = testUnit.handleAsync(getPieceWithValue(input), null, Member.class, message);
|
||||
Member returnedMember = (Member) future.join();
|
||||
Assert.assertFalse(future.isCompletedExceptionally());
|
||||
Assert.assertEquals(member, returnedMember);
|
||||
}
|
||||
|
||||
private String getUserMention() {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package dev.sheldan.abstracto.core.command.handler;
|
||||
|
||||
import dev.sheldan.abstracto.core.command.exception.AbstractoTemplatedException;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.Role;
|
||||
@@ -8,8 +9,10 @@ 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.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@@ -50,7 +53,7 @@ public class RoleParameterHandlerImplTest extends AbstractParameterHandlerTest {
|
||||
oneRoleIterator();
|
||||
String input = getRoleMention();
|
||||
Role parsed = (Role) testUnit.handle(getPieceWithValue(input), iterators, Role.class, null);
|
||||
Assert.assertEquals(parsed, role);
|
||||
Assert.assertEquals(role, parsed);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -58,13 +61,33 @@ public class RoleParameterHandlerImplTest extends AbstractParameterHandlerTest {
|
||||
setupMessage();
|
||||
String input = ROLE_ID.toString();
|
||||
Role parsed = (Role) testUnit.handle(getPieceWithValue(input), null, Role.class, message);
|
||||
Assert.assertEquals(parsed, role);
|
||||
Assert.assertEquals(role, parsed);
|
||||
}
|
||||
|
||||
@Test(expected = NumberFormatException.class)
|
||||
@Test(expected = AbstractoTemplatedException.class)
|
||||
public void testInvalidRoleMention() {
|
||||
String input = "test";
|
||||
testUnit.handle(getPieceWithValue(input), null, Role.class, null);
|
||||
when(message.getGuild()).thenReturn(guild);
|
||||
when(guild.getRolesByName(input, true)).thenReturn(new ArrayList<>());
|
||||
testUnit.handle(getPieceWithValue(input), null, Role.class, message);
|
||||
}
|
||||
|
||||
@Test(expected = AbstractoTemplatedException.class)
|
||||
public void testMultipleRolesFoundByName() {
|
||||
String input = "test";
|
||||
Role secondRole = Mockito.mock(Role.class);
|
||||
when(message.getGuild()).thenReturn(guild);
|
||||
when(guild.getRolesByName(input, true)).thenReturn(Arrays.asList(role, secondRole));
|
||||
testUnit.handle(getPieceWithValue(input), null, Role.class, message);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindRoleByName() {
|
||||
String input = "test";
|
||||
when(message.getGuild()).thenReturn(guild);
|
||||
when(guild.getRolesByName(input, true)).thenReturn(Arrays.asList(role));
|
||||
Role returnedRole = (Role) testUnit.handle(getPieceWithValue(input), null, Role.class, message);
|
||||
Assert.assertEquals(role, returnedRole);
|
||||
}
|
||||
|
||||
private String getRoleMention() {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package dev.sheldan.abstracto.core.command.handler;
|
||||
|
||||
import dev.sheldan.abstracto.core.command.exception.AbstractoTemplatedException;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
@@ -8,8 +9,10 @@ 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.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@@ -50,7 +53,7 @@ public class TextChannelParameterHandlerImplTest extends AbstractParameterHandle
|
||||
oneChannelInIterator();
|
||||
String input = getChannelMention();
|
||||
TextChannel parsed = (TextChannel) testUnit.handle(getPieceWithValue(input), iterators, TextChannel.class, null);
|
||||
Assert.assertEquals(parsed, channel);
|
||||
Assert.assertEquals(channel, parsed);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -58,15 +61,36 @@ public class TextChannelParameterHandlerImplTest extends AbstractParameterHandle
|
||||
setupMessage();
|
||||
String input = CHANNEL_ID.toString();
|
||||
TextChannel parsed = (TextChannel) testUnit.handle(getPieceWithValue(input), null, TextChannel.class, message);
|
||||
Assert.assertEquals(parsed, channel);
|
||||
Assert.assertEquals(channel, parsed);
|
||||
}
|
||||
|
||||
@Test(expected = NumberFormatException.class)
|
||||
public void testInvalidChannelMention() {
|
||||
@Test(expected = AbstractoTemplatedException.class)
|
||||
public void testInvalidChannelName() {
|
||||
String input = "test";
|
||||
testUnit.handle(getPieceWithValue(input), null, TextChannel.class, null);
|
||||
when(message.getGuild()).thenReturn(guild);
|
||||
when(guild.getTextChannelsByName(input, true)).thenReturn(new ArrayList<>());
|
||||
testUnit.handle(getPieceWithValue(input), null, TextChannel.class, message);
|
||||
}
|
||||
|
||||
@Test(expected = AbstractoTemplatedException.class)
|
||||
public void testFoundMultipleChannelsByName() {
|
||||
String input = "test";
|
||||
TextChannel secondChannel = Mockito.mock(TextChannel.class);
|
||||
when(message.getGuild()).thenReturn(guild);
|
||||
when(guild.getTextChannelsByName(input, true)).thenReturn(Arrays.asList(channel, secondChannel));
|
||||
testUnit.handle(getPieceWithValue(input), null, TextChannel.class, message);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindChannelByName() {
|
||||
String input = "test";
|
||||
when(message.getGuild()).thenReturn(guild);
|
||||
when(guild.getTextChannelsByName(input, true)).thenReturn(Arrays.asList(channel));
|
||||
TextChannel returnedChannel = (TextChannel) testUnit.handle(getPieceWithValue(input), null, TextChannel.class, message);
|
||||
Assert.assertEquals(channel, returnedChannel);
|
||||
}
|
||||
|
||||
|
||||
private String getChannelMention() {
|
||||
return String.format("<#%d>", CHANNEL_ID);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user