Files
Java-8583-Util/src/test/java/j8583/TestIssue4.java
T

66 lines
2.4 KiB
Java

package j8583;
import com.solab.iso8583.IsoMessage;
import com.solab.iso8583.MessageFactory;
import com.solab.iso8583.parse.ConfigParser;
import org.junit.Assert;
import org.junit.Test;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.text.ParseException;
/**
* Tests for chochos/j8583#4.
*
* @author Enrique Zamudio
* Date: 18/01/13 10:13
*/
public class TestIssue4 {
@Test
public void testTextBitmap() throws IOException, ParseException {
MessageFactory<IsoMessage> tmf = new MessageFactory<IsoMessage>();
ConfigParser.configureFromClasspathConfig(tmf, "issue4.xml");
IsoMessage tm = tmf.newMessage(0x800);
final ByteBuffer bb = tm.writeToBuffer(2);
Assert.assertEquals("Wrong message length for new TXT",
70, bb.array().length);
Assert.assertEquals(68, bb.getShort());
MessageFactory<IsoMessage> tmfp = new MessageFactory<IsoMessage>();
ConfigParser.configureFromClasspathConfig(tmfp, "issue4.xml");
byte[] buf2 = new byte[bb.remaining()];
bb.get(buf2);
tm = tmfp.parseMessage(buf2, 0);
final ByteBuffer bbp = tm.writeToBuffer(2);
Assert.assertArrayEquals("Parsed-reencoded TXT differs from original",
bb.array(), bbp.array());
}
@Test
public void testBinaryBitmap() throws IOException, ParseException {
MessageFactory<IsoMessage> mf = new MessageFactory<IsoMessage>();
ConfigParser.configureFromClasspathConfig(mf, "issue4.xml");
IsoMessage bm = mf.getMessageTemplate(0x800);
bm.setBinaryBitmap(true);
final ByteBuffer bb = bm.writeToBuffer(2);
Assert.assertEquals("Wrong message length for new BIN", 62, bb.array().length);
Assert.assertEquals(60, bb.getShort());
MessageFactory<IsoMessage> mfp = new MessageFactory<IsoMessage>();
mfp.setUseBinaryBitmap(true);
ConfigParser.configureFromClasspathConfig(mfp, "issue4.xml");
byte[] buf2 = new byte[bb.remaining()];
bb.get(buf2);
bm = mfp.parseMessage(buf2, 0);
Assert.assertTrue("Parsed message should have binary bitmap flag set",
bm.isBinaryBitmap());
Assert.assertFalse(bm.isBinary());
final ByteBuffer bbp = bm.writeToBuffer(2);
Assert.assertArrayEquals("Parsed-reencoded BIN differs from original",
bb.array(), bbp.array());
}
}