diff options
author | Carlo Zancanaro <carlo@zancanaro.id.au> | 2015-06-02 18:10:13 +1000 |
---|---|---|
committer | Carlo Zancanaro <carlo@zancanaro.id.au> | 2015-06-02 18:10:13 +1000 |
commit | 27fcf37206591c774d79ec60de8d404ed83378ac (patch) | |
tree | 26e71761085a282bc9f31dad4f9624c86ea3aac4 /src/main/java/au/id/zancanaro/javacheck/junit/Properties.java | |
parent | 140b4d41d695f32e75c785f6179430f677d244ae (diff) |
Fix up some static analysis warnings and improve @DataPoint detection
Diffstat (limited to 'src/main/java/au/id/zancanaro/javacheck/junit/Properties.java')
-rw-r--r-- | src/main/java/au/id/zancanaro/javacheck/junit/Properties.java | 57 |
1 files changed, 31 insertions, 26 deletions
diff --git a/src/main/java/au/id/zancanaro/javacheck/junit/Properties.java b/src/main/java/au/id/zancanaro/javacheck/junit/Properties.java index 6ff0538..1e3f502 100644 --- a/src/main/java/au/id/zancanaro/javacheck/junit/Properties.java +++ b/src/main/java/au/id/zancanaro/javacheck/junit/Properties.java @@ -16,6 +16,7 @@ import org.junit.runners.model.TestClass; import java.lang.reflect.*; import java.util.*; +@SuppressWarnings("WeakerAccess") public class Properties extends BlockJUnit4ClassRunner { private final Map<Type, Generator<?>> generators = new HashMap<>(); @@ -35,32 +36,36 @@ public class Properties extends BlockJUnit4ClassRunner { Field[] fields = getTestClass().getJavaClass().getDeclaredFields(); for (Field field : fields) { - if (!field.isAnnotationPresent(DataSource.class)) { - continue; - } - Type type = field.getGenericType(); - if (!(type instanceof ParameterizedType)) { - continue; - } - ParameterizedType parameterizedType = (ParameterizedType) type; - if (!(parameterizedType.getRawType() instanceof Class)) { - continue; - } - Class<?> c = (Class) parameterizedType.getRawType(); - if (c != Generator.class) { - continue; - } - boolean error = false; - if (!Modifier.isStatic(field.getModifiers())) { - errors.add(new Error("Generator field " + field.getName() + " must be static")); - error = true; - } - if (!Modifier.isPublic(field.getModifiers())) { - errors.add(new Error("Generator field " + field.getName() + " must be public")); - error = true; - } - if (!error) { - result.add(parameterizedType.getActualTypeArguments()[0]); + if (field.isAnnotationPresent(DataSource.class)) { + boolean error = false; + if (!Modifier.isStatic(field.getModifiers())) { + errors.add(new Error("@DataSource field " + field.getName() + " must be static")); + error = true; + } + if (!Modifier.isPublic(field.getModifiers())) { + errors.add(new Error("@DataSource field " + field.getName() + " must be public")); + error = true; + } + + Type type = field.getGenericType(); + ParameterizedType parameterizedType;; + if (type instanceof ParameterizedType) { + parameterizedType = (ParameterizedType) type; + if (parameterizedType.getRawType() instanceof Class) { + Class<?> c = (Class) parameterizedType.getRawType(); + if (c == Generator.class) { + if (!error) { + result.add(parameterizedType.getActualTypeArguments()[0]); + } + } else { + errors.add(new Error("@DataSource fields must be of type Generator<T>")); + } + } else { + errors.add(new Error("@DataSource fields must be of type Generator<T>")); + } + } else { + errors.add(new Error("@DataSource fields must be of type Generator<T>")); + } } } return result; |