1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.nio.tests.java.nio; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.BufferOverflowException; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.BufferUnderflowException; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.ByteOrder; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.CharBuffer; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.InvalidMarkException; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.ReadOnlyBufferException; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests java.nio.CharBuffer 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class CharBufferTest extends AbstractBufferTest { 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected static final int SMALL_TEST_LENGTH = 5; 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected static final int BUFFER_LENGTH = 20; 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected CharBuffer buf; 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static char[] chars = "123456789a".toCharArray(); 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void setUp() throws Exception{ 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char[] charscopy = new char[chars.length]; 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes System.arraycopy(chars, 0, charscopy, 0, chars.length); 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf = CharBuffer.wrap(charscopy); 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes baseBuf = buf; 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void tearDown() throws Exception{ 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf = null; 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes baseBuf = null; 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testArray() { 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char array[] = buf.array(); 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity()); 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData1(array, buf.arrayOffset(), buf.capacity()); 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity()); 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData2(array, buf.arrayOffset(), buf.capacity()); 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity()); 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData1(buf); 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity()); 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData2(buf); 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity()); 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testArrayOffset() { 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char array[] = buf.array(); 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity()); 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData1(array, buf.arrayOffset(), buf.capacity()); 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity()); 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData2(array, buf.arrayOffset(), buf.capacity()); 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity()); 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData1(buf); 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity()); 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData2(buf); 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity()); 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAsReadOnlyBuffer() { 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.mark(); 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.position(buf.limit()); 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // readonly's contents should be the same as buf 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer readonly = buf.asReadOnlyBuffer(); 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotSame(buf, readonly); 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(readonly.isReadOnly()); 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), readonly.position()); 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.limit(), readonly.limit()); 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.isDirect(), readonly.isDirect()); 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.order(), readonly.order()); 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.capacity(), readonly.capacity()); 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, readonly); 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // readonly's position, mark, and limit should be independent to buf 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes readonly.reset(); 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(readonly.position(), 0); 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes readonly.clear(); 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), buf.limit()); 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.reset(); 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 0); 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int originalPosition = (buf.position() + buf.limit()) / 2; 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.position(originalPosition); 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.mark(); 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.position(buf.limit()); 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // readonly's contents should be the same as buf 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes readonly = buf.asReadOnlyBuffer(); 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotSame(buf, readonly); 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(readonly.isReadOnly()); 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), readonly.position()); 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.limit(), readonly.limit()); 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.isDirect(), readonly.isDirect()); 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.order(), readonly.order()); 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.capacity(), readonly.capacity()); 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, readonly); 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // readonly's position, mark, and limit should be independent to buf 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes readonly.reset(); 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(readonly.position(), originalPosition); 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes readonly.clear(); 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), buf.limit()); 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.reset(); 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), originalPosition); 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testCompact() { 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // case: buffer is full 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.mark(); 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData1(buf); 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer ret = buf.compact(); 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(ret, buf); 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), buf.capacity()); 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.limit(), buf.capacity()); 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentLikeTestData1(buf, 0, (char) 0, buf.capacity()); 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.reset(); 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidMarkException e) { 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // case: buffer is empty 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.position(0); 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.limit(0); 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.mark(); 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ret = buf.compact(); 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(ret, buf); 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 0); 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.limit(), buf.capacity()); 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentLikeTestData1(buf, 0, (char) 0, buf.capacity()); 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.reset(); 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidMarkException e) { 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // case: normal 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.capacity() > 5); 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.position(1); 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.limit(5); 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.mark(); 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ret = buf.compact(); 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(ret, buf); 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 4); 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.limit(), buf.capacity()); 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentLikeTestData1(buf, 0, (char) 1, 4); 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.reset(); 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidMarkException e) { 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testCompareTo() { 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // compare to self 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, buf.compareTo(buf)); 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.capacity() > SMALL_TEST_LENGTH); 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer other = CharBuffer.allocate(buf.capacity()); 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes other.put(buf); 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes other.clear(); 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, buf.compareTo(other)); 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, other.compareTo(buf)); 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.position(1); 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.compareTo(other) > 0); 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(other.compareTo(buf) < 0); 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes other.position(2); 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.compareTo(other) < 0); 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(other.compareTo(buf) > 0); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.position(2); 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.compareTo(other) == 0); 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(other.compareTo(buf) == 0); 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes other.limit(SMALL_TEST_LENGTH); 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.compareTo(other) > 0); 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(other.compareTo(buf) < 0); 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testDuplicate() { 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // mark the position 0 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.mark(); 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.position(buf.limit()); 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // duplicate's contents should be the same as buf 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer duplicate = buf.duplicate(); 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotSame(buf, duplicate); 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), duplicate.position()); 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.limit(), duplicate.limit()); 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.isReadOnly(), duplicate.isReadOnly()); 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.isDirect(), duplicate.isDirect()); 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.order(), duplicate.order()); 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.capacity(), duplicate.capacity()); 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, duplicate); 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // duplicate's position, mark, and limit should be independent to 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // buf 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes duplicate.reset(); 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(duplicate.position(), 0); 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes duplicate.clear(); 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), buf.limit()); 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.reset(); 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 0); 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // mark another position 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int originalPosition = (buf.position() + buf.limit()) / 2; 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.position(originalPosition); 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.mark(); 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.position(buf.limit()); 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // duplicate's contents should be the same as buf 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes duplicate = buf.duplicate(); 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNotSame(buf, duplicate); 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), duplicate.position()); 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.limit(), duplicate.limit()); 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.isReadOnly(), duplicate.isReadOnly()); 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.isDirect(), duplicate.isDirect()); 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.order(), duplicate.order()); 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.capacity(), duplicate.capacity()); 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, duplicate); 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // duplicate's position, mark, and limit should be independent to 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // buf 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes duplicate.reset(); 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(duplicate.position(), originalPosition); 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes duplicate.clear(); 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), buf.limit()); 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.reset(); 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), originalPosition); 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // duplicate share the same content with buf 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!duplicate.isReadOnly()) { 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData1(buf); 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, duplicate); 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData2(duplicate); 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, duplicate); 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testEquals() { 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // equal to self 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.equals(buf)); 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer readonly = buf.asReadOnlyBuffer(); 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.equals(readonly)); 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer duplicate = buf.duplicate(); 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.equals(duplicate)); 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // always false, if type mismatch 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(buf.equals(Boolean.TRUE)); 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.capacity() > 5); 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.limit(buf.capacity()).position(0); 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes readonly.limit(readonly.capacity()).position(1); 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(buf.equals(readonly)); 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.limit(buf.capacity() - 1).position(0); 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes duplicate.limit(duplicate.capacity()).position(0); 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(buf.equals(duplicate)); 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Class under test for char get() 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGet() { 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < buf.capacity(); i++) { 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), i); 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.get(), buf.get(i)); 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get(); 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (BufferUnderflowException e) { 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Class under test for java.nio.CharBuffer get(char[]) 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetcharArray() { 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char array[] = new char[1]; 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < buf.capacity(); i++) { 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), i); 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer ret = buf.get(array); 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(array[0], buf.get(i)); 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(ret, buf); 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get(array); 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (BufferUnderflowException e) { 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Class under test for java.nio.CharBuffer get(char[], int, int) 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetcharArrayintint() { 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char array[] = new char[buf.capacity()]; 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get(new char[buf.capacity() + 1], 0, buf.capacity() + 1); 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (BufferUnderflowException e) { 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 0); 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get(array, -1, array.length); 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get(array, array.length, 0); 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get(array, array.length + 1, 1); 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 0); 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get(array, 2, -1); 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get((char[])null, 2, -1); 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get(array, 2, array.length); 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get(array, 1, Integer.MAX_VALUE); 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 3842a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } catch (BufferUnderflowException expected) { 3852a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } catch (IndexOutOfBoundsException expected) { 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get(array, Integer.MAX_VALUE, 1); 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 0); 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer ret = buf.get(array, 0, array.length); 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), buf.capacity()); 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, array, 0, array.length); 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(ret, buf); 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Class under test for char get(int) 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testGetint() { 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < buf.capacity(); i++) { 408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), i); 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.get(), buf.get(i)); 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get(-1); 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.get(buf.limit()); 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testHashCode() { 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData1(buf); 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer readonly = buf.asReadOnlyBuffer(); 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer duplicate = buf.duplicate(); 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.hashCode() == readonly.hashCode()); 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.capacity() > SMALL_TEST_LENGTH); 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes duplicate.position(buf.capacity() / 2); 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.hashCode() != duplicate.hashCode()); 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Class under test for java.nio.CharBuffer put(char) 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testPutchar() { 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < buf.capacity(); i++) { 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), i); 443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer ret = buf.put((char) i); 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.get(i), (char) i); 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(ret, buf); 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put((char) 0); 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (BufferOverflowException e) { 451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Class under test for java.nio.CharBuffer put(char[]) 457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testPutcharArray() { 459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char array[] = new char[1]; 460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < buf.capacity(); i++) { 463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), i); 464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes array[0] = (char) i; 465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer ret = buf.put(array); 466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.get(i), (char) i); 467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(ret, buf); 468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(array); 471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (BufferOverflowException e) { 473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put((char[]) null); 477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Class under test for java.nio.CharBuffer put(char[], int, int) 485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testPutcharArrayintint() { 487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char array[] = new char[buf.capacity()]; 489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put((char[]) null, 0, 1); 491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); //$NON-NLS-1$ 492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(new char[buf.capacity() + 1], 0, buf.capacity() + 1); 497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (BufferOverflowException e) { 499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 0); 502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(array, -1, array.length); 504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(array, array.length + 1, 0); 510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(array, array.length, 0); 515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 0); 516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(array, 0, -1); 518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put((char[])null, 0, -1); 524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(array, 2, array.length); 530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(array, Integer.MAX_VALUE, 1); 536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(array, 1, Integer.MAX_VALUE); 542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 5432a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } catch (BufferOverflowException expected) { 5442a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes } catch (IndexOutOfBoundsException expected) { 545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 0); 547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData2(array, 0, array.length); 549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer ret = buf.put(array, 0, array.length); 550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), buf.capacity()); 551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, array, 0, array.length); 552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(ret, buf); 553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Class under test for java.nio.CharBuffer put(java.nio.CharBuffer) 557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testPutCharBuffer() { 559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer other = CharBuffer.allocate(buf.capacity()); 560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put((CharBuffer) null); 563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(buf); 569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(CharBuffer.allocate(buf.capacity() + 1)); 575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (BufferOverflowException e) { 577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.flip(); 581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put((CharBuffer)null); 582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData2(other); 588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes other.clear(); 589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer ret = buf.put(other); 591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(other.position(), other.capacity()); 592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), buf.capacity()); 593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(other, buf); 594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(ret, buf); 595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Class under test for java.nio.CharBuffer put(int, char) 599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testPutintchar() { 601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < buf.capacity(); i++) { 603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 0); 604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer ret = buf.put(i, (char) i); 605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.get(i), (char) i); 606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(ret, buf); 607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(-1, (char) 0); 610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(buf.limit(), (char) 0); 616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSlice() { 623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.capacity() > 5); 624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.position(1); 625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.limit(buf.capacity() - 1); 626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer slice = buf.slice(); 628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.isReadOnly(), slice.isReadOnly()); 629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.isDirect(), slice.isDirect()); 630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.order(), slice.order()); 631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(slice.position(), 0); 632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(slice.limit(), buf.remaining()); 633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(slice.capacity(), buf.remaining()); 634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes slice.reset(); 636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidMarkException e) { 638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // slice share the same content with buf 642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (!slice.isReadOnly()) { 643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData1(slice); 644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentLikeTestData1(buf, 1, (char) 0, slice.capacity()); 645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(2, (char) 500); 646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(slice.get(1), 500); 647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testToString() { 651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String expected = ""; 652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = buf.position(); i < buf.limit(); i++) { 653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes expected += buf.get(i); 654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String str = buf.toString(); 656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(expected, str); 657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testCharAt() { 660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < buf.remaining(); i++) { 661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.get(buf.position() + i), buf.charAt(i)); 662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.charAt(-1); 665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.charAt(buf.remaining()); 671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testLength() { 678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.length(), buf.remaining()); 679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSubSequence() { 682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.subSequence(-1, buf.length()); 684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.subSequence(buf.length() + 1, buf.length() + 1); 690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.subSequence(buf.length(), buf.length()).length(), 0); 695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.subSequence(1, 0); 697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.subSequence(1, buf.length() + 1); 703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.subSequence(0, buf.length()).toString(), buf 709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .toString()); 710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (buf.length() >= 2) { 712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.subSequence(1, buf.length() - 1).toString(), buf 713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .toString().substring(1, buf.length() - 1)); 714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testPutString() { 718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String str = " "; 719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < buf.capacity(); i++) { 722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), i); 723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes str = "" + (char) i; 724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer ret = buf.put(str); 725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.get(i), (char) i); 726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(ret, buf); 727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(str); 730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (BufferOverflowException e) { 732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put((String) null); 736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testPutStringintint() { 743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String str = String.valueOf(new char[buf.capacity()]); 745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Throw a BufferOverflowException and no character is transfered to 747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // CharBuffer 748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(String.valueOf(new char[buf.capacity() + 1]), 0, buf 750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .capacity() + 1); 751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (BufferOverflowException e) { 753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put((String) null, 0, buf.capacity() + 1); 757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, buf.position()); 762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(str, -1, str.length()); 766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(str, str.length() + 1, str.length() + 2); 772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put((String) null, -1, 0); 778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(str, str.length(), str.length()); 783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 0); 784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(str, 2, 1); 786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(str, 2, str.length() + 1); 792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw Exception"); //$NON-NLS-1$ 793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), 0); 797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char array[] = new char[buf.capacity()]; 799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes loadTestData2(array, 0, array.length); 800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes str = String.valueOf(array); 801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer ret = buf.put(str, 0, str.length()); 803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.position(), buf.capacity()); 804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertContentEquals(buf, str.toCharArray(), 0, str.length()); 805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(ret, buf); 806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes void loadTestData1(char array[], int offset, int length) { 809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < length; i++) { 810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes array[offset + i] = (char) i; 811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes void loadTestData2(char array[], int offset, int length) { 815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < length; i++) { 816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes array[offset + i] = (char) (length - i); 817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes void loadTestData1(CharBuffer buf) { 821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < buf.capacity(); i++) { 823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(i, (char) i); 824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes void loadTestData2(CharBuffer buf) { 828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.clear(); 829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < buf.capacity(); i++) { 830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buf.put(i, (char) (buf.capacity() - i)); 831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void assertContentEquals(CharBuffer buf, char array[], int offset, 835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int length) { 836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < length; i++) { 837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.get(i), array[offset + i]); 838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void assertContentEquals(CharBuffer buf, CharBuffer other) { 842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.capacity(), other.capacity()); 843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < buf.capacity(); i++) { 844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.get(i), other.get(i)); 845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void assertContentLikeTestData1(CharBuffer buf, int startIndex, 849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char startValue, int length) { 850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char value = startValue; 851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < length; i++) { 852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(buf.get(startIndex + i), value); 853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes value = (char) (value + 1); 854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAppendSelf() throws Exception { 858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer cb = CharBuffer.allocate(10); 859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer cb2 = cb.duplicate(); 860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append(cb); 861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(10, cb.position()); 862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.clear(); 863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(cb2, cb); 864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.put("abc"); 866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb2 = cb.duplicate(); 867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append(cb); 868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(10, cb.position()); 869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.clear(); 870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb2.clear(); 871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(cb2, cb); 872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.put("edfg"); 874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.clear(); 875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb2 = cb.duplicate(); 876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append(cb); 877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(10, cb.position()); 878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.clear(); 879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb2.clear(); 880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(cb, cb2); 881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAppendOverFlow() throws IOException { 884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer cb = CharBuffer.allocate(1); 885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharSequence cs = "String"; 886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.put('A'); 887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append('C'); 889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw BufferOverflowException."); 890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (BufferOverflowException ex) { 891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append(cs); 895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw BufferOverflowException."); 896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (BufferOverflowException ex) { 897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append(cs, 1, 2); 901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw BufferOverflowException."); 902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (BufferOverflowException ex) { 903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testReadOnlyMap() throws IOException { 908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer cb = CharBuffer.wrap("ABCDE").asReadOnlyBuffer(); 909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharSequence cs = "String"; 910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append('A'); 912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ReadOnlyBufferException."); 913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ReadOnlyBufferException ex) { 914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append(cs); 918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ReadOnlyBufferException."); 919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ReadOnlyBufferException ex) { 920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append(cs, 1, 2); 924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ReadOnlyBufferException."); 925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ReadOnlyBufferException ex) { 926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append(cs, 1, 1); 929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAppendCNormal() throws IOException { 932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer cb = CharBuffer.allocate(2); 933561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.put('A'); 934561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(cb, cb.append('B')); 935561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals('B', cb.get(1)); 936561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 937561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 938561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAppendCharSequenceNormal() throws IOException { 939561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer cb = CharBuffer.allocate(10); 940561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.put('A'); 941561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(cb, cb.append("String")); 942561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("AString", cb.flip().toString()); 943561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append(null); 944561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("null", cb.flip().toString()); 945561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 946561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 947561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAppendCharSequenceIINormal() throws IOException { 948561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer cb = CharBuffer.allocate(10); 949561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.put('A'); 950561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(cb, cb.append("String", 1, 3)); 951561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Atr", cb.flip().toString()); 952561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 953561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append(null, 0, 1); 954561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("n", cb.flip().toString()); 955561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 956561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 957561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAppendCharSequenceII_IllegalArgument() throws IOException { 958561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer cb = CharBuffer.allocate(10); 959561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append("String", 0, 0); 960561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append("String", 2, 2); 961561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 962561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append("String", -1, 1); 963561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IndexOutOfBoundsException."); 964561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException ex) { 965561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 966561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 967561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 968561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append("String", -1, -1); 969561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IndexOutOfBoundsException."); 970561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException ex) { 971561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 972561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 973561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 974561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append("String", 3, 2); 975561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IndexOutOfBoundsException."); 976561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException ex) { 977561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 978561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 979561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 980561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append("String", 3, 0); 981561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IndexOutOfBoundsException."); 982561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException ex) { 983561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 984561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 985561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 986561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes cb.append("String", 3, 110); 987561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IndexOutOfBoundsException."); 988561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException ex) { 989561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 990561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 991561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 992561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 993561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testReadCharBuffer() throws IOException { 994561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer source = CharBuffer.wrap("String"); 995561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer target = CharBuffer.allocate(10); 996561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, source.read(target)); 997561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("String", target.flip().toString()); 998561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // return -1 when nothing to read 999561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(-1, source.read(target)); 1000561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // NullPointerException 1001561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1002561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(-1, source.read(null)); 1003561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException."); 1004561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException ex) { 1005561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 1006561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1007561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1008561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1009561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1010561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testReadReadOnly() throws IOException { 1011561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer source = CharBuffer.wrap("String"); 1012561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer target = CharBuffer.allocate(10).asReadOnlyBuffer(); 1013561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1014561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes source.read(target); 1015561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw ReadOnlyBufferException."); 1016561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ReadOnlyBufferException ex) { 1017561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 1018561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1019561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // if target has no remaining, needn't to check the isReadOnly 1020561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes target.flip(); 1021561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, source.read(target)); 1022561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1023561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1024561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testReadOverflow() throws IOException { 1025561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer source = CharBuffer.wrap("String"); 1026561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer target = CharBuffer.allocate(1); 1027561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, source.read(target)); 1028561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("S", target.flip().toString()); 1029561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, source.position()); 1030561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1031561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1032561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testReadSelf() throws Exception { 1033561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer source = CharBuffer.wrap("abuffer"); 1034561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1035561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes source.read(source); 1036561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IAE."); 1037561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 1038561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //expected 1039561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1040561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1041561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1042561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testRead_scenario1() throws Exception { 1043561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes char[] charArray = new char[] { 'a', 'b' }; 1044561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer charBuffer = CharBuffer.wrap(charArray); 1045561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1046561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes charBuffer.read(charBuffer); 1047561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IllegalArgumentException"); 1048561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 1049561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 1050561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1051561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes charBuffer.put(charArray); 1052561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(-1, charBuffer.read(charBuffer)); 1053561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1054561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1055561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testRead_scenario2() throws Exception { 1056561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer charBufferA = CharBuffer.allocate(0); 1057561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer allocateBuffer = CharBuffer.allocate(1); 1058561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CharBuffer charBufferB = CharBuffer.wrap(allocateBuffer); 1059561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(-1, charBufferA.read(charBufferB)); 1060561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1061561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes allocateBuffer.append(allocateBuffer); 1062561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes charBufferB = CharBuffer.wrap(allocateBuffer); 1063561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(-1, charBufferA.read(charBufferB)); 1064561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1065561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1066561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testIsDirect() { 1067561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(buf.isDirect()); 1068561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1069561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1070561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testHasArray() { 1071561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(buf.hasArray()); 1072561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1073561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1074561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testOrder() { 1075561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(ByteOrder.nativeOrder(), buf.order()); 1076561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1077561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1078561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testIsReadOnly() { 1079561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(buf.isReadOnly()); 1080561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1081561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 1082