From 9bc5324a4bf466c34c7b6d682ab063ea6aa97671 Mon Sep 17 00:00:00 2001 From: hepin1989 Date: Thu, 20 Apr 2017 02:48:41 +0800 Subject: [PATCH] + update chapter 9 --- chapter9/pom.xml | 4 ++-- .../main/java/nia/chapter9/AbsIntegerEncoder.java | 5 +++-- .../java/nia/chapter9/FixedLengthFrameDecoder.java | 4 ++-- .../main/java/nia/chapter9/FrameChunkDecoder.java | 9 ++++----- .../src/main/java/nia/chapter9/package-info.java | 10 ++++++++++ .../nia/test/chapter9/AbsIntegerEncoderTest.java | 4 +++- .../test/chapter9/FixedLengthFrameDecoderTest.java | 12 ++++++++++-- .../nia/test/chapter9/FrameChunkDecoderTest.java | 6 +++++- .../test/java/nia/test/chapter9/package-info.java | 10 ++++++++++ 9 files changed, 49 insertions(+), 15 deletions(-) create mode 100644 chapter9/src/main/java/nia/chapter9/package-info.java create mode 100644 chapter9/src/test/java/nia/test/chapter9/package-info.java diff --git a/chapter9/pom.xml b/chapter9/pom.xml index a5e0f091..03f3bf3c 100644 --- a/chapter9/pom.xml +++ b/chapter9/pom.xml @@ -10,6 +10,6 @@ chapter9 - Chapter 9. Unit Testing - + Chapter 9. Unit testing + Unit testing diff --git a/chapter9/src/main/java/nia/chapter9/AbsIntegerEncoder.java b/chapter9/src/main/java/nia/chapter9/AbsIntegerEncoder.java index 5b4c67df..0fdae6cf 100644 --- a/chapter9/src/main/java/nia/chapter9/AbsIntegerEncoder.java +++ b/chapter9/src/main/java/nia/chapter9/AbsIntegerEncoder.java @@ -7,14 +7,15 @@ import java.util.List; /** - * Listing 9.3 of Netty in Action + * Listing 9.3 AbsIntegerEncoder * * @author Norman Maurer */ public class AbsIntegerEncoder extends MessageToMessageEncoder { @Override - protected void encode(ChannelHandlerContext channelHandlerContext, ByteBuf in, List out) + protected void encode(ChannelHandlerContext channelHandlerContext, + ByteBuf in, List out) throws Exception { while (in.readableBytes() >= 4) { int value = Math.abs(in.readInt()); diff --git a/chapter9/src/main/java/nia/chapter9/FixedLengthFrameDecoder.java b/chapter9/src/main/java/nia/chapter9/FixedLengthFrameDecoder.java index 60abced3..3fd54c08 100644 --- a/chapter9/src/main/java/nia/chapter9/FixedLengthFrameDecoder.java +++ b/chapter9/src/main/java/nia/chapter9/FixedLengthFrameDecoder.java @@ -7,7 +7,7 @@ import java.util.List; /** - * Listing 9.1 of Netty in Action + * Listing 9.1 FixedLengthFrameDecoder * * @author Norman Maurer */ @@ -24,7 +24,7 @@ public FixedLengthFrameDecoder(int frameLength) { @Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, - List out) throws Exception { + List out) throws Exception { while (in.readableBytes() >= frameLength) { ByteBuf buf = in.readBytes(frameLength); out.add(buf); diff --git a/chapter9/src/main/java/nia/chapter9/FrameChunkDecoder.java b/chapter9/src/main/java/nia/chapter9/FrameChunkDecoder.java index 968084f5..caa5a408 100644 --- a/chapter9/src/main/java/nia/chapter9/FrameChunkDecoder.java +++ b/chapter9/src/main/java/nia/chapter9/FrameChunkDecoder.java @@ -8,13 +8,11 @@ import java.util.List; /** - * Listing 9.5 of Netty in Action + * Listing 9.5 FrameChunkDecoder * * @author Norman Maurer */ -public class FrameChunkDecoder - extends ByteToMessageDecoder { - +public class FrameChunkDecoder extends ByteToMessageDecoder { private final int maxFrameSize; public FrameChunkDecoder(int maxFrameSize) { @@ -22,7 +20,8 @@ public FrameChunkDecoder(int maxFrameSize) { } @Override - protected void decode(ChannelHandlerContext ctx, ByteBuf in, List out) + protected void decode(ChannelHandlerContext ctx, ByteBuf in, + List out) throws Exception { int readableBytes = in.readableBytes(); if (readableBytes > maxFrameSize) { diff --git a/chapter9/src/main/java/nia/chapter9/package-info.java b/chapter9/src/main/java/nia/chapter9/package-info.java new file mode 100644 index 00000000..9ee9cd40 --- /dev/null +++ b/chapter9/src/main/java/nia/chapter9/package-info.java @@ -0,0 +1,10 @@ +/** + * Created by kerr. + * + * Listing 9.1 FixedLengthFrameDecoder {@link nia.chapter9.FixedLengthFrameDecoder} + * + * Listing 9.3 AbsIntegerEncoder {@link nia.chapter9.AbsIntegerEncoder} + * + * Listing 9.5 FrameChunkDecoder {@link nia.chapter9.FrameChunkDecoder} + */ +package nia.chapter9; \ No newline at end of file diff --git a/chapter9/src/test/java/nia/test/chapter9/AbsIntegerEncoderTest.java b/chapter9/src/test/java/nia/test/chapter9/AbsIntegerEncoderTest.java index b0170b98..f07feb4b 100644 --- a/chapter9/src/test/java/nia/test/chapter9/AbsIntegerEncoderTest.java +++ b/chapter9/src/test/java/nia/test/chapter9/AbsIntegerEncoderTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.*; /** - * Listing 9.4 of Netty in Action + * Listing 9.4 Testing the AbsIntegerEncoder * * @author Norman Maurer */ @@ -20,10 +20,12 @@ public void testEncoded() { for (int i = 1; i < 10; i++) { buf.writeInt(i * -1); } + EmbeddedChannel channel = new EmbeddedChannel( new AbsIntegerEncoder()); assertTrue(channel.writeOutbound(buf)); assertTrue(channel.finish()); + // read bytes for (int i = 1; i < 10; i++) { assertEquals(i, channel.readOutbound()); diff --git a/chapter9/src/test/java/nia/test/chapter9/FixedLengthFrameDecoderTest.java b/chapter9/src/test/java/nia/test/chapter9/FixedLengthFrameDecoderTest.java index e5810e6f..fda1349a 100644 --- a/chapter9/src/test/java/nia/test/chapter9/FixedLengthFrameDecoderTest.java +++ b/chapter9/src/test/java/nia/test/chapter9/FixedLengthFrameDecoderTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.*; /** - * Listing 9.2 of Netty in Action + * Listing 9.2 Testing the FixedLengthFrameDecoder * * @author Norman Maurer */ @@ -26,17 +26,20 @@ public void testFramesDecoded() { // write bytes assertTrue(channel.writeInbound(input.retain())); assertTrue(channel.finish()); - // read messages + // read messages ByteBuf read = (ByteBuf) channel.readInbound(); assertEquals(buf.readSlice(3), read); read.release(); + read = (ByteBuf) channel.readInbound(); assertEquals(buf.readSlice(3), read); read.release(); + read = (ByteBuf) channel.readInbound(); assertEquals(buf.readSlice(3), read); read.release(); + assertNull(channel.readInbound()); buf.release(); } @@ -48,20 +51,25 @@ public void testFramesDecoded2() { buf.writeByte(i); } ByteBuf input = buf.duplicate(); + EmbeddedChannel channel = new EmbeddedChannel( new FixedLengthFrameDecoder(3)); assertFalse(channel.writeInbound(input.readBytes(2))); assertTrue(channel.writeInbound(input.readBytes(7))); + assertTrue(channel.finish()); ByteBuf read = (ByteBuf) channel.readInbound(); assertEquals(buf.readSlice(3), read); read.release(); + read = (ByteBuf) channel.readInbound(); assertEquals(buf.readSlice(3), read); read.release(); + read = (ByteBuf) channel.readInbound(); assertEquals(buf.readSlice(3), read); read.release(); + assertNull(channel.readInbound()); buf.release(); } diff --git a/chapter9/src/test/java/nia/test/chapter9/FrameChunkDecoderTest.java b/chapter9/src/test/java/nia/test/chapter9/FrameChunkDecoderTest.java index 226de405..431675c7 100644 --- a/chapter9/src/test/java/nia/test/chapter9/FrameChunkDecoderTest.java +++ b/chapter9/src/test/java/nia/test/chapter9/FrameChunkDecoderTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.*; /** - * Listing 9.6 of Netty in Action + * Listing 9.6 Testing FrameChunkDecoder * * @author Norman Maurer */ @@ -23,8 +23,10 @@ public void testFramesDecoded() { buf.writeByte(i); } ByteBuf input = buf.duplicate(); + EmbeddedChannel channel = new EmbeddedChannel( new FrameChunkDecoder(3)); + assertTrue(channel.writeInbound(input.readBytes(2))); try { channel.writeInbound(input.readBytes(4)); @@ -34,10 +36,12 @@ public void testFramesDecoded() { } assertTrue(channel.writeInbound(input.readBytes(3))); assertTrue(channel.finish()); + // Read frames ByteBuf read = (ByteBuf) channel.readInbound(); assertEquals(buf.readSlice(2), read); read.release(); + read = (ByteBuf) channel.readInbound(); assertEquals(buf.skipBytes(4).readSlice(3), read); read.release(); diff --git a/chapter9/src/test/java/nia/test/chapter9/package-info.java b/chapter9/src/test/java/nia/test/chapter9/package-info.java new file mode 100644 index 00000000..ccfd2d7a --- /dev/null +++ b/chapter9/src/test/java/nia/test/chapter9/package-info.java @@ -0,0 +1,10 @@ +/** + * Created by kerr. + * + * Listing 9.2 Testing the FixedLengthFrameDecoder {@link nia.test.chapter9.FixedLengthFrameDecoderTest} + * + * Listing 9.4 Testing the AbsIntegerEncoder {@link nia.test.chapter9.AbsIntegerEncoderTest} + * + * Listing 9.6 Testing FrameChunkDecoder {@link nia.test.chapter9.FrameChunkDecoderTest} + */ +package nia.test.chapter9; \ No newline at end of file