summaryrefslogtreecommitdiffstats
path: root/simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java
diff options
context:
space:
mode:
authormikaelpeltier <mikaelpeltier@google.com>2015-06-24 14:31:11 +0200
committerMikael Peltier <mikaelpeltier@google.com>2015-06-24 14:59:36 +0000
commit04563874ddaac702d6c715eaa89c29b253f4c54e (patch)
treec305fa98670c3e80be494cc054a8e31b51bfe7f2 /simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java
parentf1828481ebcfee3bddc323fca178a4502a60ceef (diff)
downloadtoolchain_jack-04563874ddaac702d6c715eaa89c29b253f4c54e.zip
toolchain_jack-04563874ddaac702d6c715eaa89c29b253f4c54e.tar.gz
toolchain_jack-04563874ddaac702d6c715eaa89c29b253f4c54e.tar.bz2
Add simpleframework source files
Change-Id: I18d01df16de2868ca5458f79a88e6070b75db2c3 (cherry picked from commit 3e9f84cf7b22f6970eb8041ca38d12d75c6bb270)
Diffstat (limited to 'simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java')
-rw-r--r--simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java86
1 files changed, 86 insertions, 0 deletions
diff --git a/simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java b/simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java
new file mode 100644
index 0000000..a893f04
--- /dev/null
+++ b/simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java
@@ -0,0 +1,86 @@
+package org.simpleframework.transport;
+
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.nio.ByteBuffer;
+import java.nio.channels.SocketChannel;
+
+import junit.framework.TestCase;
+
+import org.simpleframework.transport.trace.MockTrace;
+import org.simpleframework.transport.trace.Trace;
+
+public class SocketBufferTest extends TestCase {
+
+
+ public void testBulkWrite() throws Exception {
+ ServerBuffer reader = new ServerBuffer();
+ SocketAddress address = new InetSocketAddress("localhost", reader.getPort());
+ SocketChannel channel = SocketChannel.open();
+ channel.configureBlocking(false); // underlying socket must be non-blocking
+ channel.connect(address);
+
+ while(!channel.finishConnect()) { // wait to finish connection
+ Thread.sleep(10);
+ };
+ Trace trace = new MockTrace();
+ SocketWrapper wrapper = new SocketWrapper(channel, trace);
+ SocketBuffer builder = new SocketBuffer(wrapper, 100, 4096);
+
+ for(int i = 0; i < 10000; i++){
+ ByteBuffer buf = ByteBuffer.wrap(("message-"+i+"\n").getBytes());
+
+ if(i > 18) {
+ System.err.println("FAIL......."+i);
+ }
+ if(!builder.write(buf)){
+ while(!builder.flush()) {
+ System.err.println("FLUSHING!!!");
+ Thread.sleep(1);
+ }
+ }
+ }
+ while(!builder.flush()) {
+ System.err.println("FLUSHING!!!");
+ }
+ builder.close();
+ reader.awaitClose();
+
+ String data = reader.getBuffer().toString();
+ String[] list = data.split("\\n");
+
+ for(int i = 0; i < 10000; i++){
+ String msg = list[i];
+ if(!msg.equals("message-"+i)) {
+ System.err.println(list[i]);
+ }
+ assertEquals("At index " + i + " value="+list[i] +" expect message-"+i, list[i], "message-"+i);
+ }
+ }
+
+ public void testSimpleWrite() throws Exception {
+ ServerBuffer reader = new ServerBuffer();
+ SocketAddress address = new InetSocketAddress("localhost", reader.getPort());
+ SocketChannel channel = SocketChannel.open();
+ channel.configureBlocking(false); // underlying socket must be non-blocking
+ channel.connect(address);
+
+ while(!channel.finishConnect()) { // wait to finish connection
+ Thread.sleep(10);
+ };
+ Trace trace = new MockTrace();
+ SocketWrapper wrapper = new SocketWrapper(channel, trace);
+ SocketBuffer builder = new SocketBuffer(wrapper, 100, 4096);
+
+ builder.write(ByteBuffer.wrap("hello there ".getBytes()));
+ builder.write(ByteBuffer.wrap("this ".getBytes()));
+ builder.write(ByteBuffer.wrap("is ".getBytes()));
+ builder.write(ByteBuffer.wrap("a ".getBytes()));
+ builder.write(ByteBuffer.wrap("test".getBytes()));
+ builder.flush();
+ builder.close();
+ reader.awaitClose();
+
+ assertEquals(reader.getBuffer().toString(), "hello there this is a test");
+ }
+}