diff --git a/core/java/src/net/i2p/data/i2cp/I2CPMessage.java b/core/java/src/net/i2p/data/i2cp/I2CPMessage.java index 3cc7da5039..9fedbc78a3 100644 --- a/core/java/src/net/i2p/data/i2cp/I2CPMessage.java +++ b/core/java/src/net/i2p/data/i2cp/I2CPMessage.java @@ -13,14 +13,14 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import net.i2p.data.DataStructure; - /** * Defines the base functionality of API messages * + * As of 0.9.48, does NOT extend DataStructure. + * * @author jrandom */ -public interface I2CPMessage extends DataStructure { +public interface I2CPMessage { /** * Read the contents from the input stream into the current class's format. * The stream should be the message body as defined by the client access layer diff --git a/core/java/src/net/i2p/data/i2cp/I2CPMessageImpl.java b/core/java/src/net/i2p/data/i2cp/I2CPMessageImpl.java index 9a46415135..f11bbfdb34 100644 --- a/core/java/src/net/i2p/data/i2cp/I2CPMessageImpl.java +++ b/core/java/src/net/i2p/data/i2cp/I2CPMessageImpl.java @@ -16,14 +16,15 @@ import java.io.OutputStream; import net.i2p.data.DataFormatException; import net.i2p.data.DataHelper; -import net.i2p.data.DataStructureImpl; /** * Defines the base message implementation. * + * As of 0.9.48, does NOT extend DataStructureImpl. + * * @author jrandom */ -public abstract class I2CPMessageImpl extends DataStructureImpl implements I2CPMessage { +public abstract class I2CPMessageImpl implements I2CPMessage { public I2CPMessageImpl() { // nop } diff --git a/core/java/src/net/i2p/data/i2cp/MessageId.java b/core/java/src/net/i2p/data/i2cp/MessageId.java index 365dc6dbb7..086bc01d39 100644 --- a/core/java/src/net/i2p/data/i2cp/MessageId.java +++ b/core/java/src/net/i2p/data/i2cp/MessageId.java @@ -15,15 +15,16 @@ import java.io.OutputStream; import net.i2p.data.DataFormatException; import net.i2p.data.DataHelper; -import net.i2p.data.DataStructureImpl; /** * Defines the message ID of a message delivered between a router and a client * in a particular session. These IDs are not globally unique. * + * As of 0.9.48, does NOT extend DataStructureImpl. + * * @author jrandom */ -public class MessageId extends DataStructureImpl { +public class MessageId { private long _messageId; public MessageId() { diff --git a/core/java/src/net/i2p/data/i2cp/SessionId.java b/core/java/src/net/i2p/data/i2cp/SessionId.java index 8bf373625a..740b0b6e90 100644 --- a/core/java/src/net/i2p/data/i2cp/SessionId.java +++ b/core/java/src/net/i2p/data/i2cp/SessionId.java @@ -14,15 +14,16 @@ import java.io.OutputStream; import net.i2p.data.DataFormatException; import net.i2p.data.DataHelper; -import net.i2p.data.DataStructureImpl; /** * Defines the token passed between the router and client to associate messages * with a particular session. These IDs are not globally unique. * + * As of 0.9.48, does NOT extend DataStructureImpl. + * * @author jrandom */ -public class SessionId extends DataStructureImpl { +public class SessionId { private int _sessionId; public SessionId() { diff --git a/core/java/test/junit/net/i2p/data/TunnelIdTest.java b/core/java/test/junit/net/i2p/data/TunnelIdTest.java index ffa9f303d6..9c087d9572 100644 --- a/core/java/test/junit/net/i2p/data/TunnelIdTest.java +++ b/core/java/test/junit/net/i2p/data/TunnelIdTest.java @@ -26,7 +26,7 @@ public class TunnelIdTest extends StructureTest { * so we can test it as a structure * @since 0.9.48 TunnelId no longer extends DataStructureImpl */ - private class TunnelIdStructure extends TunnelId implements DataStructure { + private static class TunnelIdStructure extends TunnelId implements DataStructure { public Hash calculateHash() { return null; } public void fromByteArray(byte[] in) {} public byte[] toByteArray() { return null; } diff --git a/core/java/test/junit/net/i2p/data/i2cp/BandwidthLimitsMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/BandwidthLimitsMessageTest.java index b59870e5b8..bf1bd5f40a 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/BandwidthLimitsMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/BandwidthLimitsMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,10 +15,10 @@ import net.i2p.data.DataFormatException; * * @author str4d */ -public class BandwidthLimitsMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class BandwidthLimitsMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { BandwidthLimitsMessage msg = new BandwidthLimitsMessage(10240, 1024); return msg; } - public DataStructure createStructureToRead() { return new BandwidthLimitsMessage(); } + public I2CPMessageImpl createStructureToRead() { return new BandwidthLimitsMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/CreateLeaseSetMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/CreateLeaseSetMessageTest.java index 1bd017b0c5..0e1d0c052d 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/CreateLeaseSetMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/CreateLeaseSetMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; import net.i2p.data.PrivateKey; import net.i2p.data.PrivateKeyTest; @@ -23,8 +21,8 @@ import net.i2p.data.LeaseSetTest; * * @author jrandom */ -public class CreateLeaseSetMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class CreateLeaseSetMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { CreateLeaseSetMessage msg = new CreateLeaseSetMessage(); msg.setPrivateKey((PrivateKey)(new PrivateKeyTest()).createDataStructure()); msg.setSigningPrivateKey((SigningPrivateKey)(new SigningPrivateKeyTest()).createDataStructure()); @@ -32,5 +30,5 @@ public class CreateLeaseSetMessageTest extends StructureTest { msg.setSessionId((SessionId)(new SessionIdTest()).createDataStructure()); return msg; } - public DataStructure createStructureToRead() { return new CreateLeaseSetMessage(); } + public I2CPMessageImpl createStructureToRead() { return new CreateLeaseSetMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/CreateSessionMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/CreateSessionMessageTest.java index 9e0db391a5..c5982d4890 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/CreateSessionMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/CreateSessionMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,11 +15,11 @@ import net.i2p.data.DataFormatException; * * @author jrandom */ -public class CreateSessionMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class CreateSessionMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { CreateSessionMessage msg = new CreateSessionMessage(); msg.setSessionConfig((SessionConfig)(new SessionConfigTest()).createDataStructure()); return msg; } - public DataStructure createStructureToRead() { return new CreateSessionMessage(); } + public I2CPMessageImpl createStructureToRead() { return new CreateSessionMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/DestLookupMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/DestLookupMessageTest.java index 2dc213d4a5..b978ec3930 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/DestLookupMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/DestLookupMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; import net.i2p.data.Hash; import net.i2p.util.RandomSource; @@ -19,13 +17,13 @@ import net.i2p.util.RandomSource; * * @author str4d */ -public class DestLookupMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class DestLookupMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { byte h[] = new byte[Hash.HASH_LENGTH]; RandomSource.getInstance().nextBytes(h); Hash hash = new Hash(h); DestLookupMessage msg = new DestLookupMessage(hash); return msg; } - public DataStructure createStructureToRead() { return new DestLookupMessage(); } + public I2CPMessageImpl createStructureToRead() { return new DestLookupMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/DestReplyMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/DestReplyMessageTest.java index 8e5af028b6..94a36d85c1 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/DestReplyMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/DestReplyMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,10 +15,10 @@ import net.i2p.data.DataFormatException; * * @author str4d */ -public class DestReplyMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class DestReplyMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { DestReplyMessage msg = new DestReplyMessage(); return msg; } - public DataStructure createStructureToRead() { return new DestReplyMessage(); } + public I2CPMessageImpl createStructureToRead() { return new DestReplyMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/DestroySessionMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/DestroySessionMessageTest.java index 59c0921906..66e8168c89 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/DestroySessionMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/DestroySessionMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,11 +15,11 @@ import net.i2p.data.DataFormatException; * * @author jrandom */ -public class DestroySessionMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class DestroySessionMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { DestroySessionMessage msg = new DestroySessionMessage(); msg.setSessionId((SessionId)(new SessionIdTest()).createDataStructure()); return msg; } - public DataStructure createStructureToRead() { return new DestroySessionMessage(); } + public I2CPMessageImpl createStructureToRead() { return new DestroySessionMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/DisconnectMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/DisconnectMessageTest.java index a02b1dbc9a..4c1214a4d7 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/DisconnectMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/DisconnectMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,11 +15,11 @@ import net.i2p.data.DataFormatException; * * @author jrandom */ -public class DisconnectMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class DisconnectMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { DisconnectMessage msg = new DisconnectMessage(); msg.setReason("Because I say so"); return msg; } - public DataStructure createStructureToRead() { return new DisconnectMessage(); } + public I2CPMessageImpl createStructureToRead() { return new DisconnectMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/GetBandwidthLimitsMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/GetBandwidthLimitsMessageTest.java index c4c937613a..0836e23bbb 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/GetBandwidthLimitsMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/GetBandwidthLimitsMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,10 +15,10 @@ import net.i2p.data.DataFormatException; * * @author str4d */ -public class GetBandwidthLimitsMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class GetBandwidthLimitsMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { GetBandwidthLimitsMessage msg = new GetBandwidthLimitsMessage(); return msg; } - public DataStructure createStructureToRead() { return new GetBandwidthLimitsMessage(); } + public I2CPMessageImpl createStructureToRead() { return new GetBandwidthLimitsMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/GetDateMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/GetDateMessageTest.java index 7333803543..c0cb1d00a0 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/GetDateMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/GetDateMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,10 +15,10 @@ import net.i2p.data.DataFormatException; * * @author str4d */ -public class GetDateMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class GetDateMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { GetDateMessage msg = new GetDateMessage("0.8.13-0"); return msg; } - public DataStructure createStructureToRead() { return new GetDateMessage(); } + public I2CPMessageImpl createStructureToRead() { return new GetDateMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/I2CPTstBase.java b/core/java/test/junit/net/i2p/data/i2cp/I2CPTstBase.java new file mode 100644 index 0000000000..aabc59de2d --- /dev/null +++ b/core/java/test/junit/net/i2p/data/i2cp/I2CPTstBase.java @@ -0,0 +1,65 @@ +package net.i2p.data.i2cp; +/* + * free (adj.): unencumbered; not under the control of others + * Written by jrandom in 2003 and released into the public domain + * with no warranty of any kind, either expressed or implied. + * It probably won't make your computer catch on fire, or eat + * your children, but it might. Use at your own risk. + * + */ + +import static org.junit.Assert.*; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; + +import org.junit.Test; + +import net.i2p.data.DataFormatException; +import net.i2p.data.DataHelper; + +/** + * Utility class for wrapping I2CP message tests + * + * @since 0.9.48 + */ + +public abstract class I2CPTstBase { + + /** create a populated structure for writing */ + public abstract I2CPMessageImpl createDataStructure() throws DataFormatException; + + /** create an unpopulated structure for reading */ + public abstract I2CPMessageImpl createStructureToRead(); + + @Test + public void testStructure() throws Exception{ + byte[] temp = null; + + I2CPMessageImpl orig; + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + orig = createDataStructure(); + orig.writeBytes(baos); + + + temp = baos.toByteArray(); + + I2CPMessageImpl ds; + ByteArrayInputStream bais = new ByteArrayInputStream(temp); + + ds = createStructureToRead(); + ds.readBytes(bais); + + + // I2CP message classes don't implement equals() + if (!getClass().getName().startsWith("net.i2p.data.i2cp.")) + assertEquals(orig, ds); + + // Not all classes implement equals, so write out again + ByteArrayOutputStream baos2 = new ByteArrayOutputStream(); + ds.writeBytes(baos2); + byte[] temp2 = baos2.toByteArray(); + assert(DataHelper.eq(temp, temp2)); + } +} diff --git a/core/java/test/junit/net/i2p/data/i2cp/MessageIdTest.java b/core/java/test/junit/net/i2p/data/i2cp/MessageIdTest.java index 2c8b4735c8..38fb30fb16 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/MessageIdTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/MessageIdTest.java @@ -11,6 +11,7 @@ package net.i2p.data.i2cp; import net.i2p.data.StructureTest; import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; +import net.i2p.data.Hash; /** * Test harness for loading / storing Hash objects @@ -19,9 +20,21 @@ import net.i2p.data.DataFormatException; */ public class MessageIdTest extends StructureTest { public DataStructure createDataStructure() throws DataFormatException { - MessageId id = new MessageId(); + MessageIdStructure id = new MessageIdStructure(); id.setMessageId(101); return id; } - public DataStructure createStructureToRead() { return new MessageId(); } + public DataStructure createStructureToRead() { return new MessageIdStructure(); } + + /** + * so we can test it as a structure + * @since 0.9.48 no longer extends DataStructureImpl + */ + private static class MessageIdStructure extends MessageId implements DataStructure { + public Hash calculateHash() { return null; } + public void fromByteArray(byte[] in) {} + public byte[] toByteArray() { return null; } + public void fromBase64(String in) {} + public String toBase64() { return null; } + } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/MessagePayloadMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/MessagePayloadMessageTest.java index 11a9f2892b..1ef4293368 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/MessagePayloadMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/MessagePayloadMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; import net.i2p.data.Payload; import net.i2p.data.PayloadTest; @@ -20,14 +18,14 @@ import net.i2p.data.PayloadTest; * @author jrandom */ - public class MessagePayloadMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { + public class MessagePayloadMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { MessagePayloadMessage msg = new MessagePayloadMessage(); msg.setMessageId(123); msg.setPayload((Payload)(new PayloadTest()).createDataStructure()); msg.setSessionId(321); return msg; } - public DataStructure createStructureToRead() { return new MessagePayloadMessage(); } + public I2CPMessageImpl createStructureToRead() { return new MessagePayloadMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/MessageStatusMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/MessageStatusMessageTest.java index eb0cfe2127..f4760c2e12 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/MessageStatusMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/MessageStatusMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,8 +15,8 @@ import net.i2p.data.DataFormatException; * * @author jrandom */ -public class MessageStatusMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class MessageStatusMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { MessageStatusMessage msg = new MessageStatusMessage(); msg.setSessionId(42); msg.setMessageId(41); @@ -27,5 +25,5 @@ public class MessageStatusMessageTest extends StructureTest { msg.setNonce(1); return msg; } - public DataStructure createStructureToRead() { return new MessageStatusMessage(); } + public I2CPMessageImpl createStructureToRead() { return new MessageStatusMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/ReceiveMessageBeginMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/ReceiveMessageBeginMessageTest.java index 16f201696b..7b1a548c21 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/ReceiveMessageBeginMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/ReceiveMessageBeginMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,12 +15,12 @@ import net.i2p.data.DataFormatException; * * @author jrandom */ -public class ReceiveMessageBeginMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class ReceiveMessageBeginMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { ReceiveMessageBeginMessage msg = new ReceiveMessageBeginMessage(); msg.setSessionId(321); msg.setMessageId(123); return msg; } - public DataStructure createStructureToRead() { return new ReceiveMessageBeginMessage(); } + public I2CPMessageImpl createStructureToRead() { return new ReceiveMessageBeginMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/ReceiveMessageEndMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/ReceiveMessageEndMessageTest.java index cfe7384409..855c801cf0 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/ReceiveMessageEndMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/ReceiveMessageEndMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,12 +15,12 @@ import net.i2p.data.DataFormatException; * * @author jrandom */ -public class ReceiveMessageEndMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class ReceiveMessageEndMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { ReceiveMessageEndMessage msg = new ReceiveMessageEndMessage(); msg.setSessionId(321); msg.setMessageId(123); return msg; } - public DataStructure createStructureToRead() { return new ReceiveMessageEndMessage(); } + public I2CPMessageImpl createStructureToRead() { return new ReceiveMessageEndMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/ReconfigureSessionMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/ReconfigureSessionMessageTest.java index 24b2a96182..8b85a675e2 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/ReconfigureSessionMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/ReconfigureSessionMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,12 +15,12 @@ import net.i2p.data.DataFormatException; * * @author str4d */ -public class ReconfigureSessionMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class ReconfigureSessionMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { ReconfigureSessionMessage msg = new ReconfigureSessionMessage(); msg.setSessionId((SessionId)(new SessionIdTest()).createDataStructure()); msg.setSessionConfig((SessionConfig)(new SessionConfigTest()).createDataStructure()); return msg; } - public DataStructure createStructureToRead() { return new ReconfigureSessionMessage(); } + public I2CPMessageImpl createStructureToRead() { return new ReconfigureSessionMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/ReportAbuseMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/ReportAbuseMessageTest.java index e529d35f5f..11413cbedc 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/ReportAbuseMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/ReportAbuseMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,8 +15,8 @@ import net.i2p.data.DataFormatException; * * @author jrandom */ -public class ReportAbuseMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class ReportAbuseMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { ReportAbuseMessage msg = new ReportAbuseMessage(); msg.setMessageId((MessageId)(new MessageIdTest()).createDataStructure()); msg.setReason((AbuseReason)(new AbuseReasonTest()).createDataStructure()); @@ -26,5 +24,5 @@ public class ReportAbuseMessageTest extends StructureTest { msg.setSeverity((AbuseSeverity)(new AbuseSeverityTest()).createDataStructure()); return msg; } - public DataStructure createStructureToRead() { return new ReportAbuseMessage(); } + public I2CPMessageImpl createStructureToRead() { return new ReportAbuseMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/RequestLeaseSetMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/RequestLeaseSetMessageTest.java index 0296c7219a..cd1d5258e2 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/RequestLeaseSetMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/RequestLeaseSetMessageTest.java @@ -10,8 +10,6 @@ package net.i2p.data.i2cp; import java.util.Date; -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; import net.i2p.data.Hash; import net.i2p.data.TunnelId; @@ -22,8 +20,8 @@ import net.i2p.data.TunnelIdTest; * * @author jrandom */ -public class RequestLeaseSetMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class RequestLeaseSetMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { RequestLeaseSetMessage msg = new RequestLeaseSetMessage(); msg.setSessionId((SessionId)(new SessionIdTest()).createDataStructure()); msg.setEndDate(new Date(1000*60*60*12)); @@ -31,5 +29,5 @@ public class RequestLeaseSetMessageTest extends StructureTest { msg.addEndpoint(new Hash(h), (TunnelId)(new TunnelIdTest()).createDataStructure()); return msg; } - public DataStructure createStructureToRead() { return new RequestLeaseSetMessage(); } + public I2CPMessageImpl createStructureToRead() { return new RequestLeaseSetMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/SendMessageExpiresMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/SendMessageExpiresMessageTest.java index fa487b9c85..ceae477905 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/SendMessageExpiresMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/SendMessageExpiresMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; import net.i2p.data.Destination; import net.i2p.data.DestinationTest; @@ -24,9 +22,9 @@ import net.i2p.data.DateAndFlagsTest; * @author str4d */ - public class SendMessageExpiresMessageTest extends StructureTest { + public class SendMessageExpiresMessageTest extends I2CPTstBase { - public DataStructure createDataStructure() throws DataFormatException { + public I2CPMessageImpl createDataStructure() throws DataFormatException { SendMessageExpiresMessage msg = new SendMessageExpiresMessage(); msg.setDestination((Destination)(new DestinationTest()).createDataStructure()); msg.setPayload((Payload)(new PayloadTest()).createDataStructure()); @@ -37,6 +35,6 @@ import net.i2p.data.DateAndFlagsTest; msg.setFlags(daf.getFlags()); return msg; } - public DataStructure createStructureToRead() { return new SendMessageExpiresMessage(); } + public I2CPMessageImpl createStructureToRead() { return new SendMessageExpiresMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/SendMessageMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/SendMessageMessageTest.java index e5798da43e..d2df66ec57 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/SendMessageMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/SendMessageMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; import net.i2p.data.Destination; import net.i2p.data.DestinationTest; @@ -22,9 +20,9 @@ import net.i2p.data.PayloadTest; * @author jrandom */ - public class SendMessageMessageTest extends StructureTest { + public class SendMessageMessageTest extends I2CPTstBase { - public DataStructure createDataStructure() throws DataFormatException { + public I2CPMessageImpl createDataStructure() throws DataFormatException { SendMessageMessage msg = new SendMessageMessage(); msg.setDestination((Destination)(new DestinationTest()).createDataStructure()); msg.setPayload((Payload)(new PayloadTest()).createDataStructure()); @@ -32,6 +30,6 @@ import net.i2p.data.PayloadTest; msg.setNonce(1); return msg; } - public DataStructure createStructureToRead() { return new SendMessageMessage(); } + public I2CPMessageImpl createStructureToRead() { return new SendMessageMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/SessionIdTest.java b/core/java/test/junit/net/i2p/data/i2cp/SessionIdTest.java index 45f9e1bcb0..bbfd4edfbb 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/SessionIdTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/SessionIdTest.java @@ -11,6 +11,7 @@ package net.i2p.data.i2cp; import net.i2p.data.StructureTest; import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; +import net.i2p.data.Hash; /** * Test harness for loading / storing SessionId objects @@ -19,9 +20,21 @@ import net.i2p.data.DataFormatException; */ public class SessionIdTest extends StructureTest { public DataStructure createDataStructure() throws DataFormatException { - SessionId id = new SessionId(); + SessionIdStructure id = new SessionIdStructure(); id.setSessionId(7); return id; } - public DataStructure createStructureToRead() { return new SessionId(); } + public DataStructure createStructureToRead() { return new SessionIdStructure(); } + + /** + * so we can test it as a structure + * @since 0.9.48 no longer extends DataStructureImpl + */ + private static class SessionIdStructure extends SessionId implements DataStructure { + public Hash calculateHash() { return null; } + public void fromByteArray(byte[] in) {} + public byte[] toByteArray() { return null; } + public void fromBase64(String in) {} + public String toBase64() { return null; } + } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/SessionStatusMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/SessionStatusMessageTest.java index 86db6fcf8c..435a4889ec 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/SessionStatusMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/SessionStatusMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,12 +15,12 @@ import net.i2p.data.DataFormatException; * * @author jrandom */ -public class SessionStatusMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class SessionStatusMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { SessionStatusMessage msg = new SessionStatusMessage(); msg.setSessionId((SessionId)(new SessionIdTest()).createDataStructure()); msg.setStatus(SessionStatusMessage.STATUS_CREATED); return msg; } - public DataStructure createStructureToRead() { return new SessionStatusMessage(); } + public I2CPMessageImpl createStructureToRead() { return new SessionStatusMessage(); } } diff --git a/core/java/test/junit/net/i2p/data/i2cp/SetDateMessageTest.java b/core/java/test/junit/net/i2p/data/i2cp/SetDateMessageTest.java index 5d4317a817..14ff526d92 100644 --- a/core/java/test/junit/net/i2p/data/i2cp/SetDateMessageTest.java +++ b/core/java/test/junit/net/i2p/data/i2cp/SetDateMessageTest.java @@ -8,8 +8,6 @@ package net.i2p.data.i2cp; * */ -import net.i2p.data.StructureTest; -import net.i2p.data.DataStructure; import net.i2p.data.DataFormatException; /** @@ -17,10 +15,10 @@ import net.i2p.data.DataFormatException; * * @author str4d */ -public class SetDateMessageTest extends StructureTest { - public DataStructure createDataStructure() throws DataFormatException { +public class SetDateMessageTest extends I2CPTstBase { + public I2CPMessageImpl createDataStructure() throws DataFormatException { SetDateMessage msg = new SetDateMessage("0.8.13-0"); return msg; } - public DataStructure createStructureToRead() { return new SetDateMessage(); } + public I2CPMessageImpl createStructureToRead() { return new SetDateMessage(); } }