Mercurial > hg4j
diff test/org/tmatesoft/hg/test/TestNewlineFilter.java @ 355:f2c11fe7f3e9
Newline filter shall respect whole stream when deciding whether to process line terminators, hence added stream preview functionality
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Tue, 06 Dec 2011 12:57:21 +0100 |
parents | 0f3687e79f5a |
children |
line wrap: on
line diff
--- a/test/org/tmatesoft/hg/test/TestNewlineFilter.java Thu Dec 01 05:21:40 2011 +0100 +++ b/test/org/tmatesoft/hg/test/TestNewlineFilter.java Tue Dec 06 12:57:21 2011 +0100 @@ -89,22 +89,16 @@ @Test public void testStrictMixed_CRLF_2_LF() { - try { - byte[] result = apply(NewlineFilter.createWin2Nix(false), crlf_2.getBytes()); - Assert.fail("Shall fail when eol.only-consistent is true:" + new String(result)); - } catch (RuntimeException ex) { - // fine - } + final byte[] input = crlf_2.getBytes(); + byte[] result = apply(NewlineFilter.createWin2Nix(false), input); + Assert.assertArrayEquals(input, result); } @Test public void testStrictMixed_LF_2_CRLF() { - try { - byte[] result = apply(NewlineFilter.createNix2Win(false), lf_2.getBytes()); - Assert.fail("Shall fail when eol.only-consistent is true:" + new String(result)); - } catch (RuntimeException ex) { - // fine - } + final byte[] input = lf_2.getBytes(); + byte[] result = apply(NewlineFilter.createNix2Win(false), input); + Assert.assertArrayEquals(input, result); } @Test @@ -116,6 +110,9 @@ NewlineFilter nlFilter = NewlineFilter.createWin2Nix(false); ByteBuffer input = ByteBuffer.allocate(i1.length + i2.length); ByteBuffer res = ByteBuffer.allocate(i1.length + i2.length); // at most of the original size + nlFilter.preview(ByteBuffer.wrap(i1)); + nlFilter.preview(ByteBuffer.wrap(i2)); + // input.put(i1).flip(); res.put(nlFilter.filter(input)); Assert.assertTrue("Unpocessed chars shall be left in input buffer", input.remaining() > 0); @@ -136,6 +133,11 @@ res.clear(); input.clear(); input.put(i1).put("\r\r\r".getBytes()).flip(); + // preview requred + nlFilter.preview(input); + nlFilter.preview(ByteBuffer.wrap(i2)); + // input.position(0); correctly written preview shall not affect buffer position + // res.put(nlFilter.filter(input)); Assert.assertTrue("Unpocessed chars shall be left in input buffer", input.remaining() > 0); input.compact(); @@ -179,7 +181,10 @@ } private static byte[] apply(NewlineFilter nlFilter, byte[] input) { - ByteBuffer result = nlFilter.filter(ByteBuffer.wrap(input)); + final ByteBuffer inputBuffer = ByteBuffer.wrap(input); + nlFilter.preview(inputBuffer); + // inputBuffer.position(0); correctly written filter shall not affect buffer position + ByteBuffer result = nlFilter.filter(inputBuffer); byte[] res = new byte[result.remaining()]; result.get(res); return res;