Add the TestCommandFactory with a getTestMethods.

This commit is contained in:
2023-09-20 22:23:18 +03:00
parent 9edbca09cf
commit 08c85459a7
2 changed files with 62 additions and 0 deletions
@@ -0,0 +1,40 @@
package space.kklochko.simple_jbdd.tests.factories;
import space.kklochko.simple_jbdd.annotations.Given;
import space.kklochko.simple_jbdd.annotations.Then;
import space.kklochko.simple_jbdd.annotations.When;
import space.kklochko.simple_jbdd.tests.Test;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.util.Map;
import java.util.TreeMap;
public class TestCommandFactory {
public <T extends Test> void create(T input) {
Class<?> aClass = input.getClass();
Map<String, Method> test_methods = this.getTestMethods(aClass);
}
protected <T extends Test> Map<String, Method> getTestMethods(Class<?> aClass) {
Map<String, Method> test_methods = new TreeMap<String, Method>();
for(Method method : aClass.getDeclaredMethods()) {
Annotation[] annotations = method.getAnnotations();
if (annotations.length == 0)
continue;
if(method.isAnnotationPresent(Given.class))
test_methods.put("Given", method);
if(method.isAnnotationPresent(When.class))
test_methods.put("When", method);
if(method.isAnnotationPresent(Then.class))
test_methods.put("Then", method);
}
return test_methods;
}
}