79 lines
2.4 KiB
Java
79 lines
2.4 KiB
Java
![]() |
package net.i2p.data;
|
||
|
/*
|
||
|
* 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 java.io.ByteArrayInputStream;
|
||
|
import java.io.ByteArrayOutputStream;
|
||
|
import java.io.IOException;
|
||
|
import java.io.InputStream;
|
||
|
|
||
|
import net.i2p.data.DataFormatException;
|
||
|
import net.i2p.data.i2np.DatabaseStoreMessage;
|
||
|
import net.i2p.data.i2np.I2NPMessage;
|
||
|
import net.i2p.data.i2np.I2NPMessageReader;
|
||
|
import net.i2p.util.Log;
|
||
|
|
||
|
/**
|
||
|
* Test harness for loading / storing I2NP DatabaseStore message objects
|
||
|
*
|
||
|
* @author jrandom
|
||
|
*/
|
||
|
class I2NPMessageReaderTest implements I2NPMessageReader.I2NPMessageEventListener {
|
||
|
private final static Log _log = new Log(I2NPMessageReaderTest.class);
|
||
|
|
||
|
public static void main(String args[]) {
|
||
|
I2NPMessageReaderTest test = new I2NPMessageReaderTest();
|
||
|
test.runTest();
|
||
|
try { Thread.sleep(30*1000); } catch (InterruptedException ie) {}
|
||
|
}
|
||
|
|
||
|
public void runTest() {
|
||
|
InputStream data = getData();
|
||
|
test(data);
|
||
|
}
|
||
|
|
||
|
private InputStream getData() {
|
||
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||
|
try {
|
||
|
DatabaseStoreMessage msg = (DatabaseStoreMessage)new DatabaseStoreMessageTest().createDataStructure();
|
||
|
msg.writeBytes(baos);
|
||
|
msg.writeBytes(baos);
|
||
|
msg.writeBytes(baos);
|
||
|
_log.debug("DB Store message in tunnel contains: " + msg);
|
||
|
msg.writeBytes(baos);
|
||
|
} catch (DataFormatException dfe) {
|
||
|
_log.error("Error building data", dfe);
|
||
|
} catch (IOException ioe) {
|
||
|
_log.error("Error writing stream", ioe);
|
||
|
}
|
||
|
return new ByteArrayInputStream(baos.toByteArray());
|
||
|
}
|
||
|
|
||
|
private void test(InputStream in) {
|
||
|
_log.debug("Testing the input stream");
|
||
|
I2NPMessageReader reader = new I2NPMessageReader(in, this);
|
||
|
_log.debug("Created, beginning reading");
|
||
|
reader.startReading();
|
||
|
_log.debug("Reading commenced");
|
||
|
}
|
||
|
|
||
|
public void disconnected(I2NPMessageReader reader) {
|
||
|
_log.debug("Disconnected");
|
||
|
}
|
||
|
|
||
|
public void messageReceived(I2NPMessageReader reader, I2NPMessage message, long msToRead) {
|
||
|
_log.debug("Message received: " + message);
|
||
|
}
|
||
|
|
||
|
public void readError(I2NPMessageReader reader, Exception error) {
|
||
|
_log.debug("Read error: " + error.getMessage(), error);
|
||
|
}
|
||
|
|
||
|
}
|