Exemplo n.º 1
0
    public static long Create(long number)
    {
        var zeroCheckDigitNumber = number * 10;
        var luhn = new Luhn(zeroCheckDigitNumber);

        if (luhn.Valid)
            return zeroCheckDigitNumber;

        return zeroCheckDigitNumber + CreateCheckDigit(luhn.Checksum);
    }
Exemplo n.º 2
0
 public void Strings_with_non_digits_is_invalid()
 {
     Assert.False(Luhn.IsValid(":9"));
 }
Exemplo n.º 3
0
 public void More_than_a_single_zero_is_valid()
 {
     Assert.True(Luhn.IsValid("0000 0"));
 }
Exemplo n.º 4
0
 public void Valid_strings_with_symbols_included_become_invalid()
 {
     Assert.False(Luhn.IsValid("055£ 444$ 285"));
 }
Exemplo n.º 5
0
 public void Valid_strings_with_punctuation_included_become_invalid()
 {
     Assert.False(Luhn.IsValid("055-444-285"));
 }
Exemplo n.º 6
0
 public void Valid_strings_with_a_non_digit_included_become_invalid()
 {
     Assert.False(Luhn.IsValid("055a 444 285"));
 }
Exemplo n.º 7
0
 public void Invalid_credit_card()
 {
     Assert.False(Luhn.IsValid("8273 1232 7352 0569"));
 }
Exemplo n.º 8
0
 public void A_valid_canadian_sin()
 {
     Assert.True(Luhn.IsValid("055 444 285"));
 }
Exemplo n.º 9
0
 /// <summary>
 /// Vérifie la validité d'un numéro SIREN.
 /// (Attention : cette méthode valide le numéro SIREN
 /// selon l'algorithme de Luhn, mais ne vérifie pas
 /// que le numéro soit attribué, ni à quelle entreprise).
 /// </summary>
 /// <param name="sirenToCheck">Numéro SIREN.</param>
 /// <returns>Vrai si le SIREN est valide, faux sinon.</returns>
 /// <remarks>Système d’Identification du Répertoire des ENtreprises.
 /// http://fr.wikipedia.org/wiki/SIREN
 /// </remarks>
 public static bool Check(string sirenToCheck)
 {
     return(Luhn.Check(sirenToCheck, LuhnCheckType.Siren));
 }
Exemplo n.º 10
0
 [TestCase("827a 1232 7352 0569", ExpectedResult = false, Ignore = "Remove to run test case")] // strings that contain non-digits are not valid
 public bool ValidateChecksum(string number)
 {
     return(Luhn.IsValid(number));
 }
Exemplo n.º 11
0
        public void CalculateCheckDigit_NullString_ArgumentNullException()
        {
            string number = null;

            Assert.That(() => Luhn.CalculateCheckDigit(number), Throws.ArgumentNullException);
        }
Exemplo n.º 12
0
        public void IsValid_NullString_ArgumentNullException()
        {
            string number = null;

            Assert.That(() => Luhn.IsValid(number), Throws.ArgumentNullException);
        }
Exemplo n.º 13
0
        public void IsValid_EmptyByteArray_ArgumentNullException()
        {
            byte[] number = new byte[0];

            Assert.That(() => Luhn.IsValid(""), Throws.ArgumentNullException);
        }
Exemplo n.º 14
0
 public void IsValid_NullByteArray_ArgumentNullException()
 {
     byte[] number = null;
     Assert.That(() => Luhn.IsValid(number), Throws.ArgumentNullException);
 }
Exemplo n.º 15
0
        public void IsValid_ValidNumber_TrueOrFalse(string number, bool expected)
        {
            var isValid = Luhn.IsValid(number);

            Assert.That(isValid, Is.EqualTo(expected));
        }
Exemplo n.º 16
0
 public void IsValid_InvalidString_Exception()
 {
     Assert.That(() => Luhn.IsValid("abc"), Throws.Exception);
 }
Exemplo n.º 17
0
 public void A_simple_valid_sin_that_becomes_invalid_if_reversed()
 {
     Assert.True(Luhn.IsValid("59"));
 }
Exemplo n.º 18
0
 public void IsValid_ValidLuhnNumber_Pass()
 {
     Assert.AreEqual(true, Luhn.IsValid("354957031609855"), "IMEI");
     Assert.AreEqual(true, Luhn.IsValid("6761631794313583"), "Meestro");
 }
Exemplo n.º 19
0
 public void Invalid_canadian_sin()
 {
     Assert.False(Luhn.IsValid("055 444 286"));
 }
Exemplo n.º 20
0
 /// <summary>
 /// Vérifie la validité d'un numéro de carte bancaire.
 /// </summary>
 /// <param name="number">Numéro de carte bancaire.</param>
 /// <returns>Vrai si le numéro de carte bancaire est valide, faux sinon.</returns>
 public static bool Check(string number)
 {
     return(Luhn.Check(number, LuhnCheckType.CreditCard));
 }
Exemplo n.º 21
0
 public void Valid_number_with_an_even_number_of_digits()
 {
     Assert.True(Luhn.IsValid("095 245 88"));
 }
Exemplo n.º 22
0
 public void Using_ascii_value_for_doubled_non_digit_isnt_allowed()
 {
     Assert.False(Luhn.IsValid(":9"));
 }
Exemplo n.º 23
0
 public void Valid_strings_with_a_non_digit_added_at_the_end_become_invalid()
 {
     Assert.False(Luhn.IsValid("059a"));
 }
Exemplo n.º 24
0
 public void Invalid_long_number_with_an_even_remainder()
 {
     Assert.False(Luhn.IsValid("1 2345 6789 1234 5678 9012"));
 }
Exemplo n.º 25
0
 public void Single_digit_strings_can_not_be_valid()
 {
     Assert.False(Luhn.IsValid("1"));
 }
Exemplo n.º 26
0
 public void Valid_number_with_an_odd_number_of_spaces()
 {
     Assert.True(Luhn.IsValid("234 567 891 234"));
 }
Exemplo n.º 27
0
 public void Single_zero_with_space_is_invalid()
 {
     Assert.False(Luhn.IsValid(" 0"));
 }
Exemplo n.º 28
0
        public byte[] GenerateLuhnCodeCreditCardValidator()
        {
            string text = Encoding.ASCII.GetString(CardCode);

            return(Encoding.ASCII.GetBytes(text + Luhn.CreateCheckDigit(text)));
        }
Exemplo n.º 29
0
 public void Input_digit_9_is_correctly_converted_to_output_digit_9()
 {
     Assert.True(Luhn.IsValid("091"));
 }
Exemplo n.º 30
0
 public void A_single_zero_is_invalid()
 {
     Assert.False(Luhn.IsValid("0"));
 }
Exemplo n.º 31
0
 public void A_simple_valid_sin_that_remains_valid_if_reversed()
 {
     Assert.True(Luhn.IsValid("059"));
 }
Exemplo n.º 32
0
 public static long Create(long number)
 {
     number *= 10;
     Luhn luhn = new Luhn(number);
     return luhn.Valid ? number : number + (10 - (luhn.Checksum % 10));
 }