package org.jpos.jposext.isomsgaction.helper; import junit.framework.TestCase; import org.jpos.iso.ISOException; import org.jpos.iso.ISOField; import org.jpos.iso.ISOMsg; /** * @author dgrandemange * */ public class ISOMsgHelperTest extends TestCase { private ISOMsg msg; private ISOField cmp1; private ISOField cmp2; private ISOField cmp3; private ISOMsg submsglvl1; private ISOField cmp4_1; private ISOField cmp4_2; private ISOField cmp4_3; private ISOField cmp4_0x10; private ISOMsg submsglvl2; private ISOField cmp4_4_1; private ISOField cmp4_4_2; private ISOField cmp4_4_3; @Override protected void setUp() throws Exception { super.setUp(); msg = new ISOMsg(); cmp1 = new ISOField(1,"1"); msg.set(cmp1); cmp2 = new ISOField(2,"2"); msg.set(cmp2); cmp3 = new ISOField(3,"3"); msg.set(cmp3); submsglvl1 = new ISOMsg(4); cmp4_1 = new ISOField(1,"4_1"); submsglvl1.set(cmp4_1); cmp4_2 = new ISOField(2,"4_2"); submsglvl1.set(cmp4_2); cmp4_3 = new ISOField(3,"4_3"); submsglvl1.set(cmp4_3); cmp4_0x10 = new ISOField(16,"4_0x10"); submsglvl1.set(cmp4_0x10); msg.set(submsglvl1); submsglvl2 = new ISOMsg(4); cmp4_4_1 = new ISOField(1,"4_4_1"); submsglvl2.set(cmp4_4_1); cmp4_4_2 = new ISOField(2,"4_4_2"); submsglvl2.set(cmp4_4_2); cmp4_4_3 = new ISOField(3,"4_4_3"); submsglvl2.set(cmp4_4_3); submsglvl1.set(submsglvl2); } public void testGetComponent() throws ISOException { assertEquals(cmp1, ISOMsgHelper.getComponent(msg, "1")); assertEquals(cmp2, ISOMsgHelper.getComponent(msg, "2")); assertEquals(cmp3, ISOMsgHelper.getComponent(msg, "3")); assertEquals(submsglvl1, ISOMsgHelper.getComponent(msg, "4")); assertEquals(cmp4_1, ISOMsgHelper.getComponent(msg, "4.1")); assertEquals(cmp4_2, ISOMsgHelper.getComponent(msg, "4.2")); assertEquals(cmp4_3, ISOMsgHelper.getComponent(msg, "4.3")); assertEquals(cmp4_0x10, ISOMsgHelper.getComponent(msg, "4.0x10")); assertEquals(submsglvl2, ISOMsgHelper.getComponent(msg, "4.4")); assertEquals(cmp4_4_1, ISOMsgHelper.getComponent(msg, "4.4.1")); assertEquals(cmp4_4_2, ISOMsgHelper.getComponent(msg, "4.4.2")); assertEquals(cmp4_4_3, ISOMsgHelper.getComponent(msg, "4.4.3")); } public void testGetComponent_SpecialDelimChar() throws ISOException { assertEquals(cmp1, ISOMsgHelper.getComponent(msg, "1", "-")); assertEquals(cmp4_2, ISOMsgHelper.getComponent(msg, "4-0x2", "-")); assertEquals(cmp4_4_3, ISOMsgHelper.getComponent(msg, "4-4-3", "-")); } public void testSetComponent() throws ISOException { ISOField replacementCmp2 = new ISOField(2, "replaced"); ISOMsgHelper.setComponent(msg, "2", replacementCmp2); assertEquals(replacementCmp2, ISOMsgHelper.getComponent(msg, "2")); ISOField replacementCmp4_3 = new ISOField(3, "replaced"); ISOMsgHelper.setComponent(msg, "4.0x3", replacementCmp4_3); assertEquals(replacementCmp4_3, ISOMsgHelper.getComponent(msg, "4.3")); ISOField replacementCmp4_4_1 = new ISOField(1, "replaced"); ISOMsgHelper.setComponent(msg, "4.4.1", replacementCmp4_4_1); assertEquals(replacementCmp4_4_1, ISOMsgHelper.getComponent(msg, "4.4.1")); } public void testGetValue() throws ISOException { assertEquals("3", ISOMsgHelper.getStringValue(msg, "3")); assertEquals(null, ISOMsgHelper.getStringValue(msg, "50")); assertEquals("4_2", ISOMsgHelper.getStringValue(msg, "4.0x2")); assertEquals(null, ISOMsgHelper.getStringValue(msg, "4.50")); assertEquals("4_4_1", ISOMsgHelper.getStringValue(msg, "4.4.1")); assertEquals(null, ISOMsgHelper.getStringValue(msg, "4.4.50")); } public void testSetValue() throws ISOException { String valueChamp3ToSet = "replaced value champ 3 present"; ISOMsgHelper.setValue(msg, "3", valueChamp3ToSet); assertEquals(valueChamp3ToSet, msg.getValue(3)); String valueChamp50ToSet = "replaced value champ 50 non present"; ISOMsgHelper.setValue(msg, "50", valueChamp50ToSet); assertEquals(valueChamp50ToSet, msg.getValue(50)); String valueChamp4_2ToSet = "replaced value champ 4_2 present"; ISOMsgHelper.setValue(msg, "4.0x2", valueChamp4_2ToSet); assertEquals(valueChamp4_2ToSet, submsglvl1.getValue(2)); String valueChamp4_50ToSet = "replaced value champ 4_50 non present"; ISOMsgHelper.setValue(msg, "4.50", valueChamp4_50ToSet); assertEquals(valueChamp4_50ToSet, submsglvl1.getValue(50)); String valueChamp4_4_1ToSet = "replaced value champ 4_4_1 present"; ISOMsgHelper.setValue(msg, "4.4.1", valueChamp4_4_1ToSet); assertEquals(valueChamp4_4_1ToSet, submsglvl2.getValue(1)); String valueChamp4_4_50ToSet = "replaced value champ 4_4_50 non present"; ISOMsgHelper.setValue(msg, "4.4.50", valueChamp4_4_50ToSet); assertEquals(valueChamp4_4_50ToSet, submsglvl2.getValue(50)); } public void testSetValue_FulfilledConditionRequired() throws ISOException { String valueChamp3ToSet = "replaced value champ 3 present"; ISOMsgHelper.setValue(msg, "3", valueChamp3ToSet, new ISOMsgHelper.IFulfillCondition() { /* (non-Javadoc) * @see org.jpos.jposext.isomsgaction.helper.ISOMsgHelper.IFulfillCondition#isConditionFulfilled(org.jpos.iso.ISOMsg, int) */ public boolean isConditionFulfilled(ISOMsg msg, int id) { return false; } }); assertNotSame(valueChamp3ToSet, msg.getValue(3)); assertEquals(cmp3.getValue(), msg.getValue(3)); ISOMsgHelper.setValue(msg, "0x3", valueChamp3ToSet, new ISOMsgHelper.IFulfillCondition() { /* (non-Javadoc) * @see org.jpos.jposext.isomsgaction.helper.ISOMsgHelper.IFulfillCondition#isConditionFulfilled(org.jpos.iso.ISOMsg, int) */ public boolean isConditionFulfilled(ISOMsg msg, int id) { return true; } }); assertEquals(valueChamp3ToSet, msg.getValue(3)); } public void testUnsetValue() throws ISOException { ISOMsgHelper.unsetValue(msg, "3"); assertTrue(msg.hasField(1)); assertTrue(msg.hasField(2)); assertFalse(msg.hasField(3)); assertTrue(msg.hasField(4)); ISOMsgHelper.unsetValue(msg, "4.0x2"); assertTrue(submsglvl1.hasField(1)); assertFalse(submsglvl1.hasField(2)); assertTrue(submsglvl1.hasField(3)); assertTrue(submsglvl1.hasField(4)); ISOMsgHelper.unsetValue(msg, "4.4.1"); assertFalse(submsglvl2.hasField(1)); assertTrue(submsglvl2.hasField(2)); assertTrue(submsglvl2.hasField(3)); } }