diff options
Diffstat (limited to 'src/cz/crcs/ectester/common/test/SimpleTest.java')
| -rw-r--r-- | src/cz/crcs/ectester/common/test/SimpleTest.java | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/cz/crcs/ectester/common/test/SimpleTest.java b/src/cz/crcs/ectester/common/test/SimpleTest.java index f68320a..d2b3e94 100644 --- a/src/cz/crcs/ectester/common/test/SimpleTest.java +++ b/src/cz/crcs/ectester/common/test/SimpleTest.java @@ -4,11 +4,17 @@ package cz.crcs.ectester.common.test; * @param <T> * @author Jan Jancar johny@neuromancer.sk */ -public abstract class SimpleTest<T extends BaseTestable> extends Test { +public abstract class SimpleTest<T extends BaseTestable> extends Test implements Testable { protected T testable; protected TestCallback<T> callback; public SimpleTest(T testable, TestCallback<T> callback) { + if (testable == null) { + throw new IllegalArgumentException("testable is null."); + } + if (callback == null) { + throw new IllegalArgumentException("callback is null."); + } this.testable = testable; this.callback = callback; } @@ -16,4 +22,17 @@ public abstract class SimpleTest<T extends BaseTestable> extends Test { public T getTestable() { return testable; } + + @Override + protected void runSelf() { + testable.run(); + result = callback.apply(testable); + } + + @Override + public SimpleTest clone() throws CloneNotSupportedException { + SimpleTest clone = (SimpleTest) super.clone(); + clone.testable = testable.clone(); + return clone; + } } |
