From 27f13310962bdd006b2952b7ecabb3127cfca5e2 Mon Sep 17 00:00:00 2001 From: Enrique Zamudio Date: Tue, 17 Apr 2018 12:08:09 -0500 Subject: [PATCH] Test timezones in new messages #106 --- .../java/com/solab/iso8583/TestTimezones.java | 52 +++++++++++++++++++ src/test/resources/timezones.xml | 15 ++++++ 2 files changed, 67 insertions(+) create mode 100644 src/test/java/com/solab/iso8583/TestTimezones.java create mode 100644 src/test/resources/timezones.xml diff --git a/src/test/java/com/solab/iso8583/TestTimezones.java b/src/test/java/com/solab/iso8583/TestTimezones.java new file mode 100644 index 0000000..65597ce --- /dev/null +++ b/src/test/java/com/solab/iso8583/TestTimezones.java @@ -0,0 +1,52 @@ +package com.solab.iso8583; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.IOException; +import java.text.ParseException; +import java.util.TimeZone; + +/** + * Test timezone assignment in date/time fields. + * + * @author Enrique Zamudio + * Date: 4/17/18 11:50 AM + */ +public class TestTimezones { + + private final TimeZone utc = TimeZone.getTimeZone("UTC"); + private final TimeZone gmt5 = TimeZone.getTimeZone("GMT-500"); + private MessageFactory mf; + + @Before + public void init() throws IOException { + mf = new MessageFactory<>(); + mf.setCharacterEncoding("UTF-8"); + mf.setConfigPath("timezones.xml"); + mf.setAssignDate(true); + } + + @Test + public void testTemplate() { + IsoMessage t = mf.getMessageTemplate(0x100); + Assert.assertEquals(utc, t.getField(7).getTimeZone()); + Assert.assertEquals(gmt5, t.getField(12).getTimeZone()); + Assert.assertNull(t.getField(13).getTimeZone()); + t = mf.newMessage(0x100); + Assert.assertTrue(t.hasField(7)); + Assert.assertEquals(utc, t.getField(7).getTimeZone()); + } + + @Test + public void testParsingGuide() throws ParseException, IOException { + String trama = "011002180000000000001231112233112233112233"; + IsoMessage m = mf.parseMessage(trama.getBytes(), 0); + Assert.assertTrue(m.hasEveryField(7, 12, 13)); + Assert.assertEquals(utc, m.getField(7).getTimeZone()); + Assert.assertEquals(gmt5, m.getField(12).getTimeZone()); + Assert.assertNull(m.getField(13).getTimeZone()); + } + +} diff --git a/src/test/resources/timezones.xml b/src/test/resources/timezones.xml new file mode 100644 index 0000000..07130da --- /dev/null +++ b/src/test/resources/timezones.xml @@ -0,0 +1,15 @@ + + + + + + + + + + +