blob: 1a585c1431d3b72dcee3b44ec20414b25e8994da [file] [log] [blame]
/*******************************************************************************
* 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);
}
}