public void GetValues_InitializedData_IgnoreTransfers() { //Setup var transactionRepoSetup = new Mock<ITransactionRepository>(); transactionRepoSetup.SetupAllProperties(); var categoryRepoSetup = new Mock<IRepository<Category>>(); categoryRepoSetup.SetupAllProperties(); var categoryRepo = categoryRepoSetup.Object; categoryRepo.Data = new ObservableCollection<Category>(new List<Category> { new Category {Id = 2, Name = "Ausgehen"} }); var transactionRepo = transactionRepoSetup.Object; transactionRepo.Data = new ObservableCollection<FinancialTransaction>(new List<FinancialTransaction> { new FinancialTransaction { Id = 1, Type = (int) TransactionType.Income, Date = DateTime.Today, Amount = 60, Category = categoryRepo.Data.First(), CategoryId = 1 }, new FinancialTransaction { Id = 2, Type = (int) TransactionType.Spending, Date = DateTime.Today, Amount = 90, Category = categoryRepo.Data.First(), CategoryId = 1 }, new FinancialTransaction { Id = 3, Type = (int) TransactionType.Transfer, Date = DateTime.Today, Amount = 40, Category = categoryRepo.Data.First(), CategoryId = 1 } }); //Excution var result = new CategorySpreadingProvider(transactionRepo, categoryRepo).GetValues(DateTime.Today.AddDays(-3), DateTime.Today.AddDays(3)).ToList(); //Assertion result.Count.ShouldBe(1); result.First().Value.ShouldBe(30); }
public void GetValues_InitializedData_AddOtherItem() { //Setup var transactionRepoSetup = new Mock<ITransactionRepository>(); transactionRepoSetup.SetupAllProperties(); var categoryRepoSetup = new Mock<IRepository<Category>>(); categoryRepoSetup.SetupAllProperties(); var categoryRepo = categoryRepoSetup.Object; categoryRepo.Data = new ObservableCollection<Category>(new List<Category> { new Category {Id = 1, Name = "Einkaufen"}, new Category {Id = 2, Name = "Ausgehen"}, new Category {Id = 3, Name = "Bier"}, new Category {Id = 4, Name = "Wein"}, new Category {Id = 5, Name = "Wodka"}, new Category {Id = 6, Name = "Limoncella"}, new Category {Id = 7, Name = "Spagetthi"}, new Category {Id = 8, Name = "Tomaten"} }); var transactionRepo = transactionRepoSetup.Object; transactionRepo.Data = new ObservableCollection<FinancialTransaction>(new List<FinancialTransaction> { new FinancialTransaction { Id = 1, Type = (int) TransactionType.Spending, Date = DateTime.Today, Amount = 10, Category = categoryRepo.Data[0], CategoryId = 1 }, new FinancialTransaction { Id = 2, Type = (int) TransactionType.Spending, Date = DateTime.Today, Amount = 20, Category = categoryRepo.Data[1], CategoryId = 2 }, new FinancialTransaction { Id = 3, Type = (int) TransactionType.Spending, Date = DateTime.Today, Amount = 30, Category = categoryRepo.Data[2], CategoryId = 3 }, new FinancialTransaction { Id = 3, Type = (int) TransactionType.Spending, Date = DateTime.Today, Amount = 40, Category = categoryRepo.Data[3], CategoryId = 4 }, new FinancialTransaction { Id = 3, Type = (int) TransactionType.Spending, Date = DateTime.Today, Amount = 50, Category = categoryRepo.Data[4], CategoryId = 5 }, new FinancialTransaction { Id = 3, Type = (int) TransactionType.Spending, Date = DateTime.Today, Amount = 60, Category = categoryRepo.Data[5], CategoryId = 6 }, new FinancialTransaction { Id = 3, Type = (int) TransactionType.Spending, Date = DateTime.Today, Amount = 70, Category = categoryRepo.Data[6], CategoryId = 7 }, new FinancialTransaction { Id = 3, Type = (int) TransactionType.Spending, Date = DateTime.Today, Amount = 80, Category = categoryRepo.Data[7], CategoryId = 8 } }); //Excution var result = new CategorySpreadingProvider(transactionRepo, categoryRepo).GetValues(DateTime.Today.AddDays(-3), DateTime.Today.AddDays(3)).ToList(); //Assertion result.Count.ShouldBe(7); result[0].Value.ShouldBe(80); result[1].Value.ShouldBe(70); result[2].Value.ShouldBe(60); result[3].Value.ShouldBe(50); result[4].Value.ShouldBe(40); result[5].Value.ShouldBe(30); result[6].Value.ShouldBe(30); }
public void GetValues_IncomeHigherThanSpending_SpendingSetToZero() { //Setup var transactionRepoSetup = new Mock<ITransactionRepository>(); transactionRepoSetup.SetupAllProperties(); var categoryRepoSetup = new Mock<IRepository<Category>>(); categoryRepoSetup.SetupAllProperties(); var categoryRepo = categoryRepoSetup.Object; categoryRepo.Data = new ObservableCollection<Category>(new List<Category> { new Category {Id = 1, Name = "Einkaufen"} }); var transactionRepo = transactionRepoSetup.Object; transactionRepo.Data = new ObservableCollection<FinancialTransaction>(new List<FinancialTransaction> { new FinancialTransaction { Id = 1, Type = (int) TransactionType.Income, Date = DateTime.Today, Amount = 100, Category = categoryRepo.Data[0], CategoryId = 1 }, new FinancialTransaction { Id = 2, Type = (int) TransactionType.Spending, Date = DateTime.Today, Amount = 90, Category = categoryRepo.Data[0], CategoryId = 1 } }); //Excution var result = new CategorySpreadingProvider(transactionRepo, categoryRepo).GetValues(DateTime.Today.AddDays(-3), DateTime.Today.AddDays(3)).ToList(); //Assertion result.Count.ShouldBe(1); result[0].Value.ShouldBe(0); }