Add action for nullable DB callables.

This commit is contained in:
akwizgran
2018-11-12 12:16:42 +00:00
parent ecb63d1acb
commit 3bfedfdc3d
2 changed files with 30 additions and 1 deletions

View File

@@ -25,7 +25,8 @@ public class DbExpectations extends Expectations {
protected <R, E extends Exception> NullableDbCallable<R, E> withNullableDbCallable(
Transaction txn) {
addParameterMatcher(any(NullableDbCallable.class));
currentBuilder().setAction(new RunTransactionWithResultAction(txn));
currentBuilder().setAction(
new RunTransactionWithNullableResultAction(txn));
return null;
}

View File

@@ -0,0 +1,28 @@
package org.briarproject.bramble.test;
import org.briarproject.bramble.api.db.NullableDbCallable;
import org.briarproject.bramble.api.db.Transaction;
import org.hamcrest.Description;
import org.jmock.api.Action;
import org.jmock.api.Invocation;
public class RunTransactionWithNullableResultAction implements Action {
private final Transaction txn;
public RunTransactionWithNullableResultAction(Transaction txn) {
this.txn = txn;
}
@Override
public Object invoke(Invocation invocation) throws Throwable {
NullableDbCallable task =
(NullableDbCallable) invocation.getParameter(1);
return task.call(txn);
}
@Override
public void describeTo(Description description) {
description.appendText("runs a task inside a database transaction");
}
}