I2CP: Don't have I2CP Messages extend DataStructureImpl, to save space

Ditto MessageId and SessionId.
Fixup unit tests as required
This commit is contained in:
zzz
2020-11-11 13:09:42 +00:00
parent 4a00691385
commit 6887c7edae
28 changed files with 168 additions and 114 deletions

View File

@ -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

View File

@ -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
}

View File

@ -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() {

View File

@ -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() {

View File

@ -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; }

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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));
}
}

View File

@ -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; }
}
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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(); }
}

View File

@ -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; }
}
}

View File

@ -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(); }
}

View File

@ -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(); }
}