public void GivenACardIssuer_RandomCardNumber_ReturnsAValidCard_Length_MaxLength(CardIssuer cardIssuer)
            {
                // Arrange.
                var maxLength = TestHelperUtilities.Lengths(cardIssuer).Last();

                // Act.
                var number = CreditCardFactory.RandomCardNumber(cardIssuer, maxLength);

                // Assert.
                var detector = new CreditCardDetector(number);

                number.Length.ShouldBe(maxLength);
                detector.Brand.ShouldBe(cardIssuer);
                detector.IsValid(cardIssuer).ShouldBe(true);
                detector.IsValid().ShouldBe(true);
            }
            public void GivenACardIssuer_RandomCardNumber_ReturnsAValidCard_Length_MinLength(CardIssuer cardIssuer)
            {
                // Arrange.
                var lengths = TestHelperUtilities.Lengths(cardIssuer);

                foreach (var len in lengths)
                {
                    // Act.
                    var number = CreditCardFactory.RandomCardNumber(cardIssuer, len);

                    // Assert.
                    var detector = new CreditCardDetector(number);
                    number.Length.ShouldBe(len);
                    detector.Brand.ShouldBe(cardIssuer);
                    detector.IsValid(cardIssuer).ShouldBe(true);
                    detector.IsValid().ShouldBe(true);
                }
            }