From d99279ec7ecf7baf9cbd474e95c1521b102f43dc Mon Sep 17 00:00:00 2001 From: Enrique Zamudio Date: Mon, 25 Nov 2013 18:26:13 -0600 Subject: [PATCH] tests for #17 --- src/test/java/j8583/TestComposites.java | 40 +++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/src/test/java/j8583/TestComposites.java b/src/test/java/j8583/TestComposites.java index 7a99536..1aff910 100644 --- a/src/test/java/j8583/TestComposites.java +++ b/src/test/java/j8583/TestComposites.java @@ -3,6 +3,9 @@ package j8583; import com.solab.iso8583.IsoType; import com.solab.iso8583.IsoValue; import com.solab.iso8583.codecs.CompositeField; +import com.solab.iso8583.parse.AlphaParseInfo; +import com.solab.iso8583.parse.LlvarParseInfo; +import com.solab.iso8583.parse.NumericParseInfo; import org.junit.Assert; import org.junit.Test; @@ -14,6 +17,10 @@ import org.junit.Test; */ public class TestComposites { + final String textData = "One 03Two00999"; + final byte[] binaryData = new byte[]{'O', 'n', 'e', ' ', ' ', 3, 'T', 'w', 'o', + 0, 9, (byte) 0x99}; + @Test public void testEncodeText() { final CompositeField f = new CompositeField(); @@ -25,7 +32,7 @@ public class TestComposites { Assert.assertEquals("One 03Two", f.encodeField(f)); f.addValue(new IsoValue(IsoType.NUMERIC, 999l, 5)); f.getValues().get(2).setCharacterEncoding("UTF-8"); - Assert.assertEquals("One 03Two00999", f.encodeField(f)); + Assert.assertEquals(textData, f.encodeField(f)); } @Test @@ -38,8 +45,35 @@ public class TestComposites { Assert.assertArrayEquals(new byte[]{'O', 'n', 'e', ' ', ' ', 3, 'T', 'w', 'o'}, f.encodeBinaryField(f)); f.addValue(new IsoValue(IsoType.NUMERIC, 999l, 5)); - Assert.assertArrayEquals(new byte[]{'O', 'n', 'e', ' ', ' ', 3, 'T', 'w', 'o', - 0,9,(byte)0x99}, f.encodeBinaryField(f)); + Assert.assertArrayEquals(binaryData, f.encodeBinaryField(f)); + } + + @Test + public void testDecodeText() { + final CompositeField dec = new CompositeField() + .addParser(new AlphaParseInfo(5)) + .addParser(new LlvarParseInfo()) + .addParser(new NumericParseInfo(5)); + final CompositeField f = dec.decodeField(textData); + Assert.assertNotNull(f); + Assert.assertEquals(3, f.getValues().size()); + Assert.assertEquals("One ", f.getValues().get(0).getValue()); + Assert.assertEquals("Two", f.getValues().get(1).getValue()); + Assert.assertEquals("00999", f.getValues().get(2).getValue()); + } + + @Test + public void testDecodeBinary() { + final CompositeField dec = new CompositeField() + .addParser(new AlphaParseInfo(5)) + .addParser(new LlvarParseInfo()) + .addParser(new NumericParseInfo(5)); + final CompositeField f = dec.decodeBinaryField(binaryData, 0, binaryData.length); + Assert.assertNotNull(f); + Assert.assertEquals(3, f.getValues().size()); + Assert.assertEquals("One ", f.getValues().get(0).getValue()); + Assert.assertEquals("Two", f.getValues().get(1).getValue()); + Assert.assertEquals(999l, f.getValues().get(2).getValue()); } }