X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Ftest_code%2FReplaceInputStreamTest.java;h=d08a91ed779c89502ef8e7d65eca8e47b7fa9ddd;hb=4a464a06db3158e31c64aa798ddce9df1ec7f5f5;hp=d6a741fd7f85b1d5b34c036fdafb3e4a76101a47;hpb=6ef54b36380b9d123bbdb6b4056cf64b7489225e;p=nikiroo-utils.git diff --git a/src/be/nikiroo/utils/test_code/ReplaceInputStreamTest.java b/src/be/nikiroo/utils/test_code/ReplaceInputStreamTest.java index d6a741f..d08a91e 100644 --- a/src/be/nikiroo/utils/test_code/ReplaceInputStreamTest.java +++ b/src/be/nikiroo/utils/test_code/ReplaceInputStreamTest.java @@ -4,84 +4,107 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; import be.nikiroo.utils.IOUtils; -import be.nikiroo.utils.ReplaceInputStream; +import be.nikiroo.utils.streams.ReplaceInputStream; import be.nikiroo.utils.test.TestCase; import be.nikiroo.utils.test.TestLauncher; -public class ReplaceInputStreamTest extends TestLauncher { +class ReplaceInputStreamTest extends TestLauncher { public ReplaceInputStreamTest(String[] args) { super("ReplaceInputStream test", args); - addTest(new TestCase("Simple InputStream, empty replace") { + addTest(new TestCase("Empty replace") { @Override public void test() throws Exception { - byte[] expected = new byte[] { 42, 12, 0, 127 }; + byte[] data = new byte[] { 42, 12, 0, 127 }; ReplaceInputStream in = new ReplaceInputStream( - new ByteArrayInputStream(expected), new byte[0], + new ByteArrayInputStream(data), new byte[0], new byte[0]); - checkArrays(this, "FIRST", in, expected); + + checkArrays(this, "FIRST", in, data); } }); - addTest(new TestCase("Simple InputStream, simple replace") { + addTest(new TestCase("Simple replace") { @Override public void test() throws Exception { - byte[] expected = new byte[] { 42, 12, 0, 127 }; + byte[] data = new byte[] { 42, 12, 0, 127 }; ReplaceInputStream in = new ReplaceInputStream( - new ByteArrayInputStream(expected), new byte[] { 0 }, + new ByteArrayInputStream(data), new byte[] { 0 }, new byte[] { 10 }); checkArrays(this, "FIRST", in, new byte[] { 42, 12, 10, 127 }); } }); - addTest(new TestCase("Simple byte array reading, 3/4 replace") { + addTest(new TestCase("3/4 replace") { @Override public void test() throws Exception { - byte[] expected = new byte[] { 42, 12, 0, 127 }; + byte[] data = new byte[] { 42, 12, 0, 127 }; ReplaceInputStream in = new ReplaceInputStream( - new ByteArrayInputStream(expected), new byte[] { 12, 0, - 127 }, new byte[] { 10, 10, 10 }); + new ByteArrayInputStream(data), + new byte[] { 12, 0, 127 }, new byte[] { 10, 10, 10 }); checkArrays(this, "FIRST", in, new byte[] { 42, 10, 10, 10 }); } }); - addTest(new TestCase("Simple byte array reading, longer replace") { + addTest(new TestCase("Longer replace") { @Override public void test() throws Exception { - byte[] expected = new byte[] { 42, 12, 0, 127 }; + byte[] data = new byte[] { 42, 12, 0, 127 }; ReplaceInputStream in = new ReplaceInputStream( - new ByteArrayInputStream(expected), new byte[] { 0 }, + new ByteArrayInputStream(data), new byte[] { 0 }, new byte[] { 10, 10, 10 }); - // TODO NOT OK!! - System.out.println(); - for (int i = 0; i < expected.length; i++) { - System.out.println("expected[" + i + "] = " + expected[i]); - } - byte[] actual = IOUtils.readSmallStream(in).getBytes("UTF-8"); - for (int i = 0; i < actual.length; i++) { - System.out.println("actual[" + i + "] = " + actual[i]); - } - System.exit(1); - // - checkArrays(this, "FIRST", in, new byte[] { 42, 12, 10, 10, 10, 127 }); } }); - addTest(new TestCase("Simple byte array reading, shorter replace") { + addTest(new TestCase("Shorter replace") { @Override public void test() throws Exception { - byte[] expected = new byte[] { 42, 12, 0, 127 }; + byte[] data = new byte[] { 42, 12, 0, 127 }; ReplaceInputStream in = new ReplaceInputStream( - new ByteArrayInputStream(expected), new byte[] { 42, - 12, 0 }, new byte[] { 10 }); + new ByteArrayInputStream(data), + new byte[] { 42, 12, 0 }, new byte[] { 10 }); + checkArrays(this, "FIRST", in, new byte[] { 10, 127 }); } }); + + addTest(new TestCase("String replace") { + @Override + public void test() throws Exception { + byte[] data = "I like red".getBytes("UTF-8"); + ReplaceInputStream in = new ReplaceInputStream( + new ByteArrayInputStream(data), + "red", "blue"); + + checkArrays(this, "FIRST", in, "I like blue".getBytes("UTF-8")); + + data = "I like blue".getBytes("UTF-8"); + in = new ReplaceInputStream(new ByteArrayInputStream(data), + "blue", "red"); + + checkArrays(this, "FIRST", in, "I like red".getBytes("UTF-8")); + } + }); + + addTest(new TestCase("Multiple replaces") { + @Override + public void test() throws Exception { + byte[] data = "I like red".getBytes("UTF-8"); + ReplaceInputStream in = new ReplaceInputStream( + new ByteArrayInputStream(data), // + new String[] {"like", "red"}, // + new String[] {"dislike", "green"} // + ); + + String result = new String(IOUtils.toByteArray(in), "UTF-8"); + assertEquals("I dislike green", result); + } + }); } static void checkArrays(TestCase test, String prefix, InputStream in,