Files
Java-8583-Util/src/test/java/com/solab/iso8583/TestConfigParser.java
T
2015-02-19 18:13:15 -06:00

100 lines
4.2 KiB
Java

package com.solab.iso8583;
import org.junit.Assert;
import org.junit.Test;
import java.io.IOException;
import java.text.ParseException;
/**
* Test certain ConfigParser features.
*
* @author Enrique Zamudio
* Date: 25/11/13 18:41
*/
public class TestConfigParser {
@Test
public void testParser() throws IOException, ParseException {
MessageFactory<IsoMessage> mfact = new MessageFactory<>();
mfact.setConfigPath("config.xml");
//Headers
Assert.assertNotNull(mfact.getIsoHeader(0x800));
Assert.assertNotNull(mfact.getIsoHeader(0x810));
Assert.assertEquals(mfact.getIsoHeader(0x800), mfact.getIsoHeader(0x810));
//Templates
final IsoMessage m200 = mfact.getMessageTemplate(0x200);
Assert.assertNotNull(m200);
final IsoMessage m400 = mfact.getMessageTemplate(0x400);
Assert.assertNotNull(m400);
for (int i=2; i <89; i++) {
IsoValue<?> v = m200.getField(i);
if (v == null) {
Assert.assertFalse(m400.hasField(i));
} else {
Assert.assertTrue(m400.hasField(i));
Assert.assertEquals(v, m400.getField(i));
}
}
Assert.assertFalse(m200.hasField(90));
Assert.assertTrue(m400.hasField(90));
Assert.assertTrue(m200.hasField(102));
Assert.assertFalse(m400.hasField(102));
//Parsing guides
final String s800 = "0800201080000000000012345611251125";
final String s810 = "08102010000002000000123456112500";
IsoMessage m = mfact.parseMessage(s800.getBytes(), 0);
Assert.assertNotNull(m);
Assert.assertTrue(m.hasField(3));
Assert.assertTrue(m.hasField(12));
Assert.assertTrue(m.hasField(17));
Assert.assertFalse(m.hasField(39));
m = mfact.parseMessage(s810.getBytes(), 0);
Assert.assertNotNull(m);
Assert.assertTrue(m.hasField(3));
Assert.assertTrue(m.hasField(12));
Assert.assertFalse(m.hasField(17));
Assert.assertTrue(m.hasField(39));
}
@Test //issue 34
public void testMultilevelExtendParseGuides() throws IOException, ParseException {
MessageFactory<IsoMessage> mfact = new MessageFactory<>();
mfact.setConfigPath("issue34.xml");
//Parse a 200
final String m200 = "0200422000000880800001X1231235959123456101010202020TERMINAL484";
final String m210 = "0210422000000A80800001X123123595912345610101020202099TERMINAL484";
final String m400 = "0400422000000880800401X1231235959123456101010202020TERMINAL484001X";
final String m410 = "0410422000000a80800801X123123595912345610101020202099TERMINAL484001X";
IsoMessage m = mfact.parseMessage(m200.getBytes(), 0);
Assert.assertNotNull(m);
Assert.assertEquals("X", m.getObjectValue(2));
Assert.assertEquals("123456", m.getObjectValue(11));
Assert.assertEquals("TERMINAL", m.getObjectValue(41));
Assert.assertEquals("484", m.getObjectValue(49));
m = mfact.parseMessage(m210.getBytes(), 0);
Assert.assertNotNull(m);
Assert.assertEquals("X", m.getObjectValue(2));
Assert.assertEquals("123456", m.getObjectValue(11));
Assert.assertEquals("TERMINAL", m.getObjectValue(41));
Assert.assertEquals("484", m.getObjectValue(49));
Assert.assertEquals("99", m.getObjectValue(39));
m = mfact.parseMessage(m400.getBytes(), 0);
Assert.assertNotNull(m);
Assert.assertEquals("X", m.getObjectValue(2));
Assert.assertEquals("123456", m.getObjectValue(11));
Assert.assertEquals("TERMINAL", m.getObjectValue(41));
Assert.assertEquals("484", m.getObjectValue(49));
Assert.assertEquals("X", m.getObjectValue(62));
m = mfact.parseMessage(m410.getBytes(), 0);
Assert.assertNotNull(m);
Assert.assertEquals("X", m.getObjectValue(2));
Assert.assertEquals("123456", m.getObjectValue(11));
Assert.assertEquals("TERMINAL", m.getObjectValue(41));
Assert.assertEquals("484", m.getObjectValue(49));
Assert.assertEquals("99", m.getObjectValue(39));
Assert.assertEquals("X", m.getObjectValue(61));
}
}