Implemented PacketReader, renamed Packet{Reader,Writer}Factory in the

protocol component to Protocol{Reader,Writer}Factory.
This commit is contained in:
akwizgran
2011-08-12 21:55:22 +02:00
parent 4dcf9a70a1
commit 0504a2d6fd
17 changed files with 281 additions and 65 deletions

View File

@@ -37,6 +37,7 @@
<test name='net.sf.briar.transport.PacketDecrypterImplTest'/>
<test name='net.sf.briar.transport.PacketEncrypterImplTest'/>
<test name='net.sf.briar.transport.PacketWriterImplTest'/>
<test name='net.sf.briar.transport.TagDecoderTest'/>
<test name='net.sf.briar.transport.TagEncoderTest'/>
<test name='net.sf.briar.util.FileUtilsTest'/>
<test name='net.sf.briar.util.StringUtilsTest'/>

View File

@@ -34,7 +34,7 @@ import net.sf.briar.api.protocol.UniqueId;
import net.sf.briar.api.protocol.writers.AckWriter;
import net.sf.briar.api.protocol.writers.BatchWriter;
import net.sf.briar.api.protocol.writers.OfferWriter;
import net.sf.briar.api.protocol.writers.PacketWriterFactory;
import net.sf.briar.api.protocol.writers.ProtocolWriterFactory;
import net.sf.briar.api.protocol.writers.RequestWriter;
import net.sf.briar.api.protocol.writers.SubscriptionWriter;
import net.sf.briar.api.protocol.writers.TransportWriter;
@@ -60,7 +60,7 @@ public class FileReadWriteTest extends TestCase {
private final long start = System.currentTimeMillis();
private final ReaderFactory readerFactory;
private final PacketWriterFactory packetWriterFactory;
private final ProtocolWriterFactory protocolWriterFactory;
private final CryptoComponent crypto;
private final AckReader ackReader;
private final BatchReader batchReader;
@@ -81,7 +81,7 @@ public class FileReadWriteTest extends TestCase {
new ProtocolModule(), new SerialModule(),
new WritersModule());
readerFactory = i.getInstance(ReaderFactory.class);
packetWriterFactory = i.getInstance(PacketWriterFactory.class);
protocolWriterFactory = i.getInstance(ProtocolWriterFactory.class);
crypto = i.getInstance(CryptoComponent.class);
assertEquals(crypto.getMessageDigest().getDigestLength(),
UniqueId.LENGTH);
@@ -126,39 +126,39 @@ public class FileReadWriteTest extends TestCase {
public void testWriteFile() throws Exception {
FileOutputStream out = new FileOutputStream(file);
AckWriter a = packetWriterFactory.createAckWriter(out);
AckWriter a = protocolWriterFactory.createAckWriter(out);
assertTrue(a.writeBatchId(ack));
a.finish();
BatchWriter b = packetWriterFactory.createBatchWriter(out);
BatchWriter b = protocolWriterFactory.createBatchWriter(out);
assertTrue(b.writeMessage(message.getBytes()));
assertTrue(b.writeMessage(message1.getBytes()));
assertTrue(b.writeMessage(message2.getBytes()));
assertTrue(b.writeMessage(message3.getBytes()));
b.finish();
OfferWriter o = packetWriterFactory.createOfferWriter(out);
OfferWriter o = protocolWriterFactory.createOfferWriter(out);
assertTrue(o.writeMessageId(message.getId()));
assertTrue(o.writeMessageId(message1.getId()));
assertTrue(o.writeMessageId(message2.getId()));
assertTrue(o.writeMessageId(message3.getId()));
o.finish();
RequestWriter r = packetWriterFactory.createRequestWriter(out);
RequestWriter r = protocolWriterFactory.createRequestWriter(out);
BitSet requested = new BitSet(4);
requested.set(1);
requested.set(3);
r.writeBitmap(requested, 4);
SubscriptionWriter s =
packetWriterFactory.createSubscriptionWriter(out);
protocolWriterFactory.createSubscriptionWriter(out);
// Use a LinkedHashMap for predictable iteration order
Map<Group, Long> subs = new LinkedHashMap<Group, Long>();
subs.put(group, 0L);
subs.put(group1, 0L);
s.writeSubscriptions(subs);
TransportWriter t = packetWriterFactory.createTransportWriter(out);
TransportWriter t = protocolWriterFactory.createTransportWriter(out);
t.writeTransports(transports);
out.close();

View File

@@ -0,0 +1,30 @@
package net.sf.briar.transport;
import junit.framework.TestCase;
import net.sf.briar.util.StringUtils;
import org.junit.Test;
public class TagDecoderTest extends TestCase {
@Test
public void testReadUint16() {
byte[] b = StringUtils.fromHexString("000000");
assertEquals(0, TagDecoder.readUint16(b, 1));
b = StringUtils.fromHexString("000001");
assertEquals(1, TagDecoder.readUint16(b, 1));
b = StringUtils.fromHexString("00FFFF");
assertEquals(65535, TagDecoder.readUint16(b, 1));
}
@Test
public void testReadUint32() {
byte[] b = StringUtils.fromHexString("0000000000");
assertEquals(0L, TagDecoder.readUint32(b, 1));
b = StringUtils.fromHexString("0000000001");
assertEquals(1L, TagDecoder.readUint32(b, 1));
b = StringUtils.fromHexString("00FFFFFFFF");
assertEquals(4294967295L, TagDecoder.readUint32(b, 1));
}
}

View File

@@ -9,7 +9,7 @@ import junit.framework.TestCase;
public class TagEncoderTest extends TestCase {
@Test
public void testWriteUint16() throws Exception {
public void testWriteUint16() {
byte[] b = new byte[3];
TagEncoder.writeUint16(0, b, 1);
assertEquals("000000", StringUtils.toHexString(b));
@@ -20,7 +20,7 @@ public class TagEncoderTest extends TestCase {
}
@Test
public void testWriteUint32() throws Exception {
public void testWriteUint32() {
byte[] b = new byte[5];
TagEncoder.writeUint32(0L, b, 1);
assertEquals("0000000000", StringUtils.toHexString(b));