From f7dc0d0af282721c35aa6475c17b99b4f684c17e Mon Sep 17 00:00:00 2001 From: fighou Date: Thu, 21 Sep 2023 15:30:52 +0200 Subject: [PATCH] Add Maestro card numbers for Belgium (#131) * fix bancontact maestro card numbers * update test * fix laser test --------- Co-authored-by: zfighou --- src/DEdge.Cardidy/Model/Cards.cs | 5 ++++- src/Tests/IdentifyTests.cs | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/DEdge.Cardidy/Model/Cards.cs b/src/DEdge.Cardidy/Model/Cards.cs index 7489718..792f803 100644 --- a/src/DEdge.Cardidy/Model/Cards.cs +++ b/src/DEdge.Cardidy/Model/Cards.cs @@ -54,7 +54,10 @@ public MaestroUk() : base(CardType.MaestroUk, new[] { 6759, 676770, 676774 }, Fr internal record Maestro : ALuhnCard { - public Maestro() : base(CardType.Maestro, new[] { 5018, 5020, 5038, 5893, 6304, 6759, 6761, 6762, 6763 }, From12To19) { } + public Maestro() : base(CardType.Maestro, new[] { 5018, 5020, 5038, 5893, 6304, 6759, 6761, 6762, 6763, + //https://www.freebinchecker.com/belgium_maestro-bin-list-brand?hl=fr + 6703,6799,6775,6711,6708,6705,6709,6390,6792,6706,6704 + }, From12To19) { } } internal record MasterCard : ALuhnCard diff --git a/src/Tests/IdentifyTests.cs b/src/Tests/IdentifyTests.cs index bfb7d57..9b62b50 100644 --- a/src/Tests/IdentifyTests.cs +++ b/src/Tests/IdentifyTests.cs @@ -55,6 +55,8 @@ public class IdentifyTests [TestCase("5018-7100009012345", ExpectedResult = CardType.Maestro)] [TestCase("5018-71000090123456", ExpectedResult = CardType.Maestro)] [TestCase("5018-710000901234567", ExpectedResult = CardType.Maestro)] + [TestCase("6704-44444444449", ExpectedResult = CardType.Maestro)] + [TestCase("6703-000000000000003", ExpectedResult = CardType.Maestro)] public CardType ShouldIdentifyAsMaestro(string cardNumber) => Cardidy.Identify(cardNumber, useCheck: false, ignoreNoise: true).First(); [TestCase("676770-0000901089", ExpectedResult = CardType.MaestroUk)] @@ -165,10 +167,10 @@ public class IdentifyTests [TestCase("6384960368309025--", ExpectedResult = CardType.InstaPayment)] public CardType ShouldIdentifyAsInstaPayment(string cardNumber) => Cardidy.Identify(cardNumber, useCheck: true, ignoreNoise: true).First(); - [TestCase("6709123456789876", ExpectedResult = new[] { CardType.Laser, CardType.GPN })] + [TestCase("6709123456789876", ExpectedResult = new[] { CardType.Maestro, CardType.Laser, CardType.GPN })] [TestCase("6771123456789876", ExpectedResult = new[] { CardType.Laser, CardType.GPN })] [TestCase("6304000004583145", ExpectedResult = new[] { CardType.Maestro, CardType.Laser, CardType.GPN })] - [TestCase("6706710000901089", ExpectedResult = new[] { CardType.Laser, CardType.GPN })] + [TestCase("6706710000901089", ExpectedResult = new[] { CardType.Maestro, CardType.Laser, CardType.GPN })] public IEnumerable ShouldIdentifyAsLaser(string cardNumber) => Cardidy.Identify(cardNumber, useCheck: false, ignoreNoise: true).ToArray(); [TestCase("4903670912340031", ExpectedResult = new[] { CardType.Visa, CardType.Switch })]