/******************************************************************************* * Copyright (c) 2004 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.wst.sse.core.tests.document; import java.io.IOException; import org.eclipse.wst.sse.core.internal.text.CharSequenceReader; import junit.framework.TestCase; public class TestCharSequenceReader extends TestCase { public TestCharSequenceReader() { super(); } public TestCharSequenceReader(String name) { super(name); } String fStandardString = "test123"; public void testStandardBeginning() { CharSequenceReader reader = new CharSequenceReader(fStandardString, 0, 3); char char1 = (char) reader.read(); assertTrue(char1 == 't'); char char2 = (char) reader.read(); assertTrue(char2 == 'e'); char char3 = (char) reader.read(); assertTrue(char3 == 's'); int eof = reader.read(); assertTrue(eof == -1); } public void testStandardMiddle() { CharSequenceReader reader = new CharSequenceReader(fStandardString, 2, 3); char char1 = (char) reader.read(); assertTrue(char1 == 's'); char char2 = (char) reader.read(); assertTrue(char2 == 't'); char char3 = (char) reader.read(); assertTrue(char3 == '1'); int eof = reader.read(); assertTrue(eof == -1); } public void testStandardEnd() { CharSequenceReader reader = new CharSequenceReader(fStandardString, 4, 3); char char1 = (char) reader.read(); assertTrue(char1 == '1'); char char2 = (char) reader.read(); assertTrue(char2 == '2'); char char3 = (char) reader.read(); assertTrue(char3 == '3'); int eof = reader.read(); assertTrue(eof == -1); } public void testStandardOutOfRange() { CharSequenceReader reader = new CharSequenceReader(fStandardString, 50, 3); int eof = reader.read(); assertTrue(eof == -1); } public void testStandardPartiallyOutOfRange() { CharSequenceReader reader = new CharSequenceReader(fStandardString, 5, 3); char char1 = (char) reader.read(); assertTrue(char1 == '2'); char char2 = (char) reader.read(); assertTrue(char2 == '3'); int eof = reader.read(); assertTrue(eof == -1); } public void testBufferBegining() throws IOException { CharSequenceReader reader = new CharSequenceReader(fStandardString, 0, 3); String targetString = "tes"; // intentionally small sized buffer char[] charbuffer = new char[2]; StringBuffer stringBuffer = new StringBuffer(); int nRead = 0; while (nRead != -1) { nRead = reader.read(charbuffer); if (nRead > 0) { stringBuffer.append(charbuffer, 0, nRead); } } String testString = stringBuffer.toString(); assertEquals(targetString, testString); } public void testBufferEnd() throws IOException { CharSequenceReader reader = new CharSequenceReader(fStandardString, 4, 3); String targetString = "123"; // intentionally small sized buffer char[] charbuffer = new char[2]; StringBuffer stringBuffer = new StringBuffer(); int nRead = 0; while (nRead != -1) { nRead = reader.read(charbuffer); if (nRead > 0) { stringBuffer.append(charbuffer, 0, nRead); } } String testString = stringBuffer.toString(); assertEquals(targetString, testString); } public void testBufferEndEnlarged() throws IOException { CharSequenceReader reader = new CharSequenceReader(fStandardString, 4, 3); String targetString = "123"; // intentionally small sized buffer char[] charbuffer = new char[200]; StringBuffer stringBuffer = new StringBuffer(); int nRead = 0; while (nRead != -1) { nRead = reader.read(charbuffer); if (nRead > 0) { stringBuffer.append(charbuffer, 0, nRead); } } String testString = stringBuffer.toString(); assertEquals(targetString, testString); } public void testBufferBeginingEnlarged() throws IOException { CharSequenceReader reader = new CharSequenceReader(fStandardString, 0, 3); String targetString = "tes"; // intentionally small sized buffer char[] charbuffer = new char[200]; StringBuffer stringBuffer = new StringBuffer(); int nRead = 0; while (nRead != -1) { nRead = reader.read(charbuffer); if (nRead > 0) { stringBuffer.append(charbuffer, 0, nRead); } } String testString = stringBuffer.toString(); assertEquals(targetString, testString); } public void testBufferBeginingReduced() throws IOException { CharSequenceReader reader = new CharSequenceReader(fStandardString, 0, 3); String targetString = "te"; // intentionally small sized buffer char[] charbuffer = new char[2]; StringBuffer stringBuffer = new StringBuffer(); int nRead = 0; //while (nRead != -1) { nRead = reader.read(charbuffer, 0, 2); if (nRead > 0) { stringBuffer.append(charbuffer, 0, nRead); } //} String testString = stringBuffer.toString(); assertEquals(targetString, testString); /// now continue reading same reader targetString = "s"; stringBuffer = new StringBuffer(); nRead = 0; //while (nRead != -1) { nRead = reader.read(charbuffer, 0, 2); if (nRead > 0) { stringBuffer.append(charbuffer, 0, nRead); } //} testString = stringBuffer.toString(); assertEquals(targetString, testString); } }