package org.jpos.jposext.isomsgaction.service.support;
import java.math.BigInteger;
import junit.framework.TestCase;
import org.jpos.iso.ISOBinaryField;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
public class ISOMsgActionSetRandomNumberTest extends TestCase {
private ISOMsgActionSetRandomNumber action;
private ISOMsg msg;
private ISOMsg submsg1;
@Override
protected void setUp() throws Exception {
super.setUp();
action = new ISOMsgActionSetRandomNumber();
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" } });
submsg1 = new ISOMsg(5);
ISOMsgTestHelper.populateMsg(submsg1, new String[][] {
new String[] { "1", "sub1_valeur1" },
new String[] { "2", "sub1_valeur2" },
new String[] { "3", "sub1_valeur3" } });
msg.set(submsg1);
}
public void testGenerationRandom1() throws ISOException {
action.setIdPath("3");
action.setNbDigits(6);
String lastGenNum = null;
for (int i = 0; i <= 100; i++) {
action.process(msg, null);
String genNum = msg.getString(3);
assertNotSame(lastGenNum, genNum);
assertEquals(6, genNum.length());
BigInteger bigInteger = new BigInteger(genNum);
assertTrue(bigInteger.intValue() >= 0);
assertTrue(bigInteger.intValue() <= 999999);
lastGenNum = genNum;
}
}
public void testGenerationRandom2() throws ISOException {
action.setIdPath("5.1");
action.setNbDigits(3);
String lastGenNum = null;
for (int i = 0; i <= 100; i++) {
action.process(msg, null);
String genNum = submsg1.getString(1);
assertNotSame(lastGenNum, genNum);
assertEquals(3, genNum.length());
BigInteger bigInteger = new BigInteger(genNum);
assertTrue(bigInteger.intValue() >= 0);
assertTrue(bigInteger.intValue() <= 999);
lastGenNum = genNum;
}
}
public void testGenerationRandom1_Binary() throws ISOException {
action.setIdPath("3");
action.setNbDigits(6);
action.setBinary(true);
String lastGenNum = null;
for (int i = 0; i <= 100; i++) {
action.process(msg, null);
String genNum = msg.getString(3);
assertTrue(msg.getComponent(3) instanceof ISOBinaryField);
assertNotSame(lastGenNum, genNum);
assertEquals(6, genNum.length());
BigInteger bigInteger = new BigInteger(genNum);
assertTrue(bigInteger.intValue() >= 0);
assertTrue(bigInteger.intValue() <= 999999);
lastGenNum = genNum;
}
}
}