package com.github.devnied.emvnfccard.utils; import java.text.SimpleDateFormat; import org.fest.assertions.Assertions; import org.junit.Test; import com.github.devnied.emvnfccard.model.EmvCard; import com.github.devnied.emvnfccard.model.enums.ServiceCode1Enum; import com.github.devnied.emvnfccard.model.enums.ServiceCode2Enum; import com.github.devnied.emvnfccard.model.enums.ServiceCode3Enum; import fr.devnied.bitlib.BytesUtils; public class TrackUtilsTest { @Test public void track2Test() { EmvCard card = new EmvCard(); TrackUtils.extractTrack2Data(card, BytesUtils.fromString("57 13 55 66 88 77 66 55 66 77 D1 50 62 01 69 28 07 65 90 00 0F")); Assertions.assertThat(card).isNotNull(); Assertions.assertThat(card.getCardNumber()).isEqualTo("5566887766556677"); SimpleDateFormat sdf = new SimpleDateFormat("MM/yyyy"); Assertions.assertThat(sdf.format(card.getExpireDate())).isEqualTo("06/2015"); Assertions.assertThat(card.getService()).isNotNull(); Assertions.assertThat(card.getService().getServiceCode1()).isEqualTo(ServiceCode1Enum.INTERNATIONNAL_ICC); Assertions.assertThat(card.getService().getServiceCode1().getInterchange()).isNotNull(); Assertions.assertThat(card.getService().getServiceCode1().getTechnology()).isNotNull(); Assertions.assertThat(card.getService().getServiceCode2()).isEqualTo(ServiceCode2Enum.NORMAL); Assertions.assertThat(card.getService().getServiceCode2().getAuthorizationProcessing()).isNotNull(); Assertions.assertThat(card.getService().getServiceCode3()).isEqualTo(ServiceCode3Enum.NO_RESTRICTION); Assertions.assertThat(card.getService().getServiceCode3().getAllowedServices()).isNotNull(); Assertions.assertThat(card.getService().getServiceCode3().getPinRequirements()).isNotNull(); } @Test public void track2Test2() { EmvCard card = new EmvCard(); TrackUtils.extractTrack2Data(card, BytesUtils.fromString("57 15 55 55 55 66 88 77 66 55 66 7D 11 05 62 01 69 28 07 65 90 00 0F")); Assertions.assertThat(card).isNotNull(); Assertions.assertThat(card.getCardNumber()).isEqualTo("5555556688776655667"); SimpleDateFormat sdf = new SimpleDateFormat("MM/yyyy"); Assertions.assertThat(sdf.format(card.getExpireDate())).isEqualTo("05/2011"); Assertions.assertThat(card.getService()).isNotNull(); Assertions.assertThat(card.getService().getServiceCode1()).isEqualTo(ServiceCode1Enum.NATIONAL_ICC); Assertions.assertThat(card.getService().getServiceCode2()).isEqualTo(ServiceCode2Enum.BY_ISSUER); Assertions.assertThat(card.getService().getServiceCode3()).isEqualTo(ServiceCode3Enum.NO_RESTRICTION_PIN_REQUIRED); } @Test public void track2TestNullService() { EmvCard card = new EmvCard(); TrackUtils.extractTrack2Data(card, BytesUtils.fromString("57 15 55 55 55 66 88 77 66 55 66 7D 11 05 FF F1 69 28 07 65 90 00 0F")); Assertions.assertThat(card).isNotNull(); Assertions.assertThat(card.getCardNumber()).isEqualTo("5555556688776655667"); SimpleDateFormat sdf = new SimpleDateFormat("MM/yyyy"); Assertions.assertThat(sdf.format(card.getExpireDate())).isEqualTo("05/2011"); Assertions.assertThat(card.getService()).isNotNull(); Assertions.assertThat(card.getService().getServiceCode1()).isNull(); Assertions.assertThat(card.getService().getServiceCode2()).isNull(); Assertions.assertThat(card.getService().getServiceCode3()).isNull(); } }