@Test public void testDump1() throws Throwable { CardHolder cardHolder = new CardHolder("testCardHolderPan", "4Cha"); cardHolder.setTrack1(null); cardHolder.setSecurityCode("testCardHolderSecurityCode"); cardHolder.setTrailer("testCardHolderTrailler"); PrintStream p = new PrintStream(new ByteArrayOutputStream()); cardHolder.dump(p, "testCardHolderIndent"); assertTrue("Test completed without Exception", true); }
/** * dumps CardHolder basic information<br> * by default we do not dump neither track1/2 nor securityCode * for security reasons. * @param p a PrintStream usually suplied by Logger * @param indent ditto * @see org.jpos.util.Loggeable */ public void dump (PrintStream p, String indent) { p.print (indent + "<CardHolder"); if (hasTrack1()) p.print (" trk1=\"true\""); if (hasTrack2()) p.print (" trk2=\"true\""); if (hasSecurityCode()) p.print (" sec=\"true\""); if (isExpired()) p.print (" expired=\"true\""); p.println (">"); p.println (indent + " " + "<pan>" +pan +"</pan>"); p.println (indent + " " + "<exp>" +exp +"</exp>"); p.println (indent + "</CardHolder>"); }
public static boolean isValidCRC (String p) { int i, crc; int odd = p.length() % 2; for (i=crc=0; i<p.length(); i++) { char c = p.charAt(i); if (!Character.isDigit (c)) return false; c = (char) (c - '0'); if (i % 2 == odd) crc+= c*2 >= 10 ? c*2 -9 : c*2; else crc+=c; } return crc % 10 == 0; }
@Test public void testHasTrack21() throws Throwable { CardHolder cardHolder = new CardHolder(); cardHolder.setPAN("testCardHolderPan"); cardHolder.setEXP("9913"); boolean result = cardHolder.hasTrack2(); assertFalse("result", result); }
/** * Construct a CardHolder based on content received on * field 35 (track2) or field 2 (PAN) + field 14 (EXP) * @param m an ISOMsg * @throws InvalidCardException */ public CardHolder (ISOMsg m) throws InvalidCardException { super(); if (m.hasField(35)) parseTrack2((String) m.getValue(35)); else if (m.hasField(2)) { setPAN((String) m.getValue(2)); if (m.hasField(14)) setEXP((String) m.getValue(14)); } else { throw new InvalidCardException("required fields not present"); } if (m.hasField(45)) { setTrack1((String) m.getValue(45)); } if (m.hasField(55)) { setSecurityCode(m.getString(55)); } }
@Test public void testDump5() throws Throwable { CardHolder cardHolder = new CardHolder(); cardHolder.setTrack1("testCardHolderTrack1"); cardHolder.setEXP("9913"); PrintStream p = new PrintStream(new ByteArrayOutputStream(), true, "UTF-8"); cardHolder.dump(p, "testCardHolderIndent"); assertTrue("Test completed without Exception", true); }
@Test public void testIsExpired2() throws Throwable { CardHolder cardHolder = new CardHolder(); cardHolder.setEXP("99-8"); boolean result = cardHolder.isExpired(); assertTrue("result", result); }
@Test public void testDump4() throws Throwable { PrintStream p = new PrintStream(new ByteArrayOutputStream()); CardHolder cardHolder = new CardHolder(); cardHolder.setEXP("9912"); cardHolder.setSecurityCode("testCardHolderSecurityCode"); cardHolder.dump(p, "testCardHolderIndent"); assertTrue("Test completed without Exception", true); }
@Test public void testSetPAN() throws Throwable { CardHolder cardHolder = new CardHolder(); cardHolder.setPAN("10Characte"); assertEquals("cardHolder.pan", "10Characte", cardHolder.pan); }
@Test public void testSetEXP() throws Throwable { CardHolder cardHolder = new CardHolder(); cardHolder.setEXP("9913"); assertEquals("cardHolder.exp", "9913", cardHolder.exp); }
@Test public void testParseTrack2() throws Throwable { CardHolder cardHolder = new CardHolder(); cardHolder.parseTrack2("uD|kOAf(Ls@RaT\f4_3[l\f#mF*'7-yeK^S?qBK ~G"); assertEquals("cardHolder.pan", "u", cardHolder.pan); assertEquals("cardHolder.exp", "|kOA", cardHolder.exp); assertEquals("cardHolder.trailler", "f(Ls@RaT\f4_3[l\f#mF*'7-yeK^S?qBK ~G", cardHolder.trailer); }
@Test public void testHasSecurityCode() throws Throwable { CardHolder cardHolder = new CardHolder("k'X9|DH:!;uQ<kG8!P?- ,\"Y!u`r;jB^)>3AbS9,"); cardHolder.setSecurityCode("testCardHolderSecurityCode"); boolean result = cardHolder.hasSecurityCode(); assertTrue("result", result); }
@Test public void testHasTrack1() throws Throwable { CardHolder cardHolder = new CardHolder(); cardHolder.setTrack1("testCardHolderTrack1"); boolean result = cardHolder.hasTrack1(); assertTrue("result", result); }
@Test public void testHasTrack22() throws Throwable { CardHolder cardHolder = new CardHolder(); cardHolder.setPAN("testCardHolderPan"); boolean result = cardHolder.hasTrack2(); assertFalse("result", result); }
@Test public void testDump() throws Throwable { CardHolder cardHolder = new CardHolder("testCardHolderPan", "4Cha"); cardHolder.setSecurityCode("testCardHolderSecurityCode"); PrintStream p = new PrintStream(new ByteArrayOutputStream(), true, "UTF-8"); cardHolder.dump(p, "testCardHolderIndent"); assertTrue("Test completed without Exception", true); }
@Test public void testHasTrack2() throws Throwable { boolean result = new CardHolder("k'X9|DH:!;uQ<kG8!P?- ,\"Y!u`r;jB^)>3AbS9,").hasTrack2(); assertTrue("result", result); }
@Test public void testGetBIN() throws Throwable { CardHolder cardHolder = new CardHolder(); cardHolder.setPAN("testCardHolderPan"); String result = cardHolder.getBIN(); assertEquals("result", "testCa", result); }
@Test public void testGetServiceCode() throws Throwable { CardHolder cardHolder = new CardHolder(); cardHolder.parseTrack2(" trk1=\"true\""); String result = cardHolder.getServiceCode(); assertEquals("result", " ", result); }
@Test public void testGetPAN() throws Throwable { CardHolder cardHolder = new CardHolder(); cardHolder.setPAN("testCardHolderPan"); String result = cardHolder.getPAN(); assertEquals("result", "testCardHolderPan", result); }