From 3bfedfdc3dbe548ee93f08ff87e93a86d2a0bfb8 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Mon, 12 Nov 2018 12:16:42 +0000 Subject: [PATCH] Add action for nullable DB callables. --- .../bramble/test/DbExpectations.java | 3 +- ...unTransactionWithNullableResultAction.java | 28 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 bramble-core/src/test/java/org/briarproject/bramble/test/RunTransactionWithNullableResultAction.java diff --git a/bramble-core/src/test/java/org/briarproject/bramble/test/DbExpectations.java b/bramble-core/src/test/java/org/briarproject/bramble/test/DbExpectations.java index 17682e78d..6f2a0c104 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/test/DbExpectations.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/test/DbExpectations.java @@ -25,7 +25,8 @@ public class DbExpectations extends Expectations { protected NullableDbCallable withNullableDbCallable( Transaction txn) { addParameterMatcher(any(NullableDbCallable.class)); - currentBuilder().setAction(new RunTransactionWithResultAction(txn)); + currentBuilder().setAction( + new RunTransactionWithNullableResultAction(txn)); return null; } diff --git a/bramble-core/src/test/java/org/briarproject/bramble/test/RunTransactionWithNullableResultAction.java b/bramble-core/src/test/java/org/briarproject/bramble/test/RunTransactionWithNullableResultAction.java new file mode 100644 index 000000000..9ed991c92 --- /dev/null +++ b/bramble-core/src/test/java/org/briarproject/bramble/test/RunTransactionWithNullableResultAction.java @@ -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"); + } +}