package org.jpos.jposext.isomsgaction.service.support;
import java.text.ParseException;
import java.util.HashMap;
import java.util.Map;
import junit.framework.TestCase;
import org.jpos.iso.ISOBinaryField;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
public class ISOMsgActionSetStringValueTest extends TestCase {
private ISOMsgActionSetStringValue action;
private ISOMsg msg;
@Override
protected void setUp() throws Exception {
super.setUp();
action = new ISOMsgActionSetStringValue();
action.setIsoMsgCommonInfoProvider(new ISOMsgCommonInfoProviderImpl());
msg = new ISOMsg();
ISOMsgTestHelper.populateMsg(msg, new String[][] {
new String[] { "1", "valeur1_source" },
new String[] { "2", "valeur2_source" },
new String[] { "3", "valeur3_source" },
new String[] { "4", "valeur4_source" } });
}
public void testSimple() throws ISOException, ParseException {
String value = "toto";
action.setIdPath("4");
action.setValue(value);
action.process(msg, null);
assertEquals(value, msg.getString(4));
}
public void testAvecValeurDansContexte() throws ISOException, ParseException {
String value = "toto";
String valueBeanPath = "valueProp";
Map<String, Object> ctx = new HashMap<String, Object>();
ctx.put(valueBeanPath, new String("valeur p�cho dans le contexte"));
action.setIdPath("4");
action.setValue(value);
action.setValueBeanPath("ctx(" + valueBeanPath + ")");
action.process(msg, ctx);
assertEquals("valeur p�cho dans le contexte", msg.getString(4));
}
public void testAvecValeurIntrouvableDansContexte() throws ISOException, ParseException {
String value = "toto";
Map<String, Object> ctx = new HashMap<String, Object>();
ctx.put("valueProp", new String("valeur p�cho dans le contexte"));
action.setIdPath("4");
action.setValue(value);
action.setValueBeanPath("ctx(proprieteInexistante)");
action.process(msg, ctx);
assertEquals("toto", msg.getString(4));
}
public void testAvecfixedLengthPlusLongue() throws ISOException, ParseException {
String value = "toto";
action.setIdPath("4");
action.setValue(value);
action.setFixedLength(10);
action.process(msg, null);
assertEquals("toto ", msg.getString(4));
}
public void testAvecfixedLengthPlusCourte() throws ISOException, ParseException {
String value = "toto";
action.setIdPath("4");
action.setValue(value);
action.setFixedLength(2);
action.process(msg, null);
assertEquals("to", msg.getString(4));
}
public void testSimpleBinary() throws ISOException, ParseException {
String value = "1F0A";
action.setIdPath("4");
action.setValue(value);
action.setBinary(true);
action.process(msg, null);
assertEquals("1F0A", msg.getString(4));
assertTrue(msg.getComponent(4) instanceof ISOBinaryField);
}
}