From 38fae09f231ab2c23d31c20a7e8bdcbae15594f4 Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Tue, 30 Dec 2014 15:47:33 +0900 Subject: [PATCH] Add more tests to EmptyByteBufTest - Ensure an EmptyByteBuf has an array, an NIO buffer, and a memory address at the same time - Add an assertion that checks if EMPTY_BUFFER is an EmptyByteBuf, just in case we make a mistake in the future --- .../main/java/io/netty/buffer/Unpooled.java | 4 +++ .../io/netty/buffer/EmptyByteBufTest.java | 36 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/buffer/src/main/java/io/netty/buffer/Unpooled.java b/buffer/src/main/java/io/netty/buffer/Unpooled.java index ad707079ce..d7c56fb1db 100644 --- a/buffer/src/main/java/io/netty/buffer/Unpooled.java +++ b/buffer/src/main/java/io/netty/buffer/Unpooled.java @@ -93,6 +93,10 @@ public final class Unpooled { */ public static final ByteBuf EMPTY_BUFFER = ALLOC.buffer(0, 0); + static { + assert EMPTY_BUFFER instanceof EmptyByteBuf: "EMPTY_BUFFER must be an EmptyByteBuf."; + } + /** * Creates a new big-endian Java heap buffer with reasonably small initial capacity, which * expands its capacity boundlessly on demand. diff --git a/buffer/src/test/java/io/netty/buffer/EmptyByteBufTest.java b/buffer/src/test/java/io/netty/buffer/EmptyByteBufTest.java index 71453e1810..c4961cf484 100644 --- a/buffer/src/test/java/io/netty/buffer/EmptyByteBufTest.java +++ b/buffer/src/test/java/io/netty/buffer/EmptyByteBufTest.java @@ -17,6 +17,9 @@ import org.junit.Assert; import org.junit.Test; +import static org.hamcrest.Matchers.*; +import static org.junit.Assert.*; + public class EmptyByteBufTest { @Test @@ -32,4 +35,37 @@ public class EmptyByteBufTest { Assert.assertFalse(empty.isReadable()); Assert.assertFalse(empty.isReadable(1)); } + + @Test + public void testArray() { + EmptyByteBuf empty = new EmptyByteBuf(UnpooledByteBufAllocator.DEFAULT); + assertThat(empty.hasArray(), is(true)); + assertThat(empty.array().length, is(0)); + assertThat(empty.arrayOffset(), is(0)); + } + + @Test + public void testNioBuffer() { + EmptyByteBuf empty = new EmptyByteBuf(UnpooledByteBufAllocator.DEFAULT); + assertThat(empty.nioBufferCount(), is(1)); + assertThat(empty.nioBuffer().position(), is(0)); + assertThat(empty.nioBuffer().limit(), is(0)); + assertThat(empty.nioBuffer(), is(sameInstance(empty.nioBuffer()))); + assertThat(empty.nioBuffer(), is(sameInstance(empty.internalNioBuffer(0, 0)))); + } + + @Test + public void testMemoryAddress() { + EmptyByteBuf empty = new EmptyByteBuf(UnpooledByteBufAllocator.DEFAULT); + if (empty.hasMemoryAddress()) { + assertThat(empty.memoryAddress(), is(not(0L))); + } else { + try { + empty.memoryAddress(); + fail(); + } catch (UnsupportedOperationException ignored) { + // Ignore. + } + } + } }