コード例 #1
0
        public void ProcessPaymentAction_ValidationService_Failed()
        {
            //Mock
            //Returns an error result in validation
            var mockValService = new Mock <IValidationService>();

            mockValService.Setup(v =>
                                 v.ProcessValidation(It.IsAny <IValidatorManager <PaymentValidator, RepoModel.Payment> >(),
                                                     It.IsAny <RepoModel.Payment>()))
            .Returns(
                Task.FromResult(new Result
            {
                ErrorCode    = ErrorCode.InvalidCardNumber,
                StatusCode   = StatusCode.Failed,
                StatusDetail = "Test Invalid Card Number."
            } as object));
            //Arrange
            var action = new ProcessPaymentAction(_mockRepoTrue.Object, mockValService.Object, _mockBankProcessorObj.Object, _mockValManager.Object, _log);
            //Act
            var result = action.ProcessAction(_apiPayment).Result;

            //Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(Result));
            Assert.IsTrue(((Result)result).StatusCode == StatusCode.Failed);
            Assert.IsTrue(((Result)result).ErrorCode == ErrorCode.InvalidCardNumber);
        }
コード例 #2
0
        public void ProcessPaymentAction_AggregateException()
        {
            //Arrange
            var action = new ProcessPaymentAction(_mockRepoTrue.Object, _mockValService.Object, _mockBankProcessorObj.Object, _mockValManager.Object, _log);

            //Act and Assert
            Assert.ThrowsException <AggregateException>(() => action.ProcessAction(null).Result, "Parameter is null. Invalid value.");
        }
コード例 #3
0
        public void ProcessPaymentAction_Successful()
        {
            //Arrange
            var action = new ProcessPaymentAction(_mockRepoTrue.Object, _mockValService.Object, _mockBankProcessorObj.Object, _mockValManager.Object, _log);
            //Act
            var result = action.ProcessAction(_apiPayment).Result;

            //Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(RepoModel.Payment));
        }
コード例 #4
0
        public void ProcessPaymentAction_BankProcessor_Failed()
        {
            //Arrange
            var action = new ProcessPaymentAction(_mockRepoFalse.Object, _mockValService.Object, _mockBankProcessorEx.Object, _mockValManager.Object, _log);
            //Act
            var result = action.ProcessAction(_apiPayment).Result;

            //Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(Result));
            Assert.IsTrue(((Result)result).StatusCode == StatusCode.Failed);
            Assert.IsTrue(((Result)result).ErrorCode == ErrorCode.PaymentFailed);
        }