Skip to content

Commit 0d4ac23

Browse files
author
Bytekeeper
committed
Added unit tests for BWAPI types to verify parameter-less getters can be called without causing exceptions, and none returns null.
1 parent c654747 commit 0d4ac23

File tree

7 files changed

+86
-1
lines changed

7 files changed

+86
-1
lines changed

src/main/java/bwapi/TextColor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public static String formatText(final String text, final TextColor format) {
4848
}
4949

5050
//SINCE 4.2
51-
//C hecks if the given character is a color-changing control code.
51+
//C checks if the given character is a color-changing control code.
5252
boolean isColor() {
5353
final int c = this.id;
5454
return (2 <= c && c <= 8) || (14 <= c && c <= 17) || (21 <= c && c <= 31);
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package bwapi;
2+
3+
import org.junit.Test;
4+
5+
import java.lang.reflect.InvocationTargetException;
6+
7+
public class PlayerTypeTest {
8+
@Test
9+
public void ensureSimpleGettersReturnNonNullAndDontFail() throws InvocationTargetException, IllegalAccessException {
10+
TypeTester.ensureSimpleGettersReturnNonNullAndDontFail(WeaponType.class);
11+
}
12+
}

src/test/java/bwapi/TechTypeTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,10 @@ public void testArraySizes() throws IllegalAccessException {
2525
}
2626
}
2727
}
28+
29+
@Test
30+
public void ensureSimpleGettersReturnNonNullAndDontFail() throws InvocationTargetException, IllegalAccessException {
31+
TypeTester.ensureSimpleGettersReturnNonNullAndDontFail(TechType.class);
32+
}
33+
2834
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package bwapi;
2+
3+
import java.lang.reflect.InvocationTargetException;
4+
import java.lang.reflect.Method;
5+
import java.util.Arrays;
6+
import java.util.List;
7+
import java.util.stream.Collectors;
8+
9+
import static org.assertj.core.api.Assertions.assertThat;
10+
11+
class TypeTester {
12+
private TypeTester() {
13+
// Utility class
14+
}
15+
16+
static void ensureSimpleGettersReturnNonNullAndDontFail(Class<? extends Enum<?>> typeEnumClass) throws InvocationTargetException, IllegalAccessException {
17+
List<Method> simpleGetters = Arrays.stream(typeEnumClass.getMethods())
18+
.filter(it -> it.getParameterCount() == 0 && it.getReturnType() != Void.TYPE)
19+
.collect(Collectors.toList());
20+
for (Enum<?> type : typeEnumClass.getEnumConstants()) {
21+
for (Method getter : simpleGetters) {
22+
// WHEN
23+
Object result = getter.invoke(type);
24+
25+
// THEN
26+
assertThat(result).describedAs("When calling " + getter.getName()).isNotNull();
27+
}
28+
}
29+
}
30+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package bwapi;
2+
3+
import org.junit.Test;
4+
5+
import java.lang.reflect.InvocationTargetException;
6+
7+
public class UnitTypeTest {
8+
@Test
9+
public void ensureSimpleGettersReturnNonNullAndDontFail() throws InvocationTargetException, IllegalAccessException {
10+
TypeTester.ensureSimpleGettersReturnNonNullAndDontFail(WeaponType.class);
11+
}
12+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package bwapi;
2+
3+
import org.junit.Test;
4+
5+
import java.lang.reflect.InvocationTargetException;
6+
7+
public class UpgradeTypeTest {
8+
@Test
9+
public void ensureSimpleGettersReturnNonNullAndDontFail() throws InvocationTargetException, IllegalAccessException {
10+
TypeTester.ensureSimpleGettersReturnNonNullAndDontFail(WeaponType.class);
11+
}
12+
13+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package bwapi;
2+
3+
import org.junit.Test;
4+
5+
import java.lang.reflect.InvocationTargetException;
6+
7+
public class WeaponTypeTest {
8+
@Test
9+
public void ensureSimpleGettersReturnNonNullAndDontFail() throws InvocationTargetException, IllegalAccessException {
10+
TypeTester.ensureSimpleGettersReturnNonNullAndDontFail(WeaponType.class);
11+
}
12+
}

0 commit comments

Comments
 (0)