public void ValidSavingTransaction_Should_Not_Return_An_Error()
        {
            //Arrange
            List <TransactionModel> testTransactionModelList = new List <TransactionModel>();

            var testTransactionModel = new TransactionModel()
            {
                Account      = "Account",
                Description  = "Descrip",
                CurrencyCode = "GBP",
                Amount       = "5"
            };

            testTransactionModelList.Add(testTransactionModel);

            //Act
            ITransactionDataProvider transactionDataProvider = A.Fake <ITransactionDataProvider>();

            A.CallTo(() => transactionDataProvider.Save(testTransactionModel)).Returns(1);
            var testTransaction = new TransactionProcess(new Iso4217DataProvider(), transactionDataProvider);
            var result          = testTransaction.Process(testTransactionModelList);

            //Assert
            Assert.IsFalse(result.Any(m => m.IsErrored));
        }
Пример #2
0
        public TransactionProcessingStatus Process(TransactionInput transationInput)
        {
            var result = new TransactionProcessingStatus();

            if (!Validate(transationInput))
            {
                result.Error        = true;
                result.ErrorMessage =
                    $"Cound not process trasnsaction ( Account:{transationInput.Account} , Desciption:{transationInput.Description}, Currency:{transationInput.CurrencyCode}, Amount {transationInput.Amount} )";
                return(result);
            }
            var transation    = Mapper.Map <Transaction>(transationInput);
            var transactionId = _transactionDataProvider.Save(transation);

            if (transactionId > 0)
            {
                result.TransactionId = transactionId;
                return(result);
            }
            else
            {
                result.Error        = true;
                result.ErrorMessage =
                    $"Error in saving transaction Account:{transationInput.Account} , Desciption:{transationInput.Description}, Currency:{transationInput.CurrencyCode}, Amount {transationInput.Amount} ";
                return(result);
            }
        }
        public List <ExcelMessages> Process(List <TransactionModel> transactions)
        {
            var processMessages = new List <ExcelMessages>();

            foreach (var transaction in transactions)
            {
                if (!ValidateExcelContent(transaction))
                {
                    processMessages.Add(
                        new ExcelMessages()
                    {
                        Key     = "ProcessValidation",
                        Message =
                            $"Cound not process transaction ( Account: {transaction.Account} , Desciption: {transaction.Description}, Currency: {transaction.CurrencyCode}, Amount: {transaction.Amount} )",
                        IsErrored = true
                    });
                }
                else
                {
                    int transactionId = _transactionDataProvider.Save(transaction);

                    if (transactionId > 0)
                    {
                        processMessages.Add(
                            new ExcelMessages()
                        {
                            Key     = "ProcessValidation",
                            Message =
                                "Transaction Saved into Database",
                            IsErrored = false
                        });
                    }
                    else
                    {
                        processMessages.Add(
                            new ExcelMessages()
                        {
                            Key     = "ProcessValidation",
                            Message =
                                $"Error in saving transaction Account: {transaction.Account} , Desciption: {transaction.Description}, Currency: {transaction.CurrencyCode}, Amount: {transaction.Amount} )",
                            IsErrored = true
                        });
                    }
                }
            }

            return(processMessages);
        }
Пример #4
0
        public void ValidateFailedSavingTransaction()
        {
            //Arrange
            var testTransactionInput = new TransactionInput()
            {
                Account      = "Account",
                Description  = "Descrip",
                CurrencyCode = "GBP",
                Amount       = "5"
            };
            //Act


            var transation = Mapper.Map <Transaction>(testTransactionInput);
            ITransactionDataProvider transactionDataProvider = A.Fake <ITransactionDataProvider>();

            A.CallTo(() => transactionDataProvider.Save(transation)).Returns(0);
            var transactionProcessor = new TransactionProcessor(new Iso4217DataProvider(), transactionDataProvider);
            var result = transactionProcessor.Process(testTransactionInput);

            //Assert
            Assert.True(result.Error);
        }