// Created by plusminus on 01:01:07 - 26.01.2009
package org.androad.traffic.tpeg.util;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import junit.framework.Assert;
import org.junit.Test;
public class CharacterEncodingReaderTest {
// ===========================================================
// Constants
// ===========================================================
private static final String[] tests = {
"12345678901234567890",
"&rtm;12345678901234567890",
"1&rtm;2345678901234567890",
"12&rtm;345678901234567890",
"123&rtm;45678901234567890",
"1234&rtm;5678901234567890",
"12345&rtm;678901234567890",
"123456&rtm;78901234567890",
"1234567&rtm;8901234567890",
"12345678&rtm;901234567890",
"123456789&rtm;01234567890",
"1234567890&rtm;1234567890",
"12345678901&rtm;234567890",
"123456789012&rtm;34567890",
"1234567890123&rtm;4567890",
"12345678901234&rtm;567890",
"123456789012345&rtm;67890",
"1234567890123456&rtm;7890",
"12345678901234567&rtm;890",
"123456789012345678&rtm;90",
"1234567890123456789&rtm;0",
"12345678901234567890&rtm;",
"&rtm;&rtm;12345678901234567890",
"&rtm;1&rtm;2345678901234567890",
"&rtm;12&rtm;345678901234567890",
"&rtm;123&rtm;45678901234567890",
"&rtm;1234&rtm;5678901234567890",
"&rtm;12345&rtm;678901234567890",
"&rtm;123456&rtm;78901234567890",
"&rtm;1234567&rtm;8901234567890",
"&rtm;12345678&rtm;901234567890",
"&rtm;123456789&rtm;01234567890",
"&rtm;1234567890&rtm;1234567890",
"&rtm;12345678901&rtm;234567890",
"&rtm;123456789012&rtm;34567890",
"&rtm;1234567890123&rtm;4567890",
"&rtm;12345678901234&rtm;567890",
"&rtm;123456789012345&rtm;67890",
"&rtm;1234567890123456&rtm;7890",
"&rtm;12345678901234567&rtm;890",
"&rtm;123456789012345678&rtm;90",
"&rtm;1234567890123456789&rtm;0",
"&rtm;12345678901234567890&rtm;",
"&rtm;&rtm;12345678901234567890",
"1&rtm;&rtm;2345678901234567890",
"12&rtm;&rtm;345678901234567890",
"123&rtm;&rtm;45678901234567890",
"1234&rtm;&rtm;5678901234567890",
"12345&rtm;&rtm;678901234567890",
"123456&rtm;&rtm;78901234567890",
"1234567&rtm;&rtm;8901234567890",
"12345678&rtm;&rtm;901234567890",
"123456789&rtm;&rtm;01234567890",
"1234567890&rtm;&rtm;1234567890",
"12345678901&rtm;&rtm;234567890",
"123456789012&rtm;&rtm;34567890",
"1234567890123&rtm;&rtm;4567890",
"12345678901234&rtm;&rtm;567890",
"123456789012345&rtm;&rtm;67890",
"1234567890123456&rtm;&rtm;7890",
"12345678901234567&rtm;&rtm;890",
"123456789012345678&rtm;&rtm;90",
"1234567890123456789&rtm;&rtm;0",
"12345678901234567890&rtm;&rtm;",
"&rtm;&rtm;&rtm;&rtm;&rtm;&rtm;",
"&rtm;&rtm;&rtm;&rtm;&rtm;",
"&rtm;&rtm;&rtm;&rtm;",
"&rtm;&rtm;&rtm;",
"&rtm;&rtm;",
"&rtm;",
"&",
"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&&",
"&&&&&&&&&&&&&",
"&&&&&&&&&&&&",
"&&&&&&&&&&&",
"&&&&&&&&&&",
"&&&&&&&&&",
"&&&&&&&&",
"&&&&&&&",
"&&&&&&",
"&&&&&",
"&&&&",
"&&&",
"&&",
"&",
""
};
// ===========================================================
// Fields
// ===========================================================
// ===========================================================
// Constructors
// ===========================================================
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods from SuperClass/Interfaces
// ===========================================================
// ===========================================================
// Methods
// ===========================================================
@Test
public void mainTest() throws Exception{
System.out.println("Start");
for(int i = 1; i < 30; i++)
for(String test : tests)
testIt(test, i);
System.out.println("Done");
}
private void testIt(final String test, final int pBufSize) throws IOException {
Reader r = new CharacterEncodingReader(new StringReader(test), '&', "&", 8000);
StringBuilder sb = new StringBuilder();
char[] buf = new char[pBufSize];
int read;
while((read = r.read(buf)) != -1)
sb.append(buf, 0, read);
final String expexcted = test.replaceAll("&", "&");
final String actual = sb.toString();
System.out.print("[" + pBufSize + "] : \"" + test + "\" ");
Assert.assertEquals(expexcted, actual);
System.out.println("success");
}
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}