From 67b2460fb36d1ebcc4add7d9835eed8387bb973d Mon Sep 17 00:00:00 2001 From: ivnmrtk Date: Thu, 17 Aug 2023 10:05:05 +0300 Subject: [PATCH 1/4] implemented handling less than 6 digit bins /OPS-337 --- .../vality/binbase/config/BatchConfig.java | 2 - .../java/dev/vality/binbase/util/PanUtil.java | 6 +- .../dev/vality/binbase/util/PanUtilTest.java | 6 +- .../data/binbase/case1/V6_binbase_1.8.5.csv | 58 +++++++++++++++++++ 4 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 src/test/resources/data/binbase/case1/V6_binbase_1.8.5.csv diff --git a/src/main/java/dev/vality/binbase/config/BatchConfig.java b/src/main/java/dev/vality/binbase/config/BatchConfig.java index 3a3d186..957b8d9 100644 --- a/src/main/java/dev/vality/binbase/config/BatchConfig.java +++ b/src/main/java/dev/vality/binbase/config/BatchConfig.java @@ -137,6 +137,4 @@ public Step step(MultiResourceItemReader multiResourceItemReader) { .listener(new DefaultChunkListener()) .build(); } - - } diff --git a/src/main/java/dev/vality/binbase/util/PanUtil.java b/src/main/java/dev/vality/binbase/util/PanUtil.java index 8008c92..1d712b5 100644 --- a/src/main/java/dev/vality/binbase/util/PanUtil.java +++ b/src/main/java/dev/vality/binbase/util/PanUtil.java @@ -10,15 +10,17 @@ public class PanUtil { public static void validatePan(String pan) throws IllegalArgumentException { - if (!pan.matches("^\\d{6,19}$")) { + if (!pan.matches("^\\d{4,19}$")) { throw new IllegalArgumentException("Invalid pan format"); } } public static long toLongValue(String pan) throws IllegalArgumentException { validatePan(pan); + // add left 0 to get conventionally formatted pan (as it was before) and then produce correct-length range + String lpaddedPan = pan.length() < 6 ? StringUtils.leftPad(pan, 6, "0") : pan; return Long.parseLong( - StringUtils.rightPad(pan.substring(0, Math.min(pan.length(), RIGHT_PAD_SIZE)), DEFAULT_SIZE, "0")); + StringUtils.rightPad(lpaddedPan.substring(0, Math.min(lpaddedPan.length(), RIGHT_PAD_SIZE)), DEFAULT_SIZE, "0")); } public static String formatPan(String pan) { diff --git a/src/test/java/dev/vality/binbase/util/PanUtilTest.java b/src/test/java/dev/vality/binbase/util/PanUtilTest.java index 1504144..faab613 100644 --- a/src/test/java/dev/vality/binbase/util/PanUtilTest.java +++ b/src/test/java/dev/vality/binbase/util/PanUtilTest.java @@ -3,6 +3,7 @@ import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -13,7 +14,7 @@ void testValidatePan() { PanUtil.validatePan("220020"); PanUtil.validatePan("2200200249999999999"); assertThrows(IllegalArgumentException.class, () -> PanUtil.validatePan("22003/")); - assertThrows(IllegalArgumentException.class, () -> PanUtil.validatePan("22003")); + assertDoesNotThrow(() -> PanUtil.validatePan("22003")); assertThrows(IllegalArgumentException.class, () -> PanUtil.validatePan("22002002499999999999")); } @@ -24,6 +25,9 @@ void testToLongValue() { assertEquals(234234234234234234L, PanUtil.toLongValue("234234234234234234")); assertEquals(324234234234234432L, PanUtil.toLongValue("3242342342342344324")); assertEquals(999999999999999999L, PanUtil.toLongValue("9999999999999999999")); + assertEquals(100001000000000000L, PanUtil.toLongValue("100001")); + assertEquals(1244000000000000L, PanUtil.toLongValue("001244")); + assertEquals(1244000000000000L, PanUtil.toLongValue("1244")); } @Test diff --git a/src/test/resources/data/binbase/case1/V6_binbase_1.8.5.csv b/src/test/resources/data/binbase/case1/V6_binbase_1.8.5.csv new file mode 100644 index 0000000..8df1ba9 --- /dev/null +++ b/src/test/resources/data/binbase/case1/V6_binbase_1.8.5.csv @@ -0,0 +1,58 @@ +1244;PRIVATE LABEL;BANCO BRADESCO;;;BRAZIL;BR;BRA;76;;;;; +2102;PRIVATE LABEL;CHINA MERCHANTS BANK;CREDIT;STANDARD;CHINA;CN;CHN;156;;;;; +2195;PRIVATE LABEL;CHINA MERCHANTS BANK;DEBIT;;CHINA;CN;CHN;156;;;;; +2201;PRIVATE LABEL;CHINA MERCHANTS BANK;DEBIT;;CHINA;CN;CHN;156;;;;; +2239;PRIVATE LABEL;CHINA MERCHANTS BANK;DEBIT;;CHINA;CN;CHN;156;;;;; +2361;PRIVATE LABEL;CHINA MERCHANTS BANK;CREDIT;STANDARD;CHINA;CN;CHN;156;;;;; +4078;PRIVATE LABEL;SHIFT4 PAYMENTS;DEBIT;GIFT;UNITED STATES;US;USA;840;;;;; +4080;PRIVATE LABEL;SHIFT4 PAYMENTS;DEBIT;GIFT;UNITED STATES;US;USA;840;;;;; +7343;PRIVATE LABEL;BANCO PAN;DEBIT;;BRAZIL;BR;BRA;76;;;;; +10051;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +10053;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +10108;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +10150;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +10258;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +10300;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +10309;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +11300;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; +11301;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; +11302;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; +11303;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; +11304;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; +11305;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; +11306;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; +11308;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; +11309;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; +12004;PRIVATE LABEL;TBI BANK;DEBIT;;BULGARIA;BG;BGR;100;;;;; +12047;PRIVATE LABEL;BANCO DE CREDITO ARGENTINO;DEBIT;;ARGENTINA;AR;ARG;32;;;;; +20010;PRIVATE LABEL;INDUSTRIAL AND COMMERCIAL BANK OF CHINA;DEBIT;;CHINA;CN;CHN;156;;;;; +20083;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +20084;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +20085;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +20089;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +20202;PRIVATE LABEL;CHINA CONSTRUCTION BANK;;INTERNET BANKING CODE CARD;CHINA;CN;CHN;156;;;;; +21080;PRIVATE LABEL;BANCO PICHINCHA;DEBIT;;ECUADOR;EC;ECU;218;;;;; +21502;LOCAL BRAND;;DEBIT;PROPRIETARY ATM;PUERTO RICO;PR;PRI;630;;;;; +22004;PRIVATE LABEL;TBI BANK;DEBIT;;BULGARIA;BG;BGR;100;;;;; +26688;PRIVATE LABEL;SHIFT4 PAYMENTS;DEBIT;GIFT;UNITED STATES;US;USA;840;;;;; +30150;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30190;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30320;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30430;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30439;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30480;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30583;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30589;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30590;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30620;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30670;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30690;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30750;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30830;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30836;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +30870;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +31040;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +31110;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +31240;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +31260;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; +31270;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; \ No newline at end of file From 1f4206db286cbc976189b461b8435512cd38c0df Mon Sep 17 00:00:00 2001 From: ivnmrtk Date: Thu, 17 Aug 2023 10:07:45 +0300 Subject: [PATCH 2/4] fuck linter /OPS-337 --- src/main/java/dev/vality/binbase/util/PanUtil.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/vality/binbase/util/PanUtil.java b/src/main/java/dev/vality/binbase/util/PanUtil.java index 1d712b5..3292524 100644 --- a/src/main/java/dev/vality/binbase/util/PanUtil.java +++ b/src/main/java/dev/vality/binbase/util/PanUtil.java @@ -20,7 +20,10 @@ public static long toLongValue(String pan) throws IllegalArgumentException { // add left 0 to get conventionally formatted pan (as it was before) and then produce correct-length range String lpaddedPan = pan.length() < 6 ? StringUtils.leftPad(pan, 6, "0") : pan; return Long.parseLong( - StringUtils.rightPad(lpaddedPan.substring(0, Math.min(lpaddedPan.length(), RIGHT_PAD_SIZE)), DEFAULT_SIZE, "0")); + StringUtils.rightPad(lpaddedPan.substring( + 0, Math.min(lpaddedPan.length(), RIGHT_PAD_SIZE) + ), + DEFAULT_SIZE, "0")); } public static String formatPan(String pan) { From 97ae26810a63d142171066ca63d70e6d526491b2 Mon Sep 17 00:00:00 2001 From: ivnmrtk Date: Thu, 17 Aug 2023 11:09:33 +0300 Subject: [PATCH 3/4] let csvreader process file with extra fields /OPS-337 --- .../vality/binbase/config/BatchConfig.java | 1 + .../data/binbase/case1/V6_binbase_1.8.5.csv | 88 +++++++------------ 2 files changed, 31 insertions(+), 58 deletions(-) diff --git a/src/main/java/dev/vality/binbase/config/BatchConfig.java b/src/main/java/dev/vality/binbase/config/BatchConfig.java index 957b8d9..08e07c2 100644 --- a/src/main/java/dev/vality/binbase/config/BatchConfig.java +++ b/src/main/java/dev/vality/binbase/config/BatchConfig.java @@ -97,6 +97,7 @@ public FlatFileItemReader buildBinBasePsbCsvReader() { DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(); lineTokenizer.setNames(FILE_CSV_FIELDS); lineTokenizer.setDelimiter(CSV_DELIMITER); + lineTokenizer.setStrict(strictMode); BeanWrapperFieldSetMapper fieldSetMapper = new BeanWrapperFieldSetMapper<>(); fieldSetMapper.setTargetType(BinBaseCsvData.class); diff --git a/src/test/resources/data/binbase/case1/V6_binbase_1.8.5.csv b/src/test/resources/data/binbase/case1/V6_binbase_1.8.5.csv index 8df1ba9..edc7573 100644 --- a/src/test/resources/data/binbase/case1/V6_binbase_1.8.5.csv +++ b/src/test/resources/data/binbase/case1/V6_binbase_1.8.5.csv @@ -1,58 +1,30 @@ -1244;PRIVATE LABEL;BANCO BRADESCO;;;BRAZIL;BR;BRA;76;;;;; -2102;PRIVATE LABEL;CHINA MERCHANTS BANK;CREDIT;STANDARD;CHINA;CN;CHN;156;;;;; -2195;PRIVATE LABEL;CHINA MERCHANTS BANK;DEBIT;;CHINA;CN;CHN;156;;;;; -2201;PRIVATE LABEL;CHINA MERCHANTS BANK;DEBIT;;CHINA;CN;CHN;156;;;;; -2239;PRIVATE LABEL;CHINA MERCHANTS BANK;DEBIT;;CHINA;CN;CHN;156;;;;; -2361;PRIVATE LABEL;CHINA MERCHANTS BANK;CREDIT;STANDARD;CHINA;CN;CHN;156;;;;; -4078;PRIVATE LABEL;SHIFT4 PAYMENTS;DEBIT;GIFT;UNITED STATES;US;USA;840;;;;; -4080;PRIVATE LABEL;SHIFT4 PAYMENTS;DEBIT;GIFT;UNITED STATES;US;USA;840;;;;; -7343;PRIVATE LABEL;BANCO PAN;DEBIT;;BRAZIL;BR;BRA;76;;;;; -10051;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -10053;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -10108;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -10150;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -10258;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -10300;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -10309;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -11300;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; -11301;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; -11302;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; -11303;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; -11304;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; -11305;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; -11306;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; -11308;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; -11309;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608;;;;; -12004;PRIVATE LABEL;TBI BANK;DEBIT;;BULGARIA;BG;BGR;100;;;;; -12047;PRIVATE LABEL;BANCO DE CREDITO ARGENTINO;DEBIT;;ARGENTINA;AR;ARG;32;;;;; -20010;PRIVATE LABEL;INDUSTRIAL AND COMMERCIAL BANK OF CHINA;DEBIT;;CHINA;CN;CHN;156;;;;; -20083;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -20084;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -20085;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -20089;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -20202;PRIVATE LABEL;CHINA CONSTRUCTION BANK;;INTERNET BANKING CODE CARD;CHINA;CN;CHN;156;;;;; -21080;PRIVATE LABEL;BANCO PICHINCHA;DEBIT;;ECUADOR;EC;ECU;218;;;;; -21502;LOCAL BRAND;;DEBIT;PROPRIETARY ATM;PUERTO RICO;PR;PRI;630;;;;; -22004;PRIVATE LABEL;TBI BANK;DEBIT;;BULGARIA;BG;BGR;100;;;;; -26688;PRIVATE LABEL;SHIFT4 PAYMENTS;DEBIT;GIFT;UNITED STATES;US;USA;840;;;;; -30150;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30190;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30320;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30430;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30439;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30480;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30583;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30589;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30590;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30620;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30670;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30690;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30750;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30830;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30836;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -30870;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -31040;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -31110;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -31240;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -31260;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; -31270;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380;;;;; \ No newline at end of file +1244;PRIVATE LABEL;BANCO BRADESCO;;;BRAZIL;BR;BRA;76 +2102;PRIVATE LABEL;CHINA MERCHANTS BANK;CREDIT;STANDARD;CHINA;CN;CHN;156 +2195;PRIVATE LABEL;CHINA MERCHANTS BANK;DEBIT;;CHINA;CN;CHN;156 +2201;PRIVATE LABEL;CHINA MERCHANTS BANK;DEBIT;;CHINA;CN;CHN;156 +2239;PRIVATE LABEL;CHINA MERCHANTS BANK;DEBIT;;CHINA;CN;CHN;156 +2361;PRIVATE LABEL;CHINA MERCHANTS BANK;CREDIT;STANDARD;CHINA;CN;CHN;156 +4078;PRIVATE LABEL;SHIFT4 PAYMENTS;DEBIT;GIFT;UNITED STATES;US;USA;840 +4080;PRIVATE LABEL;SHIFT4 PAYMENTS;DEBIT;GIFT;UNITED STATES;US;USA;840 +7343;PRIVATE LABEL;BANCO PAN;DEBIT;;BRAZIL;BR;BRA;76 +10051;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380 +10053;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380 +10108;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380 +10150;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380 +10258;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380 +10300;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380 +10309;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380 +11300;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608 +11301;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608 +11302;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608 +11303;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608 +11304;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608 +11305;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608 +11306;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608 +11308;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608 +11309;LOCAL BRAND;BDO UNIBANK, INC.;DEBIT;PROPRIETARY ATM;PHILIPPINES;PH;PHL;608 +12004;PRIVATE LABEL;TBI BANK;DEBIT;;BULGARIA;BG;BGR;100 +12047;PRIVATE LABEL;BANCO DE CREDITO ARGENTINO;DEBIT;;ARGENTINA;AR;ARG;32 +20010;PRIVATE LABEL;INDUSTRIAL AND COMMERCIAL BANK OF CHINA;DEBIT;;CHINA;CN;CHN;156 +20083;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380 +20084;PAGOBANCOMAT;;DEBIT;;ITALY;IT;ITA;380 \ No newline at end of file From c847f2227b0a817d70546c44b698aa9e9009906f Mon Sep 17 00:00:00 2001 From: ivnmrtk Date: Wed, 7 Aug 2024 10:32:52 +0300 Subject: [PATCH 4/4] add new countries data /OPS-500 --- src/main/java/dev/vality/binbase/domain/CountryCode.java | 4 +++- src/test/java/dev/vality/binbase/util/PanUtilTest.java | 1 + src/test/resources/data/binbase/case1/V7_binbase_1.9.0.csv | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 src/test/resources/data/binbase/case1/V7_binbase_1.9.0.csv diff --git a/src/main/java/dev/vality/binbase/domain/CountryCode.java b/src/main/java/dev/vality/binbase/domain/CountryCode.java index abbcb5b..cb29e2e 100644 --- a/src/main/java/dev/vality/binbase/domain/CountryCode.java +++ b/src/main/java/dev/vality/binbase/domain/CountryCode.java @@ -259,7 +259,9 @@ public enum CountryCode { WF("Wallis and Futuna", "WLF", "876"), WS("Samoa", "WSM", "882"), YE("Yemen", "YEM", "887"), - ZM("Zambia", "ZMB", "894"); + ZM("Zambia", "ZMB", "894"), + AB("Republic of Abkhazia", "ABH", "895"), + OS("Republic of South Ossetia", "OST", "896"); private static final Map alpha3Map = new HashMap<>(); diff --git a/src/test/java/dev/vality/binbase/util/PanUtilTest.java b/src/test/java/dev/vality/binbase/util/PanUtilTest.java index faab613..8f7d1e2 100644 --- a/src/test/java/dev/vality/binbase/util/PanUtilTest.java +++ b/src/test/java/dev/vality/binbase/util/PanUtilTest.java @@ -28,6 +28,7 @@ void testToLongValue() { assertEquals(100001000000000000L, PanUtil.toLongValue("100001")); assertEquals(1244000000000000L, PanUtil.toLongValue("001244")); assertEquals(1244000000000000L, PanUtil.toLongValue("1244")); + assertEquals(976253000000000000L, PanUtil.toLongValue("976253")); } @Test diff --git a/src/test/resources/data/binbase/case1/V7_binbase_1.9.0.csv b/src/test/resources/data/binbase/case1/V7_binbase_1.9.0.csv new file mode 100644 index 0000000..9b1a09a --- /dev/null +++ b/src/test/resources/data/binbase/case1/V7_binbase_1.9.0.csv @@ -0,0 +1,2 @@ +976200;NSPK;"CJSC ""Dushanbe City Bank""";DEBIT;MIR Classic;Tajikistan;TJ;TJK;762 +977700;NSPK;MRB Bank;DEBIT;MIR Classic;Republic of South Ossetia;OS;OST;896 \ No newline at end of file