1
1
package bwapi ;
2
2
3
+ import org .junit .BeforeClass ;
3
4
import org .junit .Test ;
4
5
5
6
import java .io .File ;
@@ -22,9 +23,11 @@ public class EnumsTest {
22
23
static String ARRAY_VALUE = "idToEnum" ;
23
24
static String ID_VALUE = "id" ;
24
25
26
+ static List <Class <?>> BWAPI_ENUMS ;
25
27
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 ()))
28
31
.filter (File ::isFile )
29
32
.map (f -> {
30
33
try {
@@ -42,7 +45,7 @@ static List<Class<?>> getBWAPIEnums() {
42
45
*/
43
46
@ Test
44
47
public void checkAllidToEnumsArrayLenghts () throws Exception {
45
- for (Class <?> cls : getBWAPIEnums () ) {
48
+ for (Class <?> cls : BWAPI_ENUMS ) {
46
49
if (Arrays .stream (cls .getDeclaredFields ()).anyMatch (f -> f .getName ().equals (ARRAY_VALUE ))) {
47
50
Field field = cls .getDeclaredField (ARRAY_VALUE );
48
51
assertFalse (field .isAccessible ());
@@ -66,7 +69,7 @@ public void checkAllidToEnumsArrayLenghts() throws Exception {
66
69
67
70
@ Test
68
71
public void ensureSimpleGettersReturnNonNullAndDontFail () throws InvocationTargetException , IllegalAccessException {
69
- for (Class <?> cls : getBWAPIEnums () ) {
72
+ for (Class <?> cls : BWAPI_ENUMS ) {
70
73
List <Method > simpleGetters = Arrays .stream (cls .getMethods ())
71
74
.filter (it -> it .getParameterCount () == 0 && it .getReturnType () != Void .TYPE )
72
75
.collect (Collectors .toList ());
@@ -83,9 +86,9 @@ public void ensureSimpleGettersReturnNonNullAndDontFail() throws InvocationTarge
83
86
84
87
@ Test
85
88
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 ))
89
92
.describedAs ("ID public for class " + cls )
90
93
.isTrue ();
91
94
}
0 commit comments