@Test public void testDecodeVisaWithPDOL() throws Exception { DecodeSession session = new DecodeSession(); session.setTagMetaData(QVsdcTags.METADATA); session.put(EmvTags.PDOL, "9F66049F02069F03069F1A0295055F2A029A039C019F3704"); String input = "80A8000023832136000000000000001000000000000000003600000000000036120315000008E4C800"; DecodedData decoded = new GetProcessingOptionsCommandAPDUDecoder().decode(input, 0, session); assertThat(decoded.getRawData(), is("C-APDU: GPO")); List<DecodedData> children = decoded.getChildren(); List<DecodedData> expectedDecodedTTQ = QVsdcTags.METADATA .get(QVsdcTags.TERMINAL_TX_QUALIFIERS) .getDecoder() .decode("36000000", 7, new DecodeSession()); assertThat( children, hasItem( new DecodedData( QVsdcTags.TERMINAL_TX_QUALIFIERS.toString(QVsdcTags.METADATA), "36000000", 7, 11, expectedDecodedTTQ))); assertThat( children, hasItem( new DecodedData( EmvTags.UNPREDICTABLE_NUMBER.toString(EmvTags.METADATA), "0008E4C8", 36, 40))); }
@Test public void testDecodeMastercardWithoutPDOL() throws Exception { DecodeSession session = new DecodeSession(); String input = "80A8000002830000"; DecodedData decoded = new GetProcessingOptionsCommandAPDUDecoder().decode(input, 0, session); assertThat(decoded.getRawData(), is("C-APDU: GPO")); assertThat(decoded.getDecodedData(), is("No PDOL included")); assertThat(decoded.isComposite(), is(false)); }