import com.alttd.chat.objects.ModifiableString; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import net.kyori.adventure.text.minimessage.MiniMessage; public class ReverseTest { @Test public void testReverseString() { String input = "Hello how are you doing today?"; String expectedOutput = new StringBuilder(input).reverse().toString(); MiniMessage miniMessage = MiniMessage.miniMessage(); ModifiableString modifiableString = new ModifiableString(miniMessage.deserialize(input)); modifiableString.reverse(); assertEquals(expectedOutput, modifiableString.string()); } @Test public void testReverseStringWithTags() { String input = "Hello how are you doing today?"; MiniMessage miniMessage = MiniMessage.miniMessage(); Component deserialize = miniMessage.deserialize(input); ModifiableString modifiableString = new ModifiableString(deserialize); String expectedOutput = new StringBuilder(PlainTextComponentSerializer.plainText().serialize(deserialize)).reverse().toString(); modifiableString.reverse(); assertEquals(expectedOutput, modifiableString.string()); } @Test public void complexTestReverseStringWithTags() { String input = "Hello how are you doing today?"; MiniMessage miniMessage = MiniMessage.miniMessage(); Component deserialize = miniMessage.deserialize(input); ModifiableString modifiableString = new ModifiableString(deserialize); String expectedOutput = new StringBuilder(PlainTextComponentSerializer.plainText().serialize(deserialize)).reverse().toString(); modifiableString.reverse(); assertEquals(expectedOutput, modifiableString.string()); } @Test public void extraComplexTestReverseStringWithTags() { String input = "This is longer Hello how are you doing today?"; MiniMessage miniMessage = MiniMessage.miniMessage(); Component deserialize = miniMessage.deserialize(input, TagResolver.resolver( Placeholder.component("name", miniMessage.deserialize("Cool_player_name")), Placeholder.parsed("test", "test replacement") )); ModifiableString modifiableString = new ModifiableString(deserialize); String expectedOutput = new StringBuilder(PlainTextComponentSerializer.plainText().serialize(deserialize)).reverse().toString(); modifiableString.reverse(); System.out.println(expectedOutput); assertEquals(expectedOutput, modifiableString.string()); } }