From 122912bea59c8ec0e52b2c1b730efe0645f2bb15 Mon Sep 17 00:00:00 2001 From: MattMX Date: Sun, 1 Dec 2024 14:28:02 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=93=20Add=20test=20for=20#32?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 1 + logs/latest.log | 0 .../mattmx/nametags/config/TextFormatter.java | 14 +++++------- .../nametags/config/TextFormatterTest.java | 22 +++++++++++++++++++ 4 files changed, 29 insertions(+), 8 deletions(-) create mode 100644 logs/latest.log create mode 100644 src/test/java/com/mattmx/nametags/config/TextFormatterTest.java diff --git a/build.gradle.kts b/build.gradle.kts index 409eade..0479b3d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -35,6 +35,7 @@ dependencies { compileOnly(libs.tab.api) compileOnly(libs.packet.events) implementation(libs.entity.lib) + testImplementation("org.junit.jupiter:junit-jupiter:5.7.1") } tasks { diff --git a/logs/latest.log b/logs/latest.log new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/com/mattmx/nametags/config/TextFormatter.java b/src/main/java/com/mattmx/nametags/config/TextFormatter.java index 8630e2e..c63d40a 100644 --- a/src/main/java/com/mattmx/nametags/config/TextFormatter.java +++ b/src/main/java/com/mattmx/nametags/config/TextFormatter.java @@ -22,21 +22,19 @@ public enum TextFormatter { ) ; - // Converts legacy hex format &x&9&0&0&c&3&f to modern hex format ΄c3f + // Converts legacy hex format &x&9&0&0&c&3&f -> ΄c3f modern hex format // https://github.com/Matt-MX/DisplayNameTags/issues/32#issuecomment-2509403581 - private static String convertLegacyHex(String input) { - //regex to match the legacy hex format - String legacyHexPattern = "&x(&[0-9a-fA-F]){6}"; - Pattern pattern = Pattern.compile(legacyHexPattern); - Matcher matcher = pattern.matcher(input); + private static final Pattern LEGACY_HEX_PATTERN = Pattern.compile("&x(&[0-9a-fA-F]){6}"); + public static String convertLegacyHex(String input) { + Matcher matcher = LEGACY_HEX_PATTERN.matcher(input); StringBuilder result = new StringBuilder(); while (matcher.find()) { String legacyHex = matcher.group(); - //extract hex digits from the legacy format + // Extract hex digits from the legacy format String hexColor = legacyHex.replace("&x", "") .replace("&", ""); - //replace with modern format + // Replace with modern format String modernHex = "&#" + hexColor; matcher.appendReplacement(result, modernHex); } diff --git a/src/test/java/com/mattmx/nametags/config/TextFormatterTest.java b/src/test/java/com/mattmx/nametags/config/TextFormatterTest.java new file mode 100644 index 0000000..20fbf17 --- /dev/null +++ b/src/test/java/com/mattmx/nametags/config/TextFormatterTest.java @@ -0,0 +1,22 @@ +package com.mattmx.nametags.config; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; + +public class TextFormatterTest { + + @ParameterizedTest + @CsvSource({ + "&x&c&7&0&0&3&9[Admin],&#c70039[Admin]", + "&x&9&0&0&c&3&fCoyotea&r,΄c3fCoyotea&r", + "&x&9&0&0&c&3&fCoyotea,΄c3fCoyotea", + "&x&c&7&0&0&3&9[Admin] &x&9&0&0&c&3&fCoyotea&r,&#c70039[Admin] ΄c3fCoyotea&r" + }) + public void test_convertLegacyHex(String input, String expectedOut) { + final String out = TextFormatter.convertLegacyHex(input); + + Assertions.assertEquals(expectedOut, out); + } + +} \ No newline at end of file