Files
Java-8583-Util/src/test/java/j8583/SimpleMessageTests.java
T
2010-11-26 01:12:39 +00:00

76 lines
2.2 KiB
Java

package j8583;
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import org.junit.Before;
import org.junit.Test;
import com.solab.iso8583.IsoMessage;
import com.solab.iso8583.IsoType;
import com.solab.iso8583.MessageFactory;
/** These are very simple tests for creating and manipulating messages.
*
* @author Enrique Zamudio
*/
public class SimpleMessageTests {
private MessageFactory mf;
@Before
public void init() throws IOException {
mf = new MessageFactory();
mf.setCustomField(48, new CustomField48());
mf.setConfigPath("config.xml");
}
/** Creates a new message and checks that it has all the fields included in the config. */
@Test
public void testCreation() {
IsoMessage iso = mf.newMessage(0x200);
assert iso.getType() == 0x200;
assert iso.getField(3).getType() == IsoType.NUMERIC && ((Number)iso.getObjectValue(3)).intValue() == 650000;
assert iso.getField(32).getType() == IsoType.LLVAR;
assert iso.getField(35).getType() == IsoType.LLVAR;
assert iso.getField(43).getType() == IsoType.ALPHA && ((String)iso.getObjectValue(43)).length() == 40;
assert iso.getField(48).getType() == IsoType.LLLVAR && iso.getObjectValue(48) instanceof CustomField48;
assert iso.getField(49).getType() == IsoType.ALPHA;
assert iso.getField(60).getType() == IsoType.LLLVAR;
assert iso.getField(61).getType() == IsoType.LLLVAR;
assert iso.getField(100).getType() == IsoType.LLVAR;
assert iso.getField(102).getType() == IsoType.LLVAR;
for (int i = 4; i < 32; i++) {
assert !iso.hasField(i);
}
for (int i = 36; i < 48; i++) {
assert !iso.hasField(i);
}
for (int i = 50; i < 60; i++) {
assert !iso.hasField(i);
}
for (int i = 62; i < 100; i++) {
assert !iso.hasField(i);
}
for (int i = 103; i < 128; i++) {
assert !iso.hasField(i);
}
}
/** Parses a message from a file and checks the fields. */
@Test
public void testParsing() throws IOException, ParseException {
InputStream ins = getClass().getResourceAsStream("example.txt");
byte[] buf = new byte[400];
int pos = 0;
while (ins.available() > 0) {
buf[pos++] = (byte)ins.read();
}
ins.close();
IsoMessage iso = mf.parseMessage(buf, mf.getIsoHeader(0x210).length());
assert iso.getType() == 0x210;
}
}