// 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 // =========================================================== }