public void GetTotalAmount()
        {
            //Arrange
            GraphSolver   graphSolver   = new GraphSolver();
            AmountService amountService = new AmountService();
            TransactionBusinessService transactionBusinessService = new TransactionBusinessService(graphSolver, amountService, null);

            IEnumerable <Transactions> transactions = MockTransactions.GetTransactions();

            //Act
            var totalAmount = transactionBusinessService.GetTotalAmount(transactions);

            //Assert
            Assert.Equal(expected: (decimal)47.00, actual: totalAmount);
        }
        public void FilterBySku()
        {
            //Arrange
            TransactionFilterService transactionFilterService = new TransactionFilterService(null);

            IEnumerable <Transactions> transactions = MockTransactions.GetTransactions();

            //Act
            var transactions_A0000 = transactionFilterService.FilterBySku(transactions, "A0000");
            var transactions_B0001 = transactionFilterService.FilterBySku(transactions, "B0001");
            var transactions_D0003 = transactionFilterService.FilterBySku(transactions, "D0003");

            //Assert
            Assert.Equal(expected: 2, actual: transactions_A0000.Count());
            Assert.Single(transactions_B0001);
            Assert.Empty(transactions_D0003);
        }
        public void ExchangeToCurrency()
        {
            //Arrange
            GraphSolver   graphSolver   = new GraphSolver();
            AmountService amountService = new AmountService();
            TransactionBusinessService transactionBusinessService = new TransactionBusinessService(graphSolver, amountService, null);

            IEnumerable <Transactions> transactions = MockTransactions.GetTransactions();
            IEnumerable <Rates>        rates        = MockRates.GetRates();

            //Act
            var transactionsToCurrency = transactionBusinessService.ExchangeToCurrency(transactions, rates, "EUR");

            //Assert
            Assert.Equal(expected: (decimal)8.02, actual: transactionsToCurrency.ElementAt(0).Amount);
            Assert.Equal(expected: (decimal)5.26, actual: transactionsToCurrency.ElementAt(1).Amount);
            Assert.Equal(expected: (decimal)5.96, actual: transactionsToCurrency.ElementAt(2).Amount);
            Assert.Equal(expected: (decimal)10.25, actual: transactionsToCurrency.ElementAt(3).Amount);
        }