예제 #1
0
        public void PaymentCardReqVM_ShouldReturnErrorIfValuesAreNull()
        {
            // Arrange

            PaymentCardReqVM paymentCardReqVM = new PaymentCardReqVM();

            List <ValidationResult> validationResults = new List <ValidationResult>();

            // Act

            bool isValid = Validator.TryValidateObject(paymentCardReqVM, new ValidationContext(paymentCardReqVM), validationResults, true);

            ValidationResult nameOnCardErrorMessage = validationResults
                                                      .FirstOrDefault(e => e.MemberNames.FirstOrDefault() == nameof(paymentCardReqVM.NameOnCard));

            ValidationResult cardTypeErrorMessage = validationResults
                                                    .FirstOrDefault(e => e.MemberNames.FirstOrDefault() == nameof(paymentCardReqVM.CardType));

            ValidationResult issuerErrorMessage = validationResults
                                                  .FirstOrDefault(e => e.MemberNames.FirstOrDefault() == nameof(paymentCardReqVM.Issuer));

            ValidationResult cardnumberErrorMessage = validationResults
                                                      .FirstOrDefault(e => e.MemberNames.FirstOrDefault() == nameof(paymentCardReqVM.Cardnumber));

            ValidationResult cvvErrorMessage = validationResults
                                               .FirstOrDefault(e => e.MemberNames.FirstOrDefault() == nameof(paymentCardReqVM.Cvv));

            ValidationResult expiryMonthErrorMessage = validationResults
                                                       .FirstOrDefault(e => e.MemberNames.FirstOrDefault() == nameof(paymentCardReqVM.ExpiryMonth));

            ValidationResult expiryYearErrorMessage = validationResults
                                                      .FirstOrDefault(e => e.MemberNames.FirstOrDefault() == nameof(paymentCardReqVM.ExpiryYear));

            // Assert

            Assert.IsFalse(isValid);
            Assert.AreEqual(7, validationResults.Count);
            Assert.AreEqual("The NameOnCard field is required.", nameOnCardErrorMessage.ErrorMessage);
            Assert.AreEqual("The CardType field is required.", cardTypeErrorMessage.ErrorMessage);
            Assert.AreEqual("The Issuer field is required.", issuerErrorMessage.ErrorMessage);
            Assert.AreEqual("The Cardnumber field is required.", cardnumberErrorMessage.ErrorMessage);
            Assert.AreEqual("The Cvv field is required.", cvvErrorMessage.ErrorMessage);
            Assert.AreEqual("The ExpiryMonth field is required.", expiryMonthErrorMessage.ErrorMessage);
            Assert.AreEqual("The ExpiryYear field is required.", expiryYearErrorMessage.ErrorMessage);
        }
예제 #2
0
        public void PaymentCardReqVM_ShouldReturnErrorIfCardnumberInvlaid(string cardnumber)
        {
            // Arrange

            PaymentCardReqVM paymentCardReqVM = MockPaymentCardReqVM.Get();

            paymentCardReqVM.Cardnumber = cardnumber;

            List <ValidationResult> validationResults = new List <ValidationResult>();

            // Act

            bool isValid = Validator.TryValidateObject(paymentCardReqVM, new ValidationContext(paymentCardReqVM), validationResults, true);

            ValidationResult cardnumberErrorMessage = validationResults
                                                      .FirstOrDefault(e => e.MemberNames.FirstOrDefault() == nameof(paymentCardReqVM.Cardnumber));

            // Assert

            Assert.IsFalse(isValid);
            Assert.AreEqual(1, validationResults.Count);
            Assert.AreEqual("The Cardnumber field is not a valid card number.", cardnumberErrorMessage.ErrorMessage);
        }
예제 #3
0
        public void PaymentCardReqVM_ShouldReturnErrorIfExpiryMonthInvlaid(int month)
        {
            // Arrange

            PaymentCardReqVM paymentCardReqVM = MockPaymentCardReqVM.Get();

            paymentCardReqVM.ExpiryMonth = month;

            List <ValidationResult> validationResults = new List <ValidationResult>();

            // Act

            bool isValid = Validator.TryValidateObject(paymentCardReqVM, new ValidationContext(paymentCardReqVM), validationResults, true);

            ValidationResult expiryMonthErrorMessage = validationResults
                                                       .FirstOrDefault(e => e.MemberNames.FirstOrDefault() == nameof(paymentCardReqVM.ExpiryMonth));

            // Assert

            Assert.IsFalse(isValid);
            Assert.AreEqual(1, validationResults.Count);
            Assert.AreEqual($"The field ExpiryMonth must be between 1 and 12.", expiryMonthErrorMessage.ErrorMessage);
        }
예제 #4
0
        public void PaymentCardReqVM_ShouldReturnErrorIfCvvInvlaid(string cvv, Issuer issuer, string error)
        {
            // Arrange

            PaymentCardReqVM paymentCardReqVM = MockPaymentCardReqVM.Get();

            paymentCardReqVM.Cvv    = cvv;
            paymentCardReqVM.Issuer = issuer;

            List <ValidationResult> validationResults = new List <ValidationResult>();

            // Act

            bool isValid = Validator.TryValidateObject(paymentCardReqVM, new ValidationContext(paymentCardReqVM), validationResults, true);

            ValidationResult cvvErrorMessage = validationResults
                                               .FirstOrDefault(e => e.MemberNames.FirstOrDefault() == nameof(paymentCardReqVM.Cvv));

            // Assert

            Assert.IsFalse(isValid);
            Assert.AreEqual(1, validationResults.Count);
            Assert.AreEqual($"The Cvv field must be {error}", cvvErrorMessage.ErrorMessage);
        }