package cz.crcs.ectester.standalone.test; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.SimpleTest; import cz.crcs.ectester.common.test.TestCallback; import cz.crcs.ectester.common.test.TestException; /** * @author Jan Jancar johny@neuromancer.sk */ public class SignatureTest extends SimpleTest { private SignatureTest(SignatureTestable sig, TestCallback callback) { super(sig, callback); } public static SignatureTest expect(SignatureTestable kg, Result.ExpectedValue expected) { return new SignatureTest(kg, new TestCallback() { @Override public Result apply(SignatureTestable signatureTestable) { return new Result(Result.Value.fromExpected(expected, signatureTestable.ok(), signatureTestable.error())); } }); } public static SignatureTest function(SignatureTestable ka, TestCallback callback) { return new SignatureTest(ka, callback); } @Override public String getDescription() { return "Signature test"; } @Override public void run() throws TestException { if (hasRun) return; testable.run(); result = callback.apply(testable); hasRun = true; } }