Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a3d7f4f42 | ||
|
|
6feb7f87dc |
@@ -0,0 +1,43 @@
|
||||
package space.kklochko.simple_jbdd.tests.commands;
|
||||
|
||||
import space.kklochko.simple_jbdd.tests.Test;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
public abstract class AbstractTestCommand<T extends Test> {
|
||||
protected String type;
|
||||
protected String label;
|
||||
|
||||
public AbstractTestCommand(String label) {
|
||||
setLabel(label);
|
||||
}
|
||||
|
||||
public abstract boolean test();
|
||||
|
||||
public Map<String, String> getLabels() {
|
||||
Map<String, String> labels = new TreeMap<String, String>();
|
||||
labels.put(getType(), this.getLabel());
|
||||
return labels;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public void setLabel(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
public abstract void setObject(T object);
|
||||
|
||||
public abstract T getObject();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package space.kklochko.simple_jbdd.tests.commands;
|
||||
|
||||
import space.kklochko.simple_jbdd.tests.Test;
|
||||
|
||||
public class SimpleTestCommand<T extends Test> extends AbstractTestCommand<T> {
|
||||
protected T object;
|
||||
|
||||
public SimpleTestCommand(String label, T object) {
|
||||
super(label);
|
||||
setObject(object);
|
||||
setType("Title");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setObject(T object) {
|
||||
this.object = object;
|
||||
}
|
||||
|
||||
public T getObject() {
|
||||
return object;
|
||||
}
|
||||
}
|
||||
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
package space.kklochko.simple_jbdd.tests.commands.decorators;
|
||||
|
||||
import space.kklochko.simple_jbdd.tests.Test;
|
||||
import space.kklochko.simple_jbdd.tests.commands.AbstractTestCommand;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Map;
|
||||
|
||||
public abstract class AbstractDecorator<T extends Test> extends AbstractTestCommand<T> {
|
||||
protected AbstractTestCommand<T> command;
|
||||
|
||||
protected Method method;
|
||||
|
||||
public AbstractDecorator(String label, AbstractTestCommand<T> command) {
|
||||
super(label);
|
||||
setCommand(command);
|
||||
}
|
||||
|
||||
public abstract boolean test();
|
||||
|
||||
public Map<String, String> getLabels() {
|
||||
Map<String, String> labels = getCommand().getLabels();
|
||||
labels.put(getType(), this.getLabel());
|
||||
return labels;
|
||||
}
|
||||
|
||||
public abstract boolean runMethod();
|
||||
|
||||
public void setMethod(Method method) {
|
||||
this.method = method;
|
||||
}
|
||||
|
||||
public Method getMethod() {
|
||||
return method;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setObject(T object) {
|
||||
command.setObject(object);
|
||||
}
|
||||
|
||||
@Override
|
||||
public T getObject() {
|
||||
return command.getObject();
|
||||
}
|
||||
|
||||
public AbstractTestCommand<T> getCommand() {
|
||||
return command;
|
||||
}
|
||||
|
||||
public void setCommand(AbstractTestCommand<T> command) {
|
||||
this.command = command;
|
||||
}
|
||||
}
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package space.kklochko.simple_jbdd.tests.commands.decorators;
|
||||
|
||||
import space.kklochko.simple_jbdd.tests.Test;
|
||||
import space.kklochko.simple_jbdd.tests.commands.AbstractTestCommand;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class BlockDecorator<T extends Test> extends AbstractDecorator<T> {
|
||||
public BlockDecorator(String label, AbstractTestCommand<T> command, Method method, String type) {
|
||||
super(label, command);
|
||||
setType(type);
|
||||
setMethod(method);
|
||||
}
|
||||
|
||||
public boolean test() {
|
||||
boolean result = runMethod();
|
||||
|
||||
if(!result)
|
||||
return false;
|
||||
|
||||
return getCommand().test();
|
||||
}
|
||||
|
||||
public boolean runMethod() {
|
||||
try {
|
||||
method.setAccessible(true);
|
||||
method.invoke(getCommand().getObject());
|
||||
return true;
|
||||
} catch (InvocationTargetException e) {
|
||||
System.err.println(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
} catch (IllegalAccessException e) {
|
||||
System.err.println("Check access modifiers.");
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user