diff --git a/core/java/test/net/i2p/data/SimpleDataStructureTest.java b/core/java/test/net/i2p/data/SimpleDataStructureTest.java new file mode 100644 index 0000000000000000000000000000000000000000..4cf8233429a2e76b63f27c4dff66bc2fe9604b73 --- /dev/null +++ b/core/java/test/net/i2p/data/SimpleDataStructureTest.java @@ -0,0 +1,96 @@ +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 junit.framework.TestCase; + +/** + * Test harness for the simple data structure + * + * @author welterde + */ +public class SimpleDataStructureTest extends TestCase { + + public void testSetDataImmutable() throws Exception { + // create new test subject + TestStruct struct = new TestStruct(); + + // try to set null object.. should not fail.. + struct.setData(null); + + // set data to something + struct.setData(new byte[3]); + + // now setting it to null should fail + try { + struct.setData(null); + fail("Should not have allowed us to change this.."); + } catch(RuntimeException exc) { + // all good + } + + // setting it to something non-null should fail as well. + try { + struct.setData(new byte[3]); + fail("Should not have allowed us to change this.."); + } catch(RuntimeException exc) { + // all good + } + } + + public void testReadBytesImmutable() throws Exception { + // create new test subject + TestStruct struct = new TestStruct(); + + // load some data using setData + struct.setData(new byte[3]); + + // now try to load via readBytes + try { + struct.readBytes(null); + fail("blah blah blah.."); + } catch(RuntimeException exc) { + // all good + } + } + + public void testToBase64Safe() throws Exception { + // create new test subject + TestStruct struct = new TestStruct(); + + // now try to get the Base64.. should not throw an exception, but should not be an empty string either + assertNull(struct.toBase64()); + } + + public void testCalculateHashSafe() throws Exception { + // create new test subject + TestStruct struct = new TestStruct(); + + // now try to get the hash.. should not throw an exception + assertNull(struct.calculateHash()); + } + + public void testHashCodeSafe() throws Exception { + // create new test subject + TestStruct struct = new TestStruct(); + + // just make sure it doesn't explode in our face + struct.hashCode(); + } + + public class TestStruct extends SimpleDataStructure { + public int length() { + return 3; + } + } + +} \ No newline at end of file