Run commit actions in unit tests.

This commit is contained in:
akwizgran
2019-06-03 16:45:24 +01:00
parent 82a52638cf
commit 92dea21c67
4 changed files with 29 additions and 11 deletions

View File

@@ -7,7 +7,7 @@ import org.jmock.api.Invocation;
public class RunAction implements Action {
@Override
public Object invoke(Invocation invocation) throws Throwable {
public Object invoke(Invocation invocation) {
Runnable task = (Runnable) invocation.getParameter(0);
task.run();
return null;

View File

@@ -1,17 +1,18 @@
package org.briarproject.bramble.test;
import org.briarproject.bramble.api.db.CommitAction;
import org.briarproject.bramble.api.db.DbRunnable;
import org.briarproject.bramble.api.db.TaskAction;
import org.briarproject.bramble.api.db.Transaction;
import org.hamcrest.Description;
import org.jmock.api.Action;
import org.jmock.api.Invocation;
public class RunTransactionAction implements Action {
class RunTransactionAction implements Action {
private final Transaction txn;
@SuppressWarnings("WeakerAccess")
public RunTransactionAction(Transaction txn) {
RunTransactionAction(Transaction txn) {
this.txn = txn;
}
@@ -19,6 +20,10 @@ public class RunTransactionAction implements Action {
public Object invoke(Invocation invocation) throws Throwable {
DbRunnable task = (DbRunnable) invocation.getParameter(1);
task.run(txn);
for (CommitAction action : txn.getActions()) {
if (action instanceof TaskAction)
((TaskAction) action).getTask().run();
}
return null;
}
@@ -26,5 +31,4 @@ public class RunTransactionAction implements Action {
public void describeTo(Description description) {
description.appendText("runs a task inside a database transaction");
}
}

View File

@@ -1,16 +1,18 @@
package org.briarproject.bramble.test;
import org.briarproject.bramble.api.db.CommitAction;
import org.briarproject.bramble.api.db.NullableDbCallable;
import org.briarproject.bramble.api.db.TaskAction;
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 {
class RunTransactionWithNullableResultAction implements Action {
private final Transaction txn;
public RunTransactionWithNullableResultAction(Transaction txn) {
RunTransactionWithNullableResultAction(Transaction txn) {
this.txn = txn;
}
@@ -18,7 +20,12 @@ public class RunTransactionWithNullableResultAction implements Action {
public Object invoke(Invocation invocation) throws Throwable {
NullableDbCallable task =
(NullableDbCallable) invocation.getParameter(1);
return task.call(txn);
Object result = task.call(txn);
for (CommitAction action : txn.getActions()) {
if (action instanceof TaskAction)
((TaskAction) action).getTask().run();
}
return result;
}
@Override

View File

@@ -1,23 +1,30 @@
package org.briarproject.bramble.test;
import org.briarproject.bramble.api.db.CommitAction;
import org.briarproject.bramble.api.db.DbCallable;
import org.briarproject.bramble.api.db.TaskAction;
import org.briarproject.bramble.api.db.Transaction;
import org.hamcrest.Description;
import org.jmock.api.Action;
import org.jmock.api.Invocation;
public class RunTransactionWithResultAction implements Action {
class RunTransactionWithResultAction implements Action {
private final Transaction txn;
public RunTransactionWithResultAction(Transaction txn) {
RunTransactionWithResultAction(Transaction txn) {
this.txn = txn;
}
@Override
public Object invoke(Invocation invocation) throws Throwable {
DbCallable task = (DbCallable) invocation.getParameter(1);
return task.call(txn);
Object result = task.call(txn);
for (CommitAction action : txn.getActions()) {
if (action instanceof TaskAction)
((TaskAction) action).getTask().run();
}
return result;
}
@Override