mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-21 13:38:44 +00:00
[AB-97] adding react command
we are now actively loading messages in case its a parameter, because the provided message is only partially available
This commit is contained in:
@@ -5,7 +5,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||
import dev.sheldan.abstracto.core.service.ChannelService;
|
||||
import dev.sheldan.abstracto.core.test.command.CommandConfigValidator;
|
||||
import dev.sheldan.abstracto.core.test.command.CommandTestUtilities;
|
||||
import dev.sheldan.abstracto.entertainment.model.ChooseResponseModel;
|
||||
import dev.sheldan.abstracto.entertainment.model.command.ChooseResponseModel;
|
||||
import dev.sheldan.abstracto.entertainment.service.EntertainmentService;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -5,7 +5,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||
import dev.sheldan.abstracto.core.service.ChannelService;
|
||||
import dev.sheldan.abstracto.core.test.command.CommandConfigValidator;
|
||||
import dev.sheldan.abstracto.core.test.command.CommandTestUtilities;
|
||||
import dev.sheldan.abstracto.entertainment.model.EightBallResponseModel;
|
||||
import dev.sheldan.abstracto.entertainment.model.command.EightBallResponseModel;
|
||||
import dev.sheldan.abstracto.entertainment.service.EntertainmentService;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -5,7 +5,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||
import dev.sheldan.abstracto.core.service.ChannelService;
|
||||
import dev.sheldan.abstracto.core.test.command.CommandConfigValidator;
|
||||
import dev.sheldan.abstracto.core.test.command.CommandTestUtilities;
|
||||
import dev.sheldan.abstracto.entertainment.model.LoveCalcResponseModel;
|
||||
import dev.sheldan.abstracto.entertainment.model.command.LoveCalcResponseModel;
|
||||
import dev.sheldan.abstracto.entertainment.service.EntertainmentService;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -6,7 +6,7 @@ import dev.sheldan.abstracto.core.service.ChannelService;
|
||||
import dev.sheldan.abstracto.core.service.ConfigService;
|
||||
import dev.sheldan.abstracto.core.test.command.CommandConfigValidator;
|
||||
import dev.sheldan.abstracto.core.test.command.CommandTestUtilities;
|
||||
import dev.sheldan.abstracto.entertainment.model.RollResponseModel;
|
||||
import dev.sheldan.abstracto.entertainment.model.command.RollResponseModel;
|
||||
import dev.sheldan.abstracto.entertainment.service.EntertainmentService;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -5,7 +5,7 @@ import dev.sheldan.abstracto.core.command.execution.CommandResult;
|
||||
import dev.sheldan.abstracto.core.service.ChannelService;
|
||||
import dev.sheldan.abstracto.core.test.command.CommandConfigValidator;
|
||||
import dev.sheldan.abstracto.core.test.command.CommandTestUtilities;
|
||||
import dev.sheldan.abstracto.entertainment.model.RouletteResponseModel;
|
||||
import dev.sheldan.abstracto.entertainment.model.command.RouletteResponseModel;
|
||||
import dev.sheldan.abstracto.entertainment.service.EntertainmentService;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -1,21 +1,34 @@
|
||||
package dev.sheldan.abstracto.entertainment.service;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import dev.sheldan.abstracto.core.service.ConfigService;
|
||||
import dev.sheldan.abstracto.entertainment.config.EntertainmentFeatureConfig;
|
||||
import dev.sheldan.abstracto.entertainment.exception.ReactDuplicateCharacterException;
|
||||
import dev.sheldan.abstracto.entertainment.model.ReactMapping;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentMatchers;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
import org.springframework.core.io.Resource;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
@@ -29,6 +42,19 @@ public class EntertainmentServiceBeanTest {
|
||||
@Mock
|
||||
private ConfigService configService;
|
||||
|
||||
// requires the org.mockito.plugins.MockMaker file
|
||||
@Mock
|
||||
private Gson gson;
|
||||
|
||||
@Mock
|
||||
private Resource resource;
|
||||
|
||||
@Mock
|
||||
private Member member;
|
||||
|
||||
@Mock
|
||||
private Member secondMember;
|
||||
|
||||
private static final String INPUT_TEXT = "input";
|
||||
private static final int RANDOM_VALUE = 0;
|
||||
|
||||
@@ -94,4 +120,99 @@ public class EntertainmentServiceBeanTest {
|
||||
Assert.assertEquals(choices.get(0), choiceTaken);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMocking() {
|
||||
Assert.assertEquals("AsDf", testUnit.createMockText("asdf", member, secondMember));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMockingUpperCase() {
|
||||
Assert.assertEquals("AsDf", testUnit.createMockText("ASDF", member, secondMember));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMockingNull() {
|
||||
Assert.assertEquals("", testUnit.createMockText(null, member, secondMember));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertTextToEmojis() throws IOException {
|
||||
setupMappings();
|
||||
Assert.assertEquals("bceg", testUnit.convertTextToEmojisAsString("asdf", false));
|
||||
}
|
||||
|
||||
@Test(expected = ReactDuplicateCharacterException.class)
|
||||
public void testConvertTextToEmojisDuplicateReplacement() throws IOException {
|
||||
setupMappings();
|
||||
testUnit.convertTextToEmojisAsString("aa", false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertTextToEmojisNoReplacementFound() throws IOException {
|
||||
setupMappings();
|
||||
Assert.assertEquals("", testUnit.convertTextToEmojisAsString("e", false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertTextToEmojisNullInput() throws IOException {
|
||||
setupMappings();
|
||||
Assert.assertEquals("", testUnit.convertTextToEmojisAsString(null, false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertTextToEmojisDoubleUnicodePassThrough() throws IOException {
|
||||
setupMappings();
|
||||
Assert.assertEquals("\uD83C\uDD98", testUnit.convertTextToEmojisAsString("\uD83C\uDD98", false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertTextToEmojisDuplicate() throws IOException {
|
||||
setupMappings();
|
||||
Assert.assertEquals("bb", testUnit.convertTextToEmojisAsString("aa", true));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertTextToEmojisCombinations() throws IOException {
|
||||
setupMappings();
|
||||
Assert.assertEquals("\uD83C\uDD98", testUnit.convertTextToEmojisAsString("kk", true));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertTextToEmojisCombinationWithNormalText() throws IOException {
|
||||
setupMappings();
|
||||
Assert.assertEquals("\uD83C\uDD98l", testUnit.convertTextToEmojisAsString("kkk", false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertTextToEmojisCombinationWithNormalTextMixed() throws IOException {
|
||||
setupMappings();
|
||||
Assert.assertEquals("\uD83C\uDD98lm", testUnit.convertTextToEmojisAsString("kkkk", false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertTextToEmojisCombinationDuplicates() throws IOException {
|
||||
setupMappings();
|
||||
Assert.assertEquals("\uD83C\uDD98\uD83C\uDD98", testUnit.convertTextToEmojisAsString("kkkk", true));
|
||||
}
|
||||
|
||||
private void setupMappings() throws IOException {
|
||||
ReactMapping mapping = Mockito.mock(ReactMapping.class);
|
||||
HashMap<String, List<String>> singleMappings = new HashMap<>();
|
||||
singleMappings.put("a", Arrays.asList("b"));
|
||||
singleMappings.put("s", Arrays.asList("c"));
|
||||
singleMappings.put("d", Arrays.asList("e"));
|
||||
singleMappings.put("f", Arrays.asList("g"));
|
||||
singleMappings.put("k", Arrays.asList("l", "m"));
|
||||
when(resource.getInputStream()).thenReturn(new ByteArrayInputStream(new byte[]{1}));
|
||||
when(mapping.getSingle()).thenReturn(singleMappings);
|
||||
HashMap<String, String> combinations = new HashMap<>();
|
||||
combinations.put("kk", "\uD83C\uDD98");
|
||||
when(mapping.getCombination()).thenReturn(combinations);
|
||||
TreeSet<String> combinationKeys = new TreeSet<>();
|
||||
combinationKeys.add("kk");
|
||||
when(mapping.getCombinationKeys()).thenReturn(combinationKeys);
|
||||
when(gson.fromJson(any(JsonReader.class), eq(ReactMapping.class))).thenReturn(mapping);
|
||||
testUnit.postConstruct();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
mock-maker-inline
|
||||
Reference in New Issue
Block a user