From: Bryan Duxbury Date: Fri, 26 Mar 2010 23:30:35 +0000 (+0000) Subject: java: convert Framed Transport test to JUnit, remove old version of test X-Git-Tag: 0.3.0~56 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=dd6dc838d902c3bc840d1c079e4de87760db0d38;p=common%2Fthrift.git 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 22a924fd..9042922a 100644 --- a/lib/java/build.xml +++ b/lib/java/build.xml @@ -209,8 +209,6 @@ classpathref="test.classpath" failonerror="true" /> - 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 b2169de6..00000000 --- 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 00000000..fb27af6b --- /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 00000000..09b465cb --- /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 00000000..c04acf37 --- /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