11package bwapi;
22
3+ import org.junit.BeforeClass;
34import org.junit.Test;
45
56import java.io.File;
@@ -22,9 +23,11 @@ public class EnumsTest {
2223 static String ARRAY_VALUE = "idToEnum";
2324 static String ID_VALUE = "id";
2425
26+ static List<Class<?>> BWAPI_ENUMS;
2527
26- static List<Class<?>> getBWAPIEnums() {
27- return Arrays.stream(Objects.requireNonNull(new File(CLASSES_LOCATION).listFiles()))
28+ @BeforeClass
29+ public static void setup() {
30+ BWAPI_ENUMS = Arrays.stream(Objects.requireNonNull(new File(CLASSES_LOCATION).listFiles()))
2831 .filter(File::isFile)
2932 .map(f -> {
3033 try {
@@ -42,7 +45,7 @@ static List<Class<?>> getBWAPIEnums() {
4245 */
4346 @Test
4447 public void checkAllidToEnumsArrayLenghts() throws Exception {
45- for (Class<?> cls : getBWAPIEnums() ) {
48+ for (Class<?> cls : BWAPI_ENUMS ) {
4649 if (Arrays.stream(cls.getDeclaredFields()).anyMatch(f -> f.getName().equals(ARRAY_VALUE))) {
4750 Field field = cls.getDeclaredField(ARRAY_VALUE);
4851 assertFalse(field.isAccessible());
@@ -66,7 +69,7 @@ public void checkAllidToEnumsArrayLenghts() throws Exception {
6669
6770 @Test
6871 public void ensureSimpleGettersReturnNonNullAndDontFail() throws InvocationTargetException, IllegalAccessException {
69- for (Class<?> cls : getBWAPIEnums() ) {
72+ for (Class<?> cls : BWAPI_ENUMS ) {
7073 List<Method> simpleGetters = Arrays.stream(cls.getMethods())
7174 .filter(it -> it.getParameterCount() == 0 && it.getReturnType() != Void.TYPE)
7275 .collect(Collectors.toList());
@@ -83,9 +86,9 @@ public void ensureSimpleGettersReturnNonNullAndDontFail() throws InvocationTarge
8386
8487 @Test
8588 public void ensureEnumsExposePublicId() throws NoSuchFieldException {
86- for (Class<?> cls : getBWAPIEnums() ) {
87- Field idField = cls.getField(ID_VALUE);
88- assertThat(Modifier.isPublic(idField.getModifiers() ))
89+ for (Class<?> cls : BWAPI_ENUMS ) {
90+ int modifiers = cls.getField(ID_VALUE).getModifiers( );
91+ assertThat(Modifier.isPublic(modifiers) && Modifier.isFinal(modifiers ))
8992 .describedAs("ID public for class "+ cls)
9093 .isTrue();
9194 }
0 commit comments