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