public void WhenInvalidPaymentReference_FailsValidation(string invalidPaymentReference)
        {
            var invalidRequest = ValidRequest();

            invalidRequest.PaymentReference = invalidPaymentReference;

            var validator = new MakeAPaymentRequestValidator();

            Assert.Throws <ValidationException>(() => validator.ValidateAndThrow(invalidRequest));
        }
        public void WhenInvalidTerminalId_FailsValidation(string invalidTerminalId)
        {
            var invalidRequest = ValidRequest();

            invalidRequest.TerminalId = invalidTerminalId;

            var validator = new MakeAPaymentRequestValidator();

            Assert.Throws <ValidationException>(() => validator.ValidateAndThrow(invalidRequest));
        }
        public void WhenInvalidPaymentAmount_FailsValidation(int invalidPaymentAmount)
        {
            var invalidRequest = ValidRequest();

            invalidRequest.PaymentAmount = invalidPaymentAmount;

            var validator = new MakeAPaymentRequestValidator();

            Assert.Throws <ValidationException>(() => validator.ValidateAndThrow(invalidRequest));
        }
        public void WhenCardDetailsNotSet_FailsValidation()
        {
            var invalidRequest = ValidRequest();

            invalidRequest.Card = null;

            var validator = new MakeAPaymentRequestValidator();

            Assert.Throws <ValidationException>(() => validator.ValidateAndThrow(invalidRequest));
        }
        public void WhenInvalidTransactionDate_FailsValidation()
        {
            var invalidRequest = ValidRequest();

            invalidRequest.TransactionDate = DateTime.UtcNow.AddHours(1);

            var validator = new MakeAPaymentRequestValidator();

            Assert.Throws <ValidationException>(() => validator.ValidateAndThrow(invalidRequest));
        }
        public void WhenValidRequest_PassesValidation()
        {
            var validator = new MakeAPaymentRequestValidator();

            validator.ValidateAndThrow(ValidRequest());
        }