Skip to content

Commit 7fe27c0

Browse files
committed
test(tag): add junit tests for all custom resolvers
1 parent c1731ee commit 7fe27c0

File tree

10 files changed

+841
-1
lines changed

10 files changed

+841
-1
lines changed

build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ subprojects {
7777

7878
test {
7979
useJUnitPlatform()
80-
failFast = true
8180
}
8281
}
8382
}
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
package io.github.milkdrinkers.colorparser.common.tag;
2+
3+
import io.github.milkdrinkers.colorparser.common.mock.engine.MockParserEngine;
4+
import io.github.milkdrinkers.colorparser.common.util.TestUtil;
5+
import net.kyori.adventure.text.Component;
6+
import org.junit.jupiter.api.BeforeEach;
7+
import org.junit.jupiter.api.DisplayName;
8+
import org.junit.jupiter.api.Test;
9+
10+
import static net.kyori.adventure.text.format.NamedTextColor.RED;
11+
12+
@DisplayName("Test - ChoiceResolver")
13+
public class ChoiceResolverTest {
14+
private MockParserEngine engine;
15+
16+
@BeforeEach
17+
void setUp() {
18+
engine = MockParserEngine.builder().parseLegacy(true).build();
19+
}
20+
21+
@Test
22+
@DisplayName("Choice Low Range")
23+
public void testChoiceLowRange() {
24+
final String test = "<choice:<score>:'0-2:Low|3-5:Medium|6-10:High'>";
25+
26+
final Component actual = engine.parse(test).with("score", "1").build();
27+
final Component expected = Component.text("Low");
28+
29+
TestUtil.assertEquals(expected, actual);
30+
}
31+
32+
@Test
33+
@DisplayName("Choice Medium Range")
34+
public void testChoiceMediumRange() {
35+
final String test = "<choice:<score>:'0-2:Low|3-5:Medium|6-10:High'>";
36+
37+
final Component actual = engine.parse(test).with("score", "4").build();
38+
final Component expected = Component.text("Medium");
39+
40+
TestUtil.assertEquals(expected, actual);
41+
}
42+
43+
@Test
44+
@DisplayName("Choice High Range")
45+
public void testChoiceHighRange() {
46+
final String test = "<choice:<score>:'0-2:Low|3-5:Medium|6-10:High'>";
47+
48+
final Component actual = engine.parse(test).with("score", "8").build();
49+
final Component expected = Component.text("High");
50+
51+
TestUtil.assertEquals(expected, actual);
52+
}
53+
54+
@Test
55+
@DisplayName("Choice Exact Match")
56+
public void testChoiceExactMatch() {
57+
final String test = "<choice:<value>:'0:Zero|1:One|2:Two|3:Three'>";
58+
59+
final Component actual = engine.parse(test).with("value", "2").build();
60+
final Component expected = Component.text("Two");
61+
62+
TestUtil.assertEquals(expected, actual);
63+
}
64+
65+
@Test
66+
@DisplayName("Choice Exceed Min")
67+
public void testChoiceExceedMin() {
68+
final String test = "<choice:<value>:'0:Zero|1:One|2:Two'>";
69+
70+
final Component actual = engine.parse(test).with("value", "-1").build();
71+
final Component expected = Component.text("Zero");
72+
73+
TestUtil.assertEquals(expected, actual);
74+
}
75+
76+
@Test
77+
@DisplayName("Choice Exceed Max")
78+
public void testChoiceExceedMax() {
79+
final String test = "<choice:<value>:'0:Zero|1:One|2:Two'>";
80+
81+
final Component actual = engine.parse(test).with("value", "3").build();
82+
final Component expected = Component.text("Two");
83+
84+
TestUtil.assertEquals(expected, actual);
85+
}
86+
87+
@Test
88+
@DisplayName("Choice No Match Returns Empty")
89+
public void testChoiceNoMatch() {
90+
final String test = "<choice:<value>:'0-5:Valid'>";
91+
92+
final Component actual = engine.parse(test).with("value", "10").build();
93+
final Component expected = Component.empty();
94+
95+
TestUtil.assertEquals(expected, actual);
96+
}
97+
98+
@Test
99+
@DisplayName("Choice with Color")
100+
public void testChoiceWithColor() {
101+
final String test = "<red><choice:<score>:'0-5:Low|6-10:High'></red>";
102+
103+
final Component actual = engine.parse(test).with("score", "3").build();
104+
final Component expected = Component.text("Low").color(RED);
105+
106+
TestUtil.assertEquals(expected, actual);
107+
}
108+
109+
@Test
110+
@DisplayName("Choice First Match Priority")
111+
public void testChoiceFirstMatchPriority() {
112+
final String test = "<choice:<value>:'0-10:First|5-15:Second'>";
113+
114+
final Component actual = engine.parse(test).with("value", "7").build();
115+
final Component expected = Component.text("First");
116+
117+
TestUtil.assertEquals(expected, actual);
118+
}
119+
120+
@Test
121+
@DisplayName("Choice With Nested Tags")
122+
public void testChoiceWithNestedTags() {
123+
final String test = "<choice:<score>:'0-5:<green>Low|6-10:<red>High'>";
124+
125+
final Component actual = engine.parse(test).with("score", "8").build();
126+
final Component expected = Component.text("High").color(RED);
127+
128+
TestUtil.assertEquals(expected, actual);
129+
}
130+
131+
@Test
132+
@DisplayName("Choice Edge of Range")
133+
public void testChoiceEdgeOfRange() {
134+
final String test = "<choice:<value>:'0-5:First|6-10:Second'>";
135+
136+
final Component actual = engine.parse(test).with("value", "5").build();
137+
final Component expected = Component.text("First");
138+
139+
TestUtil.assertEquals(expected, actual);
140+
}
141+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package io.github.milkdrinkers.colorparser.common.tag;
2+
3+
import io.github.milkdrinkers.colorparser.common.mock.engine.MockParserEngine;
4+
import io.github.milkdrinkers.colorparser.common.util.TestUtil;
5+
import net.kyori.adventure.text.Component;
6+
import net.kyori.adventure.text.format.TextColor;
7+
import org.junit.jupiter.api.BeforeEach;
8+
import org.junit.jupiter.api.DisplayName;
9+
import org.junit.jupiter.api.Test;
10+
11+
import java.awt.*;
12+
13+
import static net.kyori.adventure.text.format.NamedTextColor.YELLOW;
14+
15+
@DisplayName("Test - DarkerResolver")
16+
public class DarkerResolverTest {
17+
private MockParserEngine engine;
18+
19+
@BeforeEach
20+
void setUp() {
21+
engine = MockParserEngine.builder().parseLegacy(true).build();
22+
}
23+
24+
@Test
25+
@DisplayName("Darker with Hex Color")
26+
public void testDarkerWithHexColor() {
27+
final String test = "<darker><color:#FF0000>Red Text</color></darker>";
28+
29+
final Component actual = engine.parse(test).build();
30+
final Color darkerRed = new Color(0xFF0000).darker();
31+
final Component expected = Component.text("Red Text").color(TextColor.color(darkerRed.getRGB()));
32+
33+
TestUtil.assertEquals(expected, actual);
34+
}
35+
36+
@Test
37+
@DisplayName("Darker without Base Color")
38+
public void testDarkerWithoutBaseColor() {
39+
final String test = "<darker>No Color</darker>";
40+
41+
final Component actual = engine.parse(test).build();
42+
final Component expected = Component.text("No Color");
43+
44+
TestUtil.assertEquals(expected, actual);
45+
}
46+
47+
@Test
48+
@DisplayName("Darker Nested Multiple Times")
49+
public void testDarkerNestedMultipleTimes() {
50+
final String test = "<darker><darker><yellow>Double Darker</yellow></darker></darker>";
51+
52+
final Component actual = engine.parse(test).build();
53+
final Color doublyDarkerYellow = new Color(YELLOW.value()).darker().darker();
54+
final Component expected = Component.text("Double Darker").color(TextColor.color(doublyDarkerYellow.getRGB()));
55+
56+
TestUtil.assertEquals(expected, actual);
57+
}
58+
59+
@Test
60+
@DisplayName("Darker Nested Multiple Times Without Closing Tag")
61+
public void testDarkerNestedMultipleTimesNoClosing() {
62+
final String test = "<darker><darker><yellow>Double Darker";
63+
64+
final Component actual = engine.parse(test).build();
65+
final Color doublyDarkerYellow = new Color(YELLOW.value()).darker().darker();
66+
final Component expected = Component.text("Double Darker").color(TextColor.color(doublyDarkerYellow.getRGB()));
67+
68+
TestUtil.assertEquals(expected, actual);
69+
}
70+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package io.github.milkdrinkers.colorparser.common.tag;
2+
3+
import io.github.milkdrinkers.colorparser.common.mock.engine.MockParserEngine;
4+
import io.github.milkdrinkers.colorparser.common.util.TestUtil;
5+
import net.kyori.adventure.text.Component;
6+
import net.kyori.adventure.text.format.TextColor;
7+
import org.junit.jupiter.api.BeforeEach;
8+
import org.junit.jupiter.api.DisplayName;
9+
import org.junit.jupiter.api.Test;
10+
11+
import java.awt.*;
12+
13+
import static net.kyori.adventure.text.format.NamedTextColor.BLUE;
14+
15+
@DisplayName("Test - LighterResolver")
16+
public class LighterResolverTest {
17+
private MockParserEngine engine;
18+
19+
@BeforeEach
20+
void setUp() {
21+
engine = MockParserEngine.builder().parseLegacy(true).build();
22+
}
23+
24+
@Test
25+
@DisplayName("Lighter with Hex Color")
26+
public void testLighterWithHexColor() {
27+
final String test = "<lighter><color:#FF0000>Red Text</color></lighter>";
28+
29+
final Component actual = engine.parse(test).build();
30+
final Color brighterRed = new Color(0xFF0000).brighter();
31+
final Component expected = Component.text("Red Text").color(TextColor.color(brighterRed.getRGB()));
32+
33+
TestUtil.assertEquals(expected, actual);
34+
}
35+
36+
@Test
37+
@DisplayName("Lighter without Base Color")
38+
public void testLighterWithoutBaseColor() {
39+
final String test = "<lighter>No Color</lighter>";
40+
41+
final Component actual = engine.parse(test).build();
42+
final Component expected = Component.text("No Color");
43+
44+
TestUtil.assertEquals(expected, actual);
45+
}
46+
47+
@Test
48+
@DisplayName("Lighter Nested Multiple Times")
49+
public void testLighterNestedMultipleTimes() {
50+
final String test = "<lighter><lighter><blue>Double Lighter</blue></lighter></lighter>";
51+
52+
final Component actual = engine.parse(test).build();
53+
final Color doublyBrighterBlue = new Color(BLUE.value()).brighter().brighter();
54+
final Component expected = Component.text("Double Lighter").color(TextColor.color(doublyBrighterBlue.getRGB()));
55+
56+
TestUtil.assertEquals(expected, actual);
57+
}
58+
59+
@Test
60+
@DisplayName("Lighter Nested Multiple Times Without Closing Tag")
61+
public void testLighterNestedMultipleTimesNoClosing() {
62+
final String test = "<lighter><lighter><blue>Double Lighter";
63+
64+
final Component actual = engine.parse(test).build();
65+
final Color doublyBrighterBlue = new Color(BLUE.value()).brighter().brighter();
66+
final Component expected = Component.text("Double Lighter").color(TextColor.color(doublyBrighterBlue.getRGB()));
67+
68+
TestUtil.assertEquals(expected, actual);
69+
}
70+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package io.github.milkdrinkers.colorparser.common.tag;
2+
3+
import io.github.milkdrinkers.colorparser.common.mock.engine.MockParserEngine;
4+
import io.github.milkdrinkers.colorparser.common.util.TestUtil;
5+
import net.kyori.adventure.text.Component;
6+
import org.junit.jupiter.api.BeforeEach;
7+
import org.junit.jupiter.api.DisplayName;
8+
import org.junit.jupiter.api.Test;
9+
10+
import static net.kyori.adventure.text.format.NamedTextColor.BLUE;
11+
12+
@DisplayName("Test - LowercaseResolver")
13+
public class LowercaseResolverTest {
14+
private MockParserEngine engine;
15+
16+
@BeforeEach
17+
void setUp() {
18+
engine = MockParserEngine.builder().parseLegacy(true).build();
19+
}
20+
21+
@Test
22+
@DisplayName("Simple Lowercase")
23+
public void testSimpleLowercase() {
24+
final String test = "<lowercase>HELLO WORLD</lowercase>";
25+
26+
final Component actual = engine.parse(test).build();
27+
final Component expected = Component.text("hello world");
28+
29+
TestUtil.assertEquals(expected, actual);
30+
}
31+
32+
@Test
33+
@DisplayName("Lowercase with Mixed Case")
34+
public void testLowercaseWithMixedCase() {
35+
final String test = "<lowercase>HeLLo WoRLd</lowercase>";
36+
37+
final Component actual = engine.parse(test).build();
38+
final Component expected = Component.text("hello world");
39+
40+
TestUtil.assertEquals(expected, actual);
41+
}
42+
43+
@Test
44+
@DisplayName("Lowercase with Color")
45+
public void testLowercaseWithColor() {
46+
final String test = "<blue><lowercase>HELLO WORLD</lowercase></blue>";
47+
48+
final Component actual = engine.parse(test).build();
49+
final Component expected = Component.text("hello world").color(BLUE);
50+
51+
TestUtil.assertEquals(expected, actual);
52+
}
53+
54+
@Test
55+
@DisplayName("Lowercase Alias - lower")
56+
public void testLowercaseAlias() {
57+
final String test = "<lower>HELLO WORLD</lower>";
58+
59+
final Component actual = engine.parse(test).build();
60+
final Component expected = Component.text("hello world");
61+
62+
TestUtil.assertEquals(expected, actual);
63+
}
64+
65+
@Test
66+
@DisplayName("Lowercase with Special Characters")
67+
public void testLowercaseWithSpecialCharacters() {
68+
final String test = "<lowercase>HELLO WORLD! 123</lowercase>";
69+
70+
final Component actual = engine.parse(test).build();
71+
final Component expected = Component.text("hello world! 123");
72+
73+
TestUtil.assertEquals(expected, actual);
74+
}
75+
}

0 commit comments

Comments
 (0)