Add MiniMessage

This commit is contained in:
Frank van der Heijden 2021-08-03 02:07:39 +02:00
parent bb5c642f31
commit 083012abfe
No known key found for this signature in database
GPG key ID: B808721C2DD5B5B8
74 changed files with 1328 additions and 1078 deletions

View file

@ -0,0 +1,25 @@
package net.frankheijden.serverutils.common.config;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
import java.util.Arrays;
import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
class MessageKeyTest {
@ParameterizedTest(name = "key = {0}")
@MethodSource("messageKeyGenerator")
void testMessageKeyConsistency(MessageKey key) {
assertThatCode(() -> MessageKey.fromPath(key.getPath())).doesNotThrowAnyException();
assertThat(MessageKey.fromPath(key.getPath())).isEqualTo(key);
}
private static Stream<Arguments> messageKeyGenerator() {
return Arrays.stream(MessageKey.values())
.map(Arguments::of);
}
}

View file

@ -1,42 +0,0 @@
package net.frankheijden.serverutils.common.utils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.params.provider.Arguments.of;
import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.CsvSource;
import org.junit.jupiter.params.provider.MethodSource;
class HexUtilsTest {
@ParameterizedTest(name = "color = {0}, expected = {1}")
@CsvSource({
"0, &x&0",
"10, &x&1&0",
"789344, &x&7&8&9&3&4&4",
})
void convertHexColor(String color, String expected) {
assertThat(HexUtils.convertHexColor(color)).isEqualTo(expected);
}
@ParameterizedTest(name = "hexString = {0}, expected = {1}")
@MethodSource("hexStringGenerator")
void convertHexString(String hexString, String expected) {
assertThat(HexUtils.convertHexString(hexString)).isEqualTo(expected);
}
private static Stream<Arguments> hexStringGenerator() {
return Stream.of(
of("<#FFFFFF>", "&x&F&F&F&F&F&F"),
of("Hey <#FFFFFF>", "Hey &x&F&F&F&F&F&F"),
of("Hey<#FFFFFF>Hey2<#AAAAAA>", "Hey&x&F&F&F&F&F&FHey2&x&A&A&A&A&A&A"),
of("<#FFFFFF><#AAAAAA><#FFFFFF>", "&x&F&F&F&F&F&F&x&A&A&A&A&A&A&x&F&F&F&F&F&F"),
of("<#FFFFFF>#FFFFFF", "&x&F&F&F&F&F&F#FFFFFF"),
of("<#FFFFFF>FFFFFF", "&x&F&F&F&F&F&FFFFFFF"),
of("<<#FFFFFF>>", "<&x&F&F&F&F&F&F>"),
of("<#<#ABCDEF>>", "<#&x&A&B&C&D&E&F>")
);
}
}

View file

@ -5,38 +5,47 @@ import static java.util.Collections.singletonList;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.List;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.serializer.ComponentSerializer;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import org.junit.jupiter.api.Test;
class ListBuilderTest {
private final String seperator = ", ";
private final String lastSeperator = " and ";
private static final ComponentSerializer<Component, TextComponent, String> plainTextComponentSerializer
= PlainTextComponentSerializer.plainText();
private final Component separator = Component.text(", ");
private final Component lastSeparator = Component.text(" and ");
@Test
void testToStringOneElement() {
String list = ListBuilder.createStrings(singletonList("Nice"))
.seperator(seperator)
.lastSeperator(lastSeperator)
.toString();
assertEquals("Nice", list);
Component component = ListComponentBuilder.create(singletonList("Nice"))
.format(Component::text)
.separator(separator)
.lastSeparator(lastSeparator)
.build();
assertEquals("Nice", plainTextComponentSerializer.serialize(component));
}
@Test
void testToStringTwoElements() {
String list = ListBuilder.createStrings(asList("Nice", "List"))
.seperator(seperator)
.lastSeperator(lastSeperator)
.toString();
assertEquals("Nice and List", list);
Component component = ListComponentBuilder.create(asList("Nice", "List"))
.format(Component::text)
.separator(separator)
.lastSeparator(lastSeparator)
.build();
assertEquals("Nice and List", plainTextComponentSerializer.serialize(component));
}
@Test
void testToStringMultipleElements() {
String list = ListBuilder.createStrings(asList("Nice", "List", "You", "Having", "There"))
.seperator(seperator)
.lastSeperator(lastSeperator)
.toString();
assertEquals("Nice, List, You, Having and There", list);
Component component = ListComponentBuilder.create(asList("Nice", "List", "You", "Having", "There"))
.format(Component::text)
.separator(separator)
.lastSeparator(lastSeparator)
.build();
assertEquals("Nice, List, You, Having and There", plainTextComponentSerializer.serialize(component));
}
@Test
@ -47,12 +56,12 @@ class ListBuilderTest {
new TestObject("pre3", 4)
);
String list = ListBuilder.create(objects)
.format(obj -> obj.prefix + "-" + obj.value)
.seperator("; ")
.lastSeperator(" and at last ")
.toString();
assertEquals("pre1-2; pre2-3 and at last pre3-4", list);
Component component = ListComponentBuilder.create(objects)
.format(obj -> Component.text(obj.prefix + "-" + obj.value))
.separator(Component.text("; "))
.lastSeparator(Component.text(" and at last "))
.build();
assertEquals("pre1-2; pre2-3 and at last pre3-4", plainTextComponentSerializer.serialize(component));
}
private static class TestObject {