X-Git-Url: http://git.nikiroo.be/?p=nikiroo-utils.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Ftest_code%2FNextableInputStreamTest.java;h=51ff128e5dc97e2ff104a6fb40da84c4eb2a10d9;hp=1b0064df249726c006d7f7d5c06ba793374d2a0f;hb=4098af704dfa22ce4a60003940753c28030374fa;hpb=2e7584daaf5d2f06d326c21297a71d02dd275a35 diff --git a/src/be/nikiroo/utils/test_code/NextableInputStreamTest.java b/src/be/nikiroo/utils/test_code/NextableInputStreamTest.java index 1b0064d..51ff128 100644 --- a/src/be/nikiroo/utils/test_code/NextableInputStreamTest.java +++ b/src/be/nikiroo/utils/test_code/NextableInputStreamTest.java @@ -5,6 +5,7 @@ import java.io.InputStream; import be.nikiroo.utils.IOUtils; import be.nikiroo.utils.NextableInputStream; +import be.nikiroo.utils.NextableInputStreamStep; import be.nikiroo.utils.test.TestCase; import be.nikiroo.utils.test.TestLauncher; @@ -29,5 +30,66 @@ public class NextableInputStreamTest extends TestLauncher { } } }); + + addTest(new TestCase("Stop at 12") { + @Override + public void test() throws Exception { + byte[] expected = new byte[] { 42, 12, 0, 127 }; + InputStream bin = new ByteArrayInputStream(expected); + NextableInputStream in = new NextableInputStream(bin); + in.addStep(new NextableInputStreamStep(12)); + byte[] actual = IOUtils.toByteArray(in); + + assertEquals( + "The resulting array has not the correct number of items", + 1, actual.length); + for (int i = 0; i < actual.length; i++) { + assertEquals("Item " + i + " (0-based) is not the same", + expected[i], actual[i]); + } + } + }); + + addTest(new TestCase("Stop at 12, resume, stop again, resume") { + @Override + public void test() throws Exception { + byte[] expected = new byte[] { 42, 12, 0, 127, 12, 51, 11, 12 }; + NextableInputStream in = new NextableInputStream( + new ByteArrayInputStream(expected)); + in.addStep(new NextableInputStreamStep(12)); + + byte[] actual1 = IOUtils.toByteArray(in); + byte[] expected1 = new byte[] { 42 }; + assertEquals( + "The FIRST resulting array has not the correct number of items", + expected1.length, actual1.length); + for (int i = 0; i < actual1.length; i++) { + assertEquals("Item " + i + " (0-based) is not the same", + expected1[i], actual1[i]); + } + + assertEquals("Cannot get SECOND entry", true, in.next()); + byte[] actual2 = IOUtils.toByteArray(in); + byte[] expected2 = new byte[] { 0, 127 }; + assertEquals( + "The SECOND resulting array has not the correct number of items", + expected2.length, actual2.length); + for (int i = 0; i < actual2.length; i++) { + assertEquals("Item " + i + " (0-based) is not the same", + expected2[i], actual2[i]); + } + + assertEquals("Cannot get next THIRD entry", true, in.next()); + byte[] actual3 = IOUtils.toByteArray(in); + byte[] expected3 = new byte[] { 51, 11 }; + assertEquals( + "The THIRD resulting array has not the correct number of items", + expected3.length, actual3.length); + for (int i = 0; i < actual3.length; i++) { + assertEquals("Item " + i + " (0-based) is not the same", + expected3[i], actual3[i]); + } + } + }); } }