public void LoadRecurringList_NoParameters_ListWithRecurringTrans()
        {
            var accountRepoSetup = new Mock<IDataAccess<Account>>();
            accountRepoSetup.Setup(x => x.LoadList(null)).Returns(new List<Account>());

            var dataAccessSetup = new Mock<IDataAccess<FinancialTransaction>>();
            dataAccessSetup.Setup(x => x.LoadList(null)).Returns(new List<FinancialTransaction>());

            var repo = new TransactionRepository(dataAccessSetup.Object,
                new Mock<IDataAccess<RecurringTransaction>>().Object)
            {
                Data = new ObservableCollection<FinancialTransaction>(new List<FinancialTransaction>
                {
                    new FinancialTransaction
                    {
                        Id = 1,
                        IsRecurring = true,
                        RecurringTransaction = new RecurringTransaction {Id = 1, IsEndless = true},
                        ReccuringTransactionId = 1
                    },
                    new FinancialTransaction {Id = 2, IsRecurring = false},
                    new FinancialTransaction
                    {
                        Id = 3,
                        IsRecurring = true,
                        RecurringTransaction =
                            new RecurringTransaction {Id = 2, IsEndless = false, EndDate = DateTime.Today.AddDays(10)},
                        ReccuringTransactionId = 2
                    },
                    new FinancialTransaction
                    {
                        Id = 4,
                        IsRecurring = true,
                        RecurringTransaction =
                            new RecurringTransaction {Id = 3, IsEndless = false, EndDate = DateTime.Today.AddDays(-10)},
                        ReccuringTransactionId = 3
                    }
                })
            };

            var result = repo.LoadRecurringList().ToList();

            result.Count.ShouldBe(2);
            result[0].Id.ShouldBe(1);
            result[1].Id.ShouldBe(3);
        }
        public void LoadRecurringList_ListWithRecurringTransaction()
        {
            var dbHelper = new SqliteConnectionCreator(new WindowsSqliteConnectionFactory());

            var transactionDataAccess =
                new TransactionDataAccess(dbHelper);
            var recTransactionDataAccess =
                new RecurringTransactionDataAccess(dbHelper);
            var repository = new TransactionRepository(transactionDataAccess, recTransactionDataAccess);

            transactionDataAccess.SaveItem(new FinancialTransaction {Amount = 999, IsRecurring = false});
            transactionDataAccess.SaveItem(new FinancialTransaction
            {
                Amount = 123,
                IsRecurring = true,
                RecurringTransaction = new RecurringTransaction {IsEndless = true}
            });

            repository.Load();
            var result = repository.LoadRecurringList().ToList();

            result.Count.ShouldBe(1);

            result.First().Id.ShouldBe(2);
            result.First().RecurringTransaction.Id.ShouldBe(1);
        }