diff --git a/test/build.xml b/test/build.xml
index 4a1e8c115..7238b1a32 100644
--- a/test/build.xml
+++ b/test/build.xml
@@ -13,8 +13,8 @@
-
+
diff --git a/test/net/sf/briar/FileReadWriteTest.java b/test/net/sf/briar/ProtocolIntegrationTest.java
similarity index 89%
rename from test/net/sf/briar/FileReadWriteTest.java
rename to test/net/sf/briar/ProtocolIntegrationTest.java
index 12c5ebb93..a2e70d0d5 100644
--- a/test/net/sf/briar/FileReadWriteTest.java
+++ b/test/net/sf/briar/ProtocolIntegrationTest.java
@@ -1,8 +1,7 @@
package net.sf.briar;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.KeyPair;
@@ -51,17 +50,12 @@ import net.sf.briar.protocol.writers.ProtocolWritersModule;
import net.sf.briar.serial.SerialModule;
import net.sf.briar.transport.TransportModule;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Test;
import com.google.inject.Guice;
import com.google.inject.Injector;
-public class FileReadWriteTest extends TestCase {
-
- private final File testDir = TestUtils.getTestDirectory();
- private final File file = new File(testDir, "foo");
+public class ProtocolIntegrationTest extends TestCase {
private final BatchId ack = new BatchId(TestUtils.getRandomId());
private final long timestamp = System.currentTimeMillis();
@@ -81,12 +75,12 @@ public class FileReadWriteTest extends TestCase {
private final String messageBody = "Hello world";
private final Map> transports;
- public FileReadWriteTest() throws Exception {
+ public ProtocolIntegrationTest() throws Exception {
super();
Injector i = Guice.createInjector(new CryptoModule(),
new DatabaseModule(), new ProtocolModule(),
new ProtocolWritersModule(), new SerialModule(),
- new TestDatabaseModule(testDir), new TransportModule());
+ new TestDatabaseModule(), new TransportModule());
connectionReaderFactory = i.getInstance(ConnectionReaderFactory.class);
connectionWriterFactory = i.getInstance(ConnectionWriterFactory.class);
protocolReaderFactory = i.getInstance(ProtocolReaderFactory.class);
@@ -124,67 +118,59 @@ public class FileReadWriteTest extends TestCase {
Collections.singletonMap("bar", "baz"));
}
- @Before
- public void setUp() {
- testDir.mkdirs();
- }
-
@Test
public void testWriteAndRead() throws Exception {
- write();
- read();
+ read(write());
}
- private void write() throws Exception {
- OutputStream out = new FileOutputStream(file);
+ private byte[] write() throws Exception {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
// Use Alice's secret for writing
ConnectionWriter w = connectionWriterFactory.createConnectionWriter(out,
Long.MAX_VALUE, true, transportId, connection, aliceSecret);
- out = w.getOutputStream();
+ OutputStream out1 = w.getOutputStream();
- AckWriter a = protocolWriterFactory.createAckWriter(out);
+ AckWriter a = protocolWriterFactory.createAckWriter(out1);
assertTrue(a.writeBatchId(ack));
a.finish();
- BatchWriter b = protocolWriterFactory.createBatchWriter(out);
+ BatchWriter b = protocolWriterFactory.createBatchWriter(out1);
assertTrue(b.writeMessage(message.getBytes()));
assertTrue(b.writeMessage(message1.getBytes()));
assertTrue(b.writeMessage(message2.getBytes()));
assertTrue(b.writeMessage(message3.getBytes()));
b.finish();
- OfferWriter o = protocolWriterFactory.createOfferWriter(out);
+ OfferWriter o = protocolWriterFactory.createOfferWriter(out1);
assertTrue(o.writeMessageId(message.getId()));
assertTrue(o.writeMessageId(message1.getId()));
assertTrue(o.writeMessageId(message2.getId()));
assertTrue(o.writeMessageId(message3.getId()));
o.finish();
- RequestWriter r = protocolWriterFactory.createRequestWriter(out);
+ RequestWriter r = protocolWriterFactory.createRequestWriter(out1);
BitSet requested = new BitSet(4);
requested.set(1);
requested.set(3);
r.writeRequest(requested, 4);
SubscriptionWriter s =
- protocolWriterFactory.createSubscriptionWriter(out);
+ protocolWriterFactory.createSubscriptionWriter(out1);
// Use a LinkedHashMap for predictable iteration order
Map subs = new LinkedHashMap();
subs.put(group, 0L);
subs.put(group1, 0L);
s.writeSubscriptions(subs, timestamp);
- TransportWriter t = protocolWriterFactory.createTransportWriter(out);
+ TransportWriter t = protocolWriterFactory.createTransportWriter(out1);
t.writeTransports(transports, timestamp);
- out.close();
- assertTrue(file.exists());
- assertTrue(file.length() > message.getSize());
+ out1.close();
+ return out.toByteArray();
}
- private void read() throws Exception {
-
- InputStream in = new FileInputStream(file);
+ private void read(byte[] connection) throws Exception {
+ InputStream in = new ByteArrayInputStream(connection);
byte[] iv = new byte[16];
int offset = 0;
while(offset < 16) {
@@ -256,11 +242,6 @@ public class FileReadWriteTest extends TestCase {
in.close();
}
- @After
- public void tearDown() {
- TestUtils.deleteTestDirectory(testDir);
- }
-
private void checkMessageEquality(Message m1, Message m2) {
assertEquals(m1.getId(), m2.getId());
assertEquals(m1.getParent(), m2.getParent());
diff --git a/test/net/sf/briar/TestDatabaseModule.java b/test/net/sf/briar/TestDatabaseModule.java
index 5d2b5b128..98c350ec9 100644
--- a/test/net/sf/briar/TestDatabaseModule.java
+++ b/test/net/sf/briar/TestDatabaseModule.java
@@ -14,6 +14,10 @@ public class TestDatabaseModule extends AbstractModule {
private final File dir;
private final Password password;
+ public TestDatabaseModule() {
+ this(new File("."));
+ }
+
public TestDatabaseModule(File dir) {
this.dir = dir;
this.password = new Password() {
diff --git a/test/net/sf/briar/transport/ConnectionWriterTest.java b/test/net/sf/briar/transport/ConnectionWriterTest.java
index ba11c37be..2db8571d0 100644
--- a/test/net/sf/briar/transport/ConnectionWriterTest.java
+++ b/test/net/sf/briar/transport/ConnectionWriterTest.java
@@ -4,7 +4,6 @@ import static net.sf.briar.api.protocol.ProtocolConstants.MAX_PACKET_LENGTH;
import static net.sf.briar.api.transport.TransportConstants.MIN_CONNECTION_LENGTH;
import java.io.ByteArrayOutputStream;
-import java.io.File;
import junit.framework.TestCase;
import net.sf.briar.TestDatabaseModule;
@@ -31,7 +30,7 @@ public class ConnectionWriterTest extends TestCase {
super();
Injector i = Guice.createInjector(new CryptoModule(),
new DatabaseModule(), new ProtocolModule(), new SerialModule(),
- new TestDatabaseModule(new File(".")), new TransportModule());
+ new TestDatabaseModule(), new TransportModule());
connectionWriterFactory = i.getInstance(ConnectionWriterFactory.class);
}