Skip to content

Commit c0c0ca0

Browse files
created test for most argument types
1 parent 9412c73 commit c0c0ca0

File tree

1 file changed

+122
-0
lines changed

1 file changed

+122
-0
lines changed

src/test/java/ArgumentParserTest.java

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
import com.datasiqn.commandcore.argument.ArgumentType;
2+
import com.datasiqn.commandcore.argument.StringArgumentReader;
3+
import com.datasiqn.resultapi.Result;
4+
import org.bukkit.Material;
5+
import org.bukkit.util.Vector;
6+
import org.jetbrains.annotations.NotNull;
7+
import org.junit.Test;
8+
9+
import static com.datasiqn.commandcore.argument.ArgumentType.*;
10+
import static org.junit.Assert.assertEquals;
11+
import static org.junit.Assert.assertTrue;
12+
13+
@SuppressWarnings("MissingJavadoc")
14+
public class ArgumentParserTest {
15+
@Test
16+
public void testWord() {
17+
testOk("hello there", WORD, "hello");
18+
}
19+
20+
@Test
21+
public void testName() {
22+
testOk("very cool name", NAME, "very cool name");
23+
}
24+
25+
@Test
26+
public void testInt() {
27+
testOk("29", INTEGER, 29);
28+
testOk("-13", INTEGER, -13);
29+
testErr("bla", INTEGER);
30+
testErr("12.3", INTEGER);
31+
}
32+
33+
@Test
34+
public void testNaturalNumber() {
35+
testOk("382", NATURAL_NUMBER, 382);
36+
testErr("0", NATURAL_NUMBER);
37+
testErr("12.3", NATURAL_NUMBER);
38+
}
39+
40+
@Test
41+
public void testDouble() {
42+
testOk("38.2", DOUBLE, 38.2);
43+
testOk("-1.202", DOUBLE, -1.202);
44+
testErr("word", DOUBLE);
45+
}
46+
47+
@Test
48+
public void testBoolean() {
49+
testOk("true", BOOLEAN, true);
50+
testOk("false", BOOLEAN, false);
51+
testOk("TrUE", BOOLEAN, true);
52+
testErr("1", BOOLEAN);
53+
}
54+
55+
@Test
56+
public void testUuid() {
57+
testOk("9bf53faf-7391-4dee-a47f-e3313af0f243", UUID, java.util.UUID.fromString("9bf53faf-7391-4dee-a47f-e3313af0f243"));
58+
testErr("382a-dcm-d", UUID);
59+
}
60+
61+
@Test
62+
public void testVector() {
63+
testOk("12 83 2", VECTOR, new Vector(12, 83, 2));
64+
testErr("8.2 8 1", VECTOR);
65+
testErr("bla word a", VECTOR);
66+
}
67+
68+
@Test
69+
public void testMaterial() {
70+
testOk("stick", MATERIAL, Material.STICK);
71+
testOk("DIAmOnd_SWOrd", MATERIAL, Material.DIAMOND_SWORD);
72+
testErr("sick", MATERIAL);
73+
}
74+
75+
@Test
76+
public void testBlock() {
77+
testOk("stone", BLOCK, Material.STONE);
78+
testErr("stick", BLOCK);
79+
testErr("random", BLOCK);
80+
}
81+
82+
@Test
83+
public void testItem() {
84+
testOk("bedrock", ITEM, Material.BEDROCK);
85+
testErr("wall_torch", ITEM);
86+
}
87+
88+
// Skip player because that won't work in a testing environment
89+
// public void testPlayer() {}
90+
91+
// Skip command because that won't work in a testing environment
92+
// public void testCommand() {}
93+
94+
@Test
95+
public void testRangedInt() {
96+
ArgumentType<Integer> minRanged = rangedInt(8);
97+
testOk("10", minRanged, 10);
98+
testOk("8", minRanged, 8);
99+
testErr("3", minRanged);
100+
testErr("9.23", minRanged);
101+
testErr("string", minRanged);
102+
103+
ArgumentType<Integer> ranged = rangedInt(2, 10);
104+
testOk("7", ranged, 7);
105+
testOk("2", ranged, 2);
106+
testOk("10", ranged, 10);
107+
testErr("1", ranged);
108+
testErr("13", ranged);
109+
testErr("8.9", ranged);
110+
testErr("number", ranged);
111+
}
112+
113+
private <T> void testOk(String arg, @NotNull ArgumentType<T> type, T val) {
114+
Result<T, String> result = type.parse(new StringArgumentReader(arg));
115+
assertTrue(result.isOk());
116+
assertEquals(result.unwrap(), val);
117+
}
118+
119+
private void testErr(String arg, @NotNull ArgumentType<?> type) {
120+
assertTrue(type.parse(new StringArgumentReader(arg)).isError());
121+
}
122+
}

0 commit comments

Comments
 (0)