Fix: better test of the NetworkVirtualPrinter

mixer
Hai Brenner 2016-08-02 14:24:25 +03:00
parent c78b78aa3c
commit 4ddd5f852a
1 changed files with 18 additions and 5 deletions

View File

@ -37,6 +37,7 @@ public class NetworkVirtualPrinterTest {
private static final String SUB_ADDRESS = "";
private static final int PORT = 8080;
private Semaphore semaphore0;
private Semaphore semaphore1;
private Semaphore semaphore2;
private Throwable thrown;
@ -45,6 +46,9 @@ public class NetworkVirtualPrinterTest {
private NetworkVirtualPrinter networkPrinter;
private class ScanHandler implements FutureCallback<ScannedData> {
private final ScannedData expectedData;
@ -70,9 +74,11 @@ public class NetworkVirtualPrinterTest {
private class CommitHandler extends OutputDeviceCommitCallback {
private boolean success;
public String errorMessage;
public CommitHandler(int requestId, long serialNumber) {
super(requestId, serialNumber, null, null);
errorMessage = null;
success = false;
}
@ -80,11 +86,13 @@ public class NetworkVirtualPrinterTest {
public void onSuccess(Void v) {
System.out.println("CommitHandler success");
success = true;
semaphore0.release();
}
@Override
public void onFailure(Throwable t) {
assertThat("Commit to ballot failed " + t.getMessage(), false);
errorMessage = "Commit to ballot failed " + t.getMessage();
semaphore0.release();
}
public boolean gotSuccess() {
@ -95,9 +103,11 @@ public class NetworkVirtualPrinterTest {
private class CastHandler extends OutputDeviceFinalizeCallback {
private boolean success;
public String errorMessage;
public CastHandler(int requestId, long serialNumber) {
super(requestId, serialNumber, null, null);
errorMessage = null;
success = false;
}
@ -110,8 +120,8 @@ public class NetworkVirtualPrinterTest {
@Override
public void onFailure(Throwable t) {
errorMessage = "Cast to ballot failed " + t.getMessage();
semaphore1.release();
assertThat("Cast ballot failed " + t.getMessage(), false);
}
public boolean gotSuccess() {
@ -126,6 +136,7 @@ public class NetworkVirtualPrinterTest {
scanner = new PollingStationWebScanner(PORT, SUB_ADDRESS);
semaphore0 = new Semaphore(0);
semaphore1 = new Semaphore(0);
semaphore2 = new Semaphore(0);
thrown = null;
@ -136,11 +147,11 @@ public class NetworkVirtualPrinterTest {
assertThat("Could not start server: " + e.getMessage(), false);
}
networkPrinter = new NetworkVirtualPrinter(ADDRESS + ":" + PORT);
Thread outputThread = new Thread(networkPrinter);
outputThread.setName("Meerkat VB-Output Thread");
outputThread.start();
}
@Test
@ -191,12 +202,14 @@ public class NetworkVirtualPrinterTest {
CommitHandler commitHandler = new CommitHandler(0, serialNumber);
networkPrinter.commitToBallot(plaintextBallot, signedEncryptedBallot, commitHandler);
semaphore0.acquire();
CastHandler castHandler = new CastHandler(1, serialNumber);
networkPrinter.castBallot(castHandler);
semaphore1.acquire();
semaphore2.acquire();
// Make sure the response was valid