示例#1
0
        public void ValidatesGenerateRequest()
        {
            var message = new GenerateRequestMessage();
            var validator = new Mock<IDataAnnotationsValidator>();
            validator.Setup(m => m.Validate(message)).Returns(Enumerable.Empty<PropertyValidationResult>()).Verifiable();
            var payfit = new DpsPayfitFixture
            {
                Validator = validator.Object
            }.Build();

            payfit.EnsureMessageValid(message);
            validator.VerifyAll();
        }
示例#2
0
        public void ThrowsExceptionWhenMessageIsInvalid()
        {
            const string error = "Sample error";
            var message = new GenerateRequestMessage();
            var invalidMemberName = nameof(message.EmailAddress);
            var validator = new Mock<IDataAnnotationsValidator>();
            validator.Setup(m => m.Validate(message)).Returns(new[] { new PropertyValidationResult {
                IsValid = false,
                MemberName = invalidMemberName,
                ValidationResults = new[] {new  ValidationResult(error) }
            } }).Verifiable();
            var payfit = new DpsPayfitFixture
            {
                Validator = validator.Object
            }.Build();

            Assert.Throws <Exception>(() => {
                payfit.EnsureMessageValid(message);
            });

            validator.VerifyAll();
        }
示例#3
0
        public async Task CallsApiToGenerateRequest() {
            var message = new GenerateRequestMessageFixture().Build();
            var response = new RequestMessageFixture().Build();
            var validator = new Mock<IDataAnnotationsValidator>();
            validator.Setup(m => m.Validate(message))
                .Returns(Enumerable.Empty<PropertyValidationResult>())
                .Verifiable();
            var api = new Mock<IPaymentExpressApi>();
            api.Setup(m => m.PostGenerateRequestAsync(message))
                .ReturnsAsync(response)
                .Verifiable();

            var payfit = new DpsPayfitFixture
            {
                Api = api.Object,
                Validator = validator.Object
            }.Build();

            var result = await payfit.CreateGenerateRequest(message);

            Assert.Equal(response, result);
            validator.VerifyAll();
            api.VerifyAll();
        }