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));
        }
 public TransactionService(IUnitOfWork unitOfWork, ITransactionDataProvider transactionDataProvider,
                           ICurrencyNormalizer normalizer, ILogger <TransactionService> logger)
 {
     _unitOfWork = unitOfWork;
     _transactionDataProvider = transactionDataProvider;
     _normalizer = normalizer;
     _logger     = logger;
 }
        public void Validate_Required_Amount_Transaction()
        {
            //Arrange
            var testTransactionModel = new TransactionModel()
            {
                Account      = "Account",
                Description  = "Description",
                CurrencyCode = "USD",
                Amount       = ""
            };
            //Act
            ITransactionDataProvider transactionDataProvider = A.Fake <ITransactionDataProvider>();
            var testTransaction = new TransactionProcess(new Iso4217DataProvider(), transactionDataProvider);
            var result          = testTransaction.ValidateExcelContent(testTransactionModel);

            //Assert
            Assert.IsFalse(result);
        }
Exemplo n.º 4
0
        public void ValidateWrongIsoTransaction()
        {
            //Arrange
            var underTestTransaction = new TransactionInput()
            {
                Account      = "Account",
                Description  = "Descip",
                CurrencyCode = "GBE",
                Amount       = "5"
            };
            //Act
            ITransactionDataProvider transactionDataProvider = A.Fake <ITransactionDataProvider>();
            var testTransaction = new TransactionProcessor(new Iso4217DataProvider(), transactionDataProvider);
            var result          = testTransaction.Validate(underTestTransaction);

            //Assert
            Assert.False(result);
        }
Exemplo n.º 5
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);
        }
Exemplo n.º 6
0
 public RateService(IUnitOfWork unitOfWork, ITransactionDataProvider transactionDataProvider, ILogger <RateService> logger)
 {
     _unitOfWork = unitOfWork;
     _transactionDataProvider = transactionDataProvider;
     _logger = logger;
 }
        public TransactionServiceTests()
        {
            _x10CadTransaction = new Transaction {
                ID = "4", Currency = KnownCurrencies.CAD, Amount = 23m, Sku = "AX10"
            };
            var x10UsdTransactionDto = new TransactionDto {
                ID = "1", Currency = KnownCurrencies.USD, Amount = 23.5m, Sku = "AX10"
            };

            var uowMock = new Mock <IUnitOfWork>();

            uowMock.Setup(x => x.TransactionRepository.GetAll())
            .Returns(new List <Transaction>
            {
                new Transaction {
                    ID = "1", Currency = KnownCurrencies.USD, Amount = 23.5m, Sku = "AX10"
                },
                new Transaction {
                    ID = "2", Currency = KnownCurrencies.UYU, Amount = 44.00m, Sku = "AX90"
                },
                new Transaction {
                    ID = "3", Currency = KnownCurrencies.CAD, Amount = 10.5m, Sku = "AX15"
                },
                _x10CadTransaction
            }.AsQueryable());

            var transactionDataProvider = new Mock <ITransactionDataProvider>();

            transactionDataProvider.Setup(x => x.GetTransactions())
            .Returns(Task.Run(() => new List <Transaction>
            {
                new Transaction {
                    Currency = KnownCurrencies.USD, Sku = "J385X", Amount = 18m
                },
                new Transaction {
                    Currency = KnownCurrencies.CAD, Sku = "J385Y", Amount = 44.5m
                }
            }));

            var failingTransactionDataProvider = new Mock <ITransactionDataProvider>();

            failingTransactionDataProvider.Setup(x => x.GetTransactions())
            .Returns(Task.Run(() =>
            {
                throw new GNBException("some fake message", ErrorCode.UnableToRetrieveTransactionsFromQuietStone);
                return(new List <Transaction>());
            }));

            var normalizer = new Mock <ICurrencyNormalizer>();

            normalizer.Setup(x => x.Normalize(KnownCurrencies.USD, It.IsAny <IEnumerable <TransactionDto> >()))
            .Returns(Task.Run(() =>
                              new List <TransactionDto>
            {
                new TransactionDto
                {
                    ID       = _x10CadTransaction.ID,
                    Currency = KnownCurrencies.USD,
                    Sku      = _x10CadTransaction.Sku,
                    Amount   = _x10CadTransaction.Amount * CadToUsdRate
                },
                x10UsdTransactionDto
            }.AsEnumerable()));

            _unitOfWork = uowMock.Object;
            _normalizer = normalizer.Object;
            _failingTransactionDataProvider = failingTransactionDataProvider.Object;
            _transactionDataProvider        = transactionDataProvider.Object;
            _logger = new Mock <ILogger <TransactionService> >().Object;

            MapsterConfig.Configure();
        }
 //Constructor
 public TransactionProcess(IIso4217DataProvider currencyProvider, ITransactionDataProvider transactionDataProvider)
 {
     _currencyProvider        = currencyProvider;
     _transactionDataProvider = transactionDataProvider;
 }
Exemplo n.º 9
0
 public TransactionManager(ITransactionDataProvider transactionDataProvider, ITransactionProcessor transactionProcessor)
 {
     _transactionDataProvider = transactionDataProvider;
     _transactionProcessor    = transactionProcessor;
 }