Add validators to show error if a test method is invalid.

main
KKlochko 2 years ago
parent 71f30a43e9
commit 8b7ba5f18b

@ -0,0 +1,32 @@
package space.kklochko.simple_jbdd.tests.factories.validators;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Map;
public class EmptyValidator extends Validator {
private boolean isInvalid;
@Override
public boolean validate(Map<String, ArrayList<Method>> methods) {
isInvalid = (methods.size() == 0);
return isInvalid;
}
@Override
public String getErrorType() {
if(!isInvalid)
return "ok";
return "Error";
}
@Override
public String getMessage() {
if(!isInvalid)
return "ok";
return "ERROR!!! No blocks!!!";
}
}

@ -0,0 +1,19 @@
package space.kklochko.simple_jbdd.tests.factories.validators;
import java.lang.reflect.Method;
public class HasMethodsWithArgumentsValidator extends MethodValidator {
@Override
protected boolean isMethodInvalid(Method method) {
return method.getParameterCount() != 0;
}
@Override
public String getMessage() {
if(!isInvalid)
return "ok";
return String.format("ERROR!!! Methods must have no arguments!!! Check methods: %s!!!", getMethodListAsString());
}
}

@ -0,0 +1,19 @@
package space.kklochko.simple_jbdd.tests.factories.validators;
import java.lang.reflect.Method;
public class HasNonVoidMethodsValidator extends MethodValidator {
@Override
protected boolean isMethodInvalid(Method method) {
return !method.getReturnType().equals(void.class);
}
@Override
public String getMessage() {
if(!isInvalid)
return "ok";
return String.format("ERROR!!! Methods must have the void type!!! Check methods: %s!!!", getMethodListAsString());
}
}

@ -0,0 +1,20 @@
package space.kklochko.simple_jbdd.tests.factories.validators;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class HasPrivateMethodsValidator extends MethodValidator {
@Override
protected boolean isMethodInvalid(Method method) {
return !Modifier.isPublic(method.getModifiers());
}
@Override
public String getMessage() {
if(!isInvalid)
return "ok";
return String.format("ERROR!!! Methods must be public!!! Check method: %s!!!", getMethodListAsString());
}
}

@ -0,0 +1,48 @@
package space.kklochko.simple_jbdd.tests.factories.validators;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Map;
import java.util.stream.Collectors;
abstract public class MethodValidator extends Validator{
protected boolean isInvalid;
protected ArrayList<Method> invalidMethods;
protected String getMethodListAsString() {
return invalidMethods.stream()
.map(m -> m.getName())
.collect(Collectors.joining(", "));
}
abstract protected boolean isMethodInvalid(Method method);
@Override
public boolean validate(Map<String, ArrayList<Method>> methods) {
isInvalid = false;
invalidMethods = new ArrayList<>();
for(var key : methods.keySet()) {
for(var method : methods.get(key)) {
if(isMethodInvalid(method)) {
isInvalid = true;
invalidMethods.add(method);
}
}
}
return isInvalid;
}
@Override
public String getErrorType() {
if(!isInvalid)
return "ok";
return "Error";
}
abstract public String getMessage();
}

@ -0,0 +1,11 @@
package space.kklochko.simple_jbdd.tests.factories.validators;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Map;
public abstract class Validator {
abstract public boolean validate(Map<String, ArrayList<Method>> methods);
abstract public String getErrorType();
abstract public String getMessage();
}
Loading…
Cancel
Save