package org.eclipse.orion.server.tests.core;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.io.StringReader;
import org.eclipse.orion.server.core.EndingAwareLineReader;
import org.eclipse.orion.server.core.EndingAwareLineReader.LineDelimiter;
import org.junit.Test;
public class EndingAwareLineReaderTest {
private String TEST_STRING_1 = "line 1 \n line2 \r\n line3 \r line 4 \r ";
private String TEST_STRING_2 = "line1 \rline2\r\nline3 testcontent \0 testcontent \r\n";
@Test
public void shouldProperlyReadStrings() throws IOException {
EndingAwareLineReader reader = new EndingAwareLineReader(new StringReader(TEST_STRING_1));
StringBuilder builder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
LineDelimiter lineDelimiter = reader.getLineDelimiter();
builder.append(line);
builder.append(lineDelimiter);
}
assertEquals(TEST_STRING_1, builder.toString());
reader = new EndingAwareLineReader(new StringReader(TEST_STRING_2));
builder = new StringBuilder();
while ((line = reader.readLine()) != null) {
LineDelimiter lineDelimiter = reader.getLineDelimiter();
builder.append(line);
builder.append(lineDelimiter);
}
assertEquals(TEST_STRING_2, builder.toString());
}
}