diff --git a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocolIntegrationTest.java b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocolIntegrationTest.java index 7ae21d14690dedf3bb0968090fc4cc380dd0787b..66e7d4b9c727ad22ef55c3e71e27906c6c7e5ef1 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocolIntegrationTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/protocol/MailboxProtocolIntegrationTest.java @@ -106,7 +106,10 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase { } }); + ioExecutor.execute(mailboxProtocol); + mailboxProtocol.enableRequestHandling(); + MailboxRequest req = new MailboxRequestStore(new ContactId(123), "test".getBytes()); mailboxProtocol.writeRequest(req); @@ -126,21 +129,7 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase { @Test - public void testRequestsAndHandling() - throws IOException, InterruptedException { - ioExecutor.execute(mailboxProtocol); - try { - errorResponse(); - storeRequest(); - syncRequest(); - takeRequest(); - endRequest(); - } finally { - pipedOS.close(); - } - } - - private void errorResponse() throws InterruptedException, IOException { + public void errorResponse() throws InterruptedException, IOException { mailboxProtocol.registerRequestHandler(new MailboxRequestHandler() { @Override public void handleRequest(MailboxRequest request) @@ -157,28 +146,32 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase { public void protocolFinished() { } }); + + + ioExecutor.execute(mailboxProtocol); + mailboxProtocol.enableRequestHandling(); + // Test Error Response MailboxRequestTake req = - new MailboxRequestTake(new ContactId(123), "Test".getBytes()); + new MailboxRequestTake("Test".getBytes()); mailboxProtocol.writeRequest(req); assertEquals(false, req.awaitAndGetResponse()); assertEquals("java.net.ProtocolException: Error", req.getError()); + pipedOS.close(); } - private void takeRequest() throws IOException, InterruptedException { - + @Test + public void takeRequest() throws IOException, InterruptedException { // Generate and write TAKE request MailboxRequestTake req = - new MailboxRequestTake(new ContactId(123), "Test".getBytes()); + new MailboxRequestTake("Test".getBytes()); mailboxProtocol.registerRequestHandler(new MailboxRequestHandler() { @Override public void handleRequest(MailboxRequest request) { assertEquals(req.getId(), request.getId()); assertEquals(TAKE, request.getType()); - assertEquals(req.getContactId(), - ((MailboxRequestTake) request).getContactId()); assertEquals("Test", new String(req.getEncryptedSyncStream())); } @@ -192,16 +185,21 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase { } }); + ioExecutor.execute(mailboxProtocol); + mailboxProtocol.enableRequestHandling(); + mailboxProtocol.writeRequest(req); assertEquals(true, req.awaitAndGetResponse()); + pipedOS.close(); } - private void endRequest() throws IOException, InterruptedException { + @Test + public void endRequest() throws IOException, InterruptedException { MailboxRequest req = new MailboxRequestEnd(); mailboxProtocol.registerRequestHandler(new MailboxRequestHandler() { @Override - public void handleRequest(MailboxRequest request){ + public void handleRequest(MailboxRequest request) { assertEquals(req.getId(), request.getId()); assertEquals(END, request.getType()); @@ -217,11 +215,16 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase { } }); + + ioExecutor.execute(mailboxProtocol); + mailboxProtocol.enableRequestHandling(); + mailboxProtocol.writeRequest(req); + pipedOS.close(); } - - private void storeRequest() throws IOException, InterruptedException { + @Test + public void storeRequestWithId() throws IOException, InterruptedException { // Generate and write TAKE request MailboxRequestStore req = new MailboxRequestStore(new ContactId(123), "Test".getBytes()); @@ -232,6 +235,7 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase { MailboxRequestStore recvReq = (MailboxRequestStore) request; assertEquals(req.getId(), recvReq.getId()); assertEquals(req.getType(), recvReq.getType()); + assertEquals(true, recvReq.hasContactId()); assertEquals(req.getContactId(), recvReq.getContactId()); assertEquals("Test", new String(req.getEncryptedSyncStream())); } @@ -246,18 +250,59 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase { } }); + ioExecutor.execute(mailboxProtocol); + mailboxProtocol.enableRequestHandling(); + mailboxProtocol.writeRequest(req); assertEquals(true, req.awaitAndGetResponse()); + + pipedOS.close(); } - private void syncRequest() throws IOException, InterruptedException { + @Test + public void storeRequestWithoutId() throws IOException, InterruptedException { + // Generate and write TAKE request + MailboxRequestStore req = + new MailboxRequestStore("Test".getBytes()); + + mailboxProtocol.registerRequestHandler(new MailboxRequestHandler() { + @Override + public void handleRequest(MailboxRequest request) { + MailboxRequestStore recvReq = (MailboxRequestStore) request; + assertEquals(req.getId(), recvReq.getId()); + assertEquals(req.getType(), recvReq.getType()); + assertEquals(false, recvReq.hasContactId()); + assertEquals("Test", new String(req.getEncryptedSyncStream())); + } + + @Override + public MailboxMessage.TYPE getType() { + return STORE; + } + + @Override + public void protocolFinished() { + } + }); + + ioExecutor.execute(mailboxProtocol); + mailboxProtocol.enableRequestHandling(); + + mailboxProtocol.writeRequest(req); + assertEquals(true, req.awaitAndGetResponse()); + + pipedOS.close(); + } + + @Test + public void syncRequest() throws IOException, InterruptedException { MailboxRequestSync req = new MailboxRequestSync("Test".getBytes(), false); mailboxProtocol.registerRequestHandler(new MailboxRequestHandler() { @Override - public void handleRequest(MailboxRequest request){ - MailboxRequestSync recvReq = (MailboxRequestSync)request; + public void handleRequest(MailboxRequest request) { + MailboxRequestSync recvReq = (MailboxRequestSync) request; assertEquals(req.getId(), recvReq.getId()); assertEquals(SYNC, recvReq.getType()); assertEquals("Test", new String(recvReq.getSyncStream())); @@ -274,7 +319,13 @@ public class MailboxProtocolIntegrationTest extends BrambleTestCase { public void protocolFinished() { } }); + + ioExecutor.execute(mailboxProtocol); + mailboxProtocol.enableRequestHandling(); + mailboxProtocol.writeRequest(req); + + pipedOS.close(); }