java: convert Framed Transport test to JUnit, remove old version of test
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@928100 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/java/build.xml b/lib/java/build.xml
index 22a924f..9042922 100644
--- a/lib/java/build.xml
+++ b/lib/java/build.xml
@@ -209,8 +209,6 @@
classpathref="test.classpath" failonerror="true" />
<java classname="org.apache.thrift.test.PartialDeserializeTest"
classpathref="test.classpath" failonerror="true" />
- <java classname="org.apache.thrift.test.transport.TFramedTransportTest"
- classpathref="test.classpath" failonerror="true" />
</target>
<target name="test" description="Run the full test suite" depends="junit-test,deprecated-test"/>
diff --git a/lib/java/test/org/apache/thrift/test/transport/TFramedTransportTest.java b/lib/java/test/org/apache/thrift/test/transport/TFramedTransportTest.java
deleted file mode 100644
index b2169de..0000000
--- a/lib/java/test/org/apache/thrift/test/transport/TFramedTransportTest.java
+++ /dev/null
@@ -1,164 +0,0 @@
-package org.apache.thrift.test.transport;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.Arrays;
-
-import org.apache.thrift.transport.TFramedTransport;
-import org.apache.thrift.transport.TIOStreamTransport;
-import org.apache.thrift.transport.TMemoryBuffer;
-import org.apache.thrift.transport.TTransport;
-import org.apache.thrift.transport.TTransportException;
-
-public class TFramedTransportTest {
- public static class WriteCountingTransport extends TTransport {
- private int writeCount = 0;
- private final TTransport trans;
-
- public WriteCountingTransport(TTransport underlying) {
- trans = underlying;
- }
-
- @Override
- public void close() {}
-
- @Override
- public boolean isOpen() {return true;}
-
- @Override
- public void open() throws TTransportException {}
-
- @Override
- public int read(byte[] buf, int off, int len) throws TTransportException {
- return 0;
- }
-
- @Override
- public void write(byte[] buf, int off, int len) throws TTransportException {
- writeCount ++;
- trans.write(buf, off, len);
- }
- }
-
- public static class ReadCountingTransport extends TTransport {
- public int readCount = 0;
- private TTransport trans;
-
- public ReadCountingTransport(TTransport underlying) {
- trans = underlying;
- }
-
- @Override
- public void close() {}
-
- @Override
- public boolean isOpen() {return true;}
-
- @Override
- public void open() throws TTransportException {}
-
- @Override
- public int read(byte[] buf, int off, int len) throws TTransportException {
- readCount++;
- return trans.read(buf, off, len);
- }
-
- @Override
- public void write(byte[] buf, int off, int len) throws TTransportException {}
- }
-
- public static void main(String[] args) throws TTransportException, IOException {
- testWrite();
- testRead();
- testDirectRead();
- }
-
- private static void testWrite() throws TTransportException, IOException {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- WriteCountingTransport countingTrans = new WriteCountingTransport(new TIOStreamTransport(baos));
- TTransport trans = new TFramedTransport(countingTrans);
-
- trans.write(byteSequence(0,100));
- failUnless(countingTrans.writeCount == 0);
- trans.write(byteSequence(101,200));
- trans.write(byteSequence(201,255));
- failUnless(countingTrans.writeCount == 0);
-
- trans.flush();
- failUnless(countingTrans.writeCount == 2);
-
- DataInputStream din = new DataInputStream(new ByteArrayInputStream(baos.toByteArray()));
- failUnless(din.readInt() == 256);
-
- byte[] buf = new byte[256];
- din.read(buf, 0, 256);
- failUnless(Arrays.equals(byteSequence(0,255), buf));
- }
-
- private static void testRead() throws IOException, TTransportException {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- DataOutputStream dos = new DataOutputStream(baos);
- dos.writeInt(50);
- dos.write(byteSequence(0, 49));
-
- TMemoryBuffer membuf = new TMemoryBuffer(0);
- membuf.write(baos.toByteArray());
-
- ReadCountingTransport countTrans = new ReadCountingTransport(membuf);
- TFramedTransport trans = new TFramedTransport(countTrans);
-
- byte[] readBuf = new byte[10];
- trans.read(readBuf, 0, 10);
- failUnless(Arrays.equals(readBuf, byteSequence(0,9)));
-
- trans.read(readBuf, 0, 10);
- failUnless(Arrays.equals(readBuf, byteSequence(10,19)));
-
- failUnless(countTrans.readCount == 2);
- }
-
- private static void testDirectRead() throws IOException, TTransportException {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- DataOutputStream dos = new DataOutputStream(baos);
- dos.writeInt(50);
- dos.write(byteSequence(0, 49));
-
- TMemoryBuffer membuf = new TMemoryBuffer(0);
- membuf.write(baos.toByteArray());
-
- ReadCountingTransport countTrans = new ReadCountingTransport(membuf);
- TFramedTransport trans = new TFramedTransport(countTrans);
-
- failUnless(trans.getBytesRemainingInBuffer() == 0);
-
- byte[] readBuf = new byte[10];
- trans.read(readBuf, 0, 10);
- failUnless(Arrays.equals(readBuf, byteSequence(0,9)));
-
- failUnless(trans.getBytesRemainingInBuffer() == 40);
- failUnless(trans.getBufferPosition() == 10);
-
- trans.consumeBuffer(5);
- failUnless(trans.getBytesRemainingInBuffer() == 35);
- failUnless(trans.getBufferPosition() == 15);
-
- failUnless(countTrans.readCount == 2);
- }
-
- private static void failUnless(boolean b) {
- if (!b) {
- throw new RuntimeException();
- }
- }
-
- private static byte[] byteSequence(int start, int end) {
- byte[] result = new byte[end-start+1];
- for (int i = 0; i <= (end-start); i++) {
- result[i] = (byte)(start+i);
- }
- return result;
- }
-}
diff --git a/lib/java/test/org/apache/thrift/transport/ReadCountingTransport.java b/lib/java/test/org/apache/thrift/transport/ReadCountingTransport.java
new file mode 100644
index 0000000..fb27af6
--- /dev/null
+++ b/lib/java/test/org/apache/thrift/transport/ReadCountingTransport.java
@@ -0,0 +1,34 @@
+/**
+ *
+ */
+package org.apache.thrift.transport;
+
+import org.apache.thrift.transport.TTransport;
+import org.apache.thrift.transport.TTransportException;
+
+public class ReadCountingTransport extends TTransport {
+ public int readCount = 0;
+ private TTransport trans;
+
+ public ReadCountingTransport(TTransport underlying) {
+ trans = underlying;
+ }
+
+ @Override
+ public void close() {}
+
+ @Override
+ public boolean isOpen() {return true;}
+
+ @Override
+ public void open() throws TTransportException {}
+
+ @Override
+ public int read(byte[] buf, int off, int len) throws TTransportException {
+ readCount++;
+ return trans.read(buf, off, len);
+ }
+
+ @Override
+ public void write(byte[] buf, int off, int len) throws TTransportException {}
+}
\ No newline at end of file
diff --git a/lib/java/test/org/apache/thrift/transport/TestTFramedTransport.java b/lib/java/test/org/apache/thrift/transport/TestTFramedTransport.java
new file mode 100644
index 0000000..09b465c
--- /dev/null
+++ b/lib/java/test/org/apache/thrift/transport/TestTFramedTransport.java
@@ -0,0 +1,93 @@
+package org.apache.thrift.transport;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.util.Arrays;
+
+import junit.framework.TestCase;
+
+public class TestTFramedTransport extends TestCase {
+
+ private static byte[] byteSequence(int start, int end) {
+ byte[] result = new byte[end-start+1];
+ for (int i = 0; i <= (end-start); i++) {
+ result[i] = (byte)(start+i);
+ }
+ return result;
+ }
+
+ public void testRead() throws IOException, TTransportException {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DataOutputStream dos = new DataOutputStream(baos);
+ dos.writeInt(50);
+ dos.write(byteSequence(0, 49));
+
+ TMemoryBuffer membuf = new TMemoryBuffer(0);
+ membuf.write(baos.toByteArray());
+
+ ReadCountingTransport countTrans = new ReadCountingTransport(membuf);
+ TFramedTransport trans = new TFramedTransport(countTrans);
+
+ byte[] readBuf = new byte[10];
+ trans.read(readBuf, 0, 10);
+ assertTrue(Arrays.equals(readBuf, byteSequence(0,9)));
+
+ trans.read(readBuf, 0, 10);
+ assertTrue(Arrays.equals(readBuf, byteSequence(10,19)));
+
+ assertEquals(2, countTrans.readCount);
+ }
+
+ public void testWrite() throws TTransportException, IOException {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ WriteCountingTransport countingTrans = new WriteCountingTransport(new TIOStreamTransport(baos));
+ TTransport trans = new TFramedTransport(countingTrans);
+
+ trans.write(byteSequence(0,100));
+ assertEquals(0, countingTrans.writeCount);
+ trans.write(byteSequence(101,200));
+ trans.write(byteSequence(201,255));
+ assertEquals(0, countingTrans.writeCount);
+
+ trans.flush();
+ assertEquals(2, countingTrans.writeCount);
+
+ DataInputStream din = new DataInputStream(new ByteArrayInputStream(baos.toByteArray()));
+ assertEquals(256, din.readInt());
+
+ byte[] buf = new byte[256];
+ din.read(buf, 0, 256);
+ assertTrue(Arrays.equals(byteSequence(0,255), buf));
+ }
+
+ public void testDirectRead() throws IOException, TTransportException {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DataOutputStream dos = new DataOutputStream(baos);
+ dos.writeInt(50);
+ dos.write(byteSequence(0, 49));
+
+ TMemoryBuffer membuf = new TMemoryBuffer(0);
+ membuf.write(baos.toByteArray());
+
+ ReadCountingTransport countTrans = new ReadCountingTransport(membuf);
+ TFramedTransport trans = new TFramedTransport(countTrans);
+
+ assertEquals(0, trans.getBytesRemainingInBuffer());
+
+ byte[] readBuf = new byte[10];
+ trans.read(readBuf, 0, 10);
+ assertTrue(Arrays.equals(readBuf, byteSequence(0,9)));
+
+ assertEquals(40, trans.getBytesRemainingInBuffer());
+ assertEquals(10, trans.getBufferPosition());
+
+ trans.consumeBuffer(5);
+ assertEquals(35, trans.getBytesRemainingInBuffer());
+ assertEquals(15, trans.getBufferPosition());
+
+ assertEquals(2, countTrans.readCount);
+ }
+}
diff --git a/lib/java/test/org/apache/thrift/transport/WriteCountingTransport.java b/lib/java/test/org/apache/thrift/transport/WriteCountingTransport.java
new file mode 100644
index 0000000..c04acf3
--- /dev/null
+++ b/lib/java/test/org/apache/thrift/transport/WriteCountingTransport.java
@@ -0,0 +1,34 @@
+
+package org.apache.thrift.transport;
+
+import org.apache.thrift.transport.TTransport;
+import org.apache.thrift.transport.TTransportException;
+
+public class WriteCountingTransport extends TTransport {
+ public int writeCount = 0;
+ private final TTransport trans;
+
+ public WriteCountingTransport(TTransport underlying) {
+ trans = underlying;
+ }
+
+ @Override
+ public void close() {}
+
+ @Override
+ public boolean isOpen() {return true;}
+
+ @Override
+ public void open() throws TTransportException {}
+
+ @Override
+ public int read(byte[] buf, int off, int len) throws TTransportException {
+ return 0;
+ }
+
+ @Override
+ public void write(byte[] buf, int off, int len) throws TTransportException {
+ writeCount ++;
+ trans.write(buf, off, len);
+ }
+}
\ No newline at end of file