From 1cbda9aaa999a7da55e1f7b1bc22c88cfbcd8982 Mon Sep 17 00:00:00 2001 From: Enrique Zamudio Date: Wed, 5 Mar 2014 17:13:27 -0600 Subject: [PATCH] encoding tests --- .../com/solab/iso8583/parse/TestEncoding.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/test/java/com/solab/iso8583/parse/TestEncoding.java diff --git a/src/test/java/com/solab/iso8583/parse/TestEncoding.java b/src/test/java/com/solab/iso8583/parse/TestEncoding.java new file mode 100644 index 0000000..2878929 --- /dev/null +++ b/src/test/java/com/solab/iso8583/parse/TestEncoding.java @@ -0,0 +1,34 @@ +package com.solab.iso8583.parse; + +import com.solab.iso8583.IsoValue; +import org.junit.Assert; +import org.junit.Test; + +import java.io.UnsupportedEncodingException; +import java.text.ParseException; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.not; + +/** + * Test parsing of data with different encodings. + * + * @author Enrique Zamudio + * Date: 05/03/14 16:55 + */ +public class TestEncoding { + + @Test + public void windowsToUtf8() throws UnsupportedEncodingException, ParseException { + final String data = "05ácido"; + final byte[] buf = data.getBytes("ISO-8859-1"); + final LlvarParseInfo parser = new LlvarParseInfo(); + parser.setCharacterEncoding("UTF-8"); + IsoValue field = parser.parse(1, buf, 0, null); + Assert.assertThat((String)field.getValue(), not(equalTo(data.substring(2)))); + parser.setCharacterEncoding("ISO-8859-1"); + field = parser.parse(1, buf, 0, null); + Assert.assertEquals(data.substring(2), field.getValue()); + } + +}