Commit a32a1a76 authored by Daniel Martin's avatar Daniel Martin Committed by Daniel Martin

Add tests for other ByteString subclasses

parent 5ff8dc8e
...@@ -30,8 +30,14 @@ ...@@ -30,8 +30,14 @@
package com.google.protobuf; package com.google.protobuf;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
/** /**
* This class tests {@link BoundedByteString}, which extends {@link LiteralByteString}, * This class tests {@link BoundedByteString}, which extends {@link LiteralByteString},
* by inheriting the tests from {@link LiteralByteStringTest}. The only method which * by inheriting the tests from {@link LiteralByteStringTest}. The only method which
...@@ -65,4 +71,17 @@ public class BoundedByteStringTest extends LiteralByteStringTest { ...@@ -65,4 +71,17 @@ public class BoundedByteStringTest extends LiteralByteStringTest {
assertEquals(classUnderTest + " unicode bytes must match", assertEquals(classUnderTest + " unicode bytes must match",
testString.substring(2, testString.length() - 6), roundTripString); testString.substring(2, testString.length() - 6), roundTripString);
} }
public void testJavaSerialization() throws Exception {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(stringUnderTest);
oos.close();
byte[] pickled = out.toByteArray();
InputStream in = new ByteArrayInputStream(pickled);
ObjectInputStream ois = new ObjectInputStream(in);
Object o = ois.readObject();
assertTrue("Didn't get a ByteString back", o instanceof ByteString);
assertEquals("Should get an equal ByteString back", stringUnderTest, o);
}
} }
...@@ -30,6 +30,11 @@ ...@@ -30,6 +30,11 @@
package com.google.protobuf; package com.google.protobuf;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.util.Arrays; import java.util.Arrays;
import java.util.Iterator; import java.util.Iterator;
...@@ -112,4 +117,17 @@ public class RopeByteStringTest extends LiteralByteStringTest { ...@@ -112,4 +117,17 @@ public class RopeByteStringTest extends LiteralByteStringTest {
assertEquals(classUnderTest + " string must must have same hashCode as the flat string", assertEquals(classUnderTest + " string must must have same hashCode as the flat string",
flatString.hashCode(), unicode.hashCode()); flatString.hashCode(), unicode.hashCode());
} }
public void testJavaSerialization() throws Exception {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(stringUnderTest);
oos.close();
byte[] pickled = out.toByteArray();
InputStream in = new ByteArrayInputStream(pickled);
ObjectInputStream ois = new ObjectInputStream(in);
Object o = ois.readObject();
assertTrue("Didn't get a ByteString back", o instanceof ByteString);
assertEquals("Should get an equal ByteString back", stringUnderTest, o);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment