package com.jenkov.nioserver; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotSame; import static org.junit.jupiter.api.Assertions.assertSame; import org.junit.jupiter.api.Test; /** * Project: java-nio-server
* File: MessageBufferTest.java
* Created: 18 Oct 2015
* * @author jjenkov */ public class MessageBufferTest { @Test public void testGetMessage() { MessageBuffer messageBuffer = new MessageBuffer(); Message message = messageBuffer.getMessage(); assertNotNull(message); assertEquals(0, message.offset); assertEquals(0, message.length); assertEquals(4 * 1024, message.capacity); Message message2 = messageBuffer.getMessage(); assertNotNull(message2); assertEquals(4096, message2.offset); assertEquals(0, message2.length); assertEquals(4 * 1024, message2.capacity); // TODO: test what happens if the small buffer space is depleted of messages. } @Test public void testExpandMessage() { MessageBuffer messageBuffer = new MessageBuffer(); Message message = messageBuffer.getMessage(); byte[] smallSharedArray = message.sharedArray; assertNotNull(message); assertEquals(0, message.offset); assertEquals(0, message.length); assertEquals(4 * 1024, message.capacity); messageBuffer.expandMessage(message); assertEquals(0, message.offset); assertEquals(0, message.length); assertEquals(128 * 1024, message.capacity); byte[] mediumSharedArray = message.sharedArray; assertNotSame(smallSharedArray, mediumSharedArray); messageBuffer.expandMessage(message); assertEquals(0, message.offset); assertEquals(0, message.length); assertEquals(1024 * 1024, message.capacity); byte[] largeSharedArray = message.sharedArray; assertNotSame(smallSharedArray, largeSharedArray); assertNotSame(mediumSharedArray, largeSharedArray); // next expansion should not be possible. assertFalse(messageBuffer.expandMessage(message)); assertEquals(0, message.offset); assertEquals(0, message.length); assertEquals(1024 * 1024, message.capacity); assertSame(message.sharedArray, largeSharedArray); } }