/* * Copyright 2005-2011 by BerryWorks Software, LLC. All rights reserved. */ package com.berryworks.edireader.tokenizer; import org.junit.Test; import java.nio.CharBuffer; import static org.junit.Assert.assertEquals; public class TestCharBufferBasics { CharBuffer buffer; @Test public void testBasics() { char[] wrappedArray = new char[20]; buffer = CharBuffer.wrap(wrappedArray); assertEquals(0, buffer.position()); assertEquals(20, buffer.length()); assertEquals(20, buffer.limit()); assertEquals(20, buffer.capacity()); buffer.put('a'); assertEquals(1, buffer.position()); assertEquals(19, buffer.length()); assertEquals(20, buffer.limit()); buffer.put(new char[]{'b', 'c'}); assertEquals(3, buffer.position()); assertEquals(17, buffer.length()); assertEquals(20, buffer.limit()); } @Test public void testPutThenGet() { char[] wrappedArray = new char[20]; buffer = CharBuffer.wrap(wrappedArray); buffer.put(new char[]{'a', 'b', 'c', 'd'}); assertEquals(4, buffer.position()); assertEquals(16, buffer.length()); assertEquals(20, buffer.limit()); buffer.flip(); assertEquals(0, buffer.position()); assertEquals(4, buffer.length()); assertEquals(4, buffer.limit()); assertEquals('a', buffer.get()); assertEquals(1, buffer.position()); assertEquals(3, buffer.length()); assertEquals(4, buffer.limit()); char[] array = new char[]{'x', 'y'}; buffer.get(array); assertEquals('b', array[0]); assertEquals('c', array[1]); assertEquals(3, buffer.position()); assertEquals(1, buffer.length()); assertEquals(4, buffer.limit()); } @Test public void testClear() { char[] wrappedArray = new char[20]; buffer = CharBuffer.wrap(wrappedArray); buffer.put(new char[]{'a', 'b', 'c', 'd'}); assertEquals(4, buffer.position()); assertEquals(16, buffer.length()); assertEquals(20, buffer.limit()); buffer.flip(); assertEquals(0, buffer.position()); assertEquals(4, buffer.length()); assertEquals(4, buffer.limit()); assertEquals('a', buffer.get()); assertEquals(1, buffer.position()); assertEquals(3, buffer.length()); assertEquals(4, buffer.limit()); buffer.clear(); assertEquals(0, buffer.position()); assertEquals(20, buffer.length()); assertEquals(20, buffer.limit()); } @Test public void testCompact() { char[] wrappedArray = new char[20]; buffer = CharBuffer.wrap(wrappedArray); buffer.put(new char[]{'a', 'b', 'c', 'd'}); assertEquals(4, buffer.position()); assertEquals(16, buffer.length()); assertEquals(20, buffer.limit()); buffer.flip(); assertEquals(0, buffer.position()); assertEquals(4, buffer.length()); assertEquals(4, buffer.limit()); assertEquals('a', buffer.get()); assertEquals(1, buffer.position()); assertEquals(3, buffer.length()); assertEquals(4, buffer.limit()); buffer.compact(); assertEquals(3, buffer.position()); assertEquals(17, buffer.length()); assertEquals(20, buffer.limit()); buffer.put(new char[]{'e', 'f', 'g'}); assertEquals(6, buffer.position()); assertEquals(14, buffer.length()); assertEquals(20, buffer.limit()); buffer.flip(); assertEquals(0, buffer.position()); assertEquals(6, buffer.length()); assertEquals(6, buffer.limit()); } }