/* * jPOS Project [http://jpos.org] * Copyright (C) 2000-2017 jPOS Software SRL * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.jpos.iso; import junit.framework.TestCase; /** * @author joconnor */ public class IFA_BINARYTest extends TestCase { public void testPack() throws Exception { ISOBinaryField field = new ISOBinaryField(12, new byte[] {0x12, 0x34}); IFA_BINARY packager = new IFA_BINARY(2, "Should be 1234"); TestUtils.assertEquals("1234".getBytes(), packager.pack(field)); } public void testPackWrongLength() throws Exception { try { ISOBinaryField field = new ISOBinaryField(12, new byte[] {0x12, 0x34}); IFA_BINARY packager = new IFA_BINARY(3, "Should be 1234"); packager.pack(field); fail("Packing 2 bytes into 3 should throw an exception"); } catch (Exception ignored) { // Exception expected - correct behaviour } } public void testUnpack() throws Exception { byte[] raw = "1234".getBytes(); IFA_BINARY packager = new IFA_BINARY(2, "Should be 1234"); ISOBinaryField field = new ISOBinaryField(12); packager.unpack(field, raw, 0); TestUtils.assertEquals(new byte[] {0x12, 0x34}, (byte[])field.getValue()); } public void testReversability() throws Exception { byte[] origin = new byte[] {0x12, 0x34, 0x56, 0x78}; ISOBinaryField f = new ISOBinaryField(12, origin); IFA_BINARY packager = new IFA_BINARY(4, "Should be 12345678"); ISOBinaryField unpack = new ISOBinaryField(12); packager.unpack(unpack, packager.pack(f), 0); TestUtils.assertEquals(origin, (byte[])unpack.getValue()); } }