Parser { protected BigInteger parseBigIntField(int length) { if (length == 0) { throw new ParserException("Cannot parse BigInt of size 0"); } return new BigInteger(1, parseByteArrayField(length)); } Parser(int startposition, byte[] array); int getPointer(); void setPointer(int pointer); int getStartPoint(); abstract T parse();  }
@Test public void testParseBigIntField() { BigInteger result = parser.parseBigIntField(1); assertTrue(result.intValue() == 0); result = parser.parseBigIntField(2); assertTrue(result.intValue() == 0x0102); result = middleParser.parseBigIntField(1); assertTrue(result.intValue() == 3); result = middleParser.parseBigIntField(2); assertTrue(result.intValue() == 0x0405); }