package org.jpos.jposext.isomsgaction.service.support;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import junit.framework.TestCase;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.jposext.isomsgaction.model.validation.ValidationError;
import org.jpos.jposext.isomsgaction.service.IISOMsgAction;
public class ISOMsgActionIfValidationErrorsTest extends TestCase {
private ISOMsgActionIfValidationErrors action;
private Map<String, Object> ctx;
private List<ValidationError> validationErrors;
protected void setUp() throws Exception {
super.setUp();
action = new ISOMsgActionIfValidationErrors();
action.setIsoMsgCommonInfoProvider(new ISOMsgCommonInfoProviderImpl());
action.setChilds(new ArrayList<IISOMsgAction>());
action.add(new IISOMsgAction() {
/* (non-Javadoc)
* @see org.jpos.jposext.isomsgaction.service.IISOMsgAction#process(org.jpos.iso.ISOMsg[], java.util.Map)
*/
public void process(ISOMsg[] msg, Map<String, Object> ctx)
throws ISOException {
putSomeFlag(ctx);
}
/* (non-Javadoc)
* @see org.jpos.jposext.isomsgaction.service.IISOMsgAction#process(org.jpos.iso.ISOMsg, java.util.Map)
*/
public void process(ISOMsg msg, Map<String, Object> ctx)
throws ISOException {
putSomeFlag(ctx);
}
private void putSomeFlag(Map<String, Object> ctx) {
ctx.put("conditionFulfilled", "conditionFulfilled");
}
});
ctx = new HashMap<String, Object>();
}
public void testProcess_OneValidationErrorsArePresent() throws ISOException {
validationErrors = new ArrayList<ValidationError>();
validationErrors.add(new ValidationError());
ctx.put(ISOMsgActionCheckField.VALIDATION_ERRORS_LIST_ATTRNAME, validationErrors);
action.process((ISOMsg) null, ctx);
assertNotNull(ctx.get("conditionFulfilled"));
}
public void testProcess_ManyValidationErrorsArePresent() throws ISOException {
validationErrors = new ArrayList<ValidationError>();
validationErrors.add(new ValidationError());
validationErrors.add(new ValidationError());
validationErrors.add(new ValidationError());
validationErrors.add(new ValidationError());
ctx.put(ISOMsgActionCheckField.VALIDATION_ERRORS_LIST_ATTRNAME, validationErrors);
action.process((ISOMsg) null, ctx);
assertNotNull(ctx.get("conditionFulfilled"));
}
public void testProcess_ValidationErrorsListPresentButEmpty() throws ISOException {
validationErrors = new ArrayList<ValidationError>();
ctx.put(ISOMsgActionCheckField.VALIDATION_ERRORS_LIST_ATTRNAME, validationErrors);
action.process((ISOMsg) null, ctx);
assertNull(ctx.get("conditionFulfilled"));
}
public void testProcess_ValidationErrorsListPresentButNull() throws ISOException {
validationErrors = null;
ctx.put(ISOMsgActionCheckField.VALIDATION_ERRORS_LIST_ATTRNAME, validationErrors);
action.process((ISOMsg) null, ctx);
assertNull(ctx.get("conditionFulfilled"));
}
public void testProcess_ValidationErrorsListNotPresent() throws ISOException {
action.process((ISOMsg) null, ctx);
assertNull(ctx.get("conditionFulfilled"));
}
}