public void AddItem_WithValidLogEntry_CallsRep() { // Arrange _moneyRepo.Setup(r => r.SaveItem(It.IsAny<int>(), It.IsAny<MoneyFlow>())); var service = new MoneyService(_moneyRepo.Object); var item = new LogEntry { Description = "description", Value = 1, Category = "Category", Subcategory = "Subcategory"}; // Act service.AddItem(1, item); // Assert _moneyRepo.Verify(r => r.SaveItem(It.IsAny<int>(), It.IsAny<MoneyFlow>()), Times.Once()); }
public void GetFlowsByMonth_WithValidData_ReturnsCorrectExpenses() { // Arrange var service = new MoneyService(_moneyRepo.Object); _moneyRepo.Setup(m => m.GetFlows(It.IsAny<int>())).Returns(new List<MoneyFlow> { new MoneyFlow { Date = DateTime.Parse("01/05/2012"), Debit = 1}, new MoneyFlow { Date = DateTime.Parse("01/07/2012"), Debit = 1}, }.AsQueryable()); // Act var result = service.GetFlowsByMonth(1); // Assert Assert.That(result.Count, Is.EqualTo(2)); Assert.That(result[0].Date.Month, Is.EqualTo(5)); Assert.That(result[0].Expenses, Is.EqualTo(1)); Assert.That(result[1].Date.Month, Is.EqualTo(7)); Assert.That(result[1].Expenses, Is.EqualTo(1)); }
public void Can_Group_By() { // Arrange var service = new MoneyService(_moneyRepo.Object); var list = new List<MoneyFlow> { new MoneyFlow { Date = DateTime.Now, Category = "Food", Subcategory = "Groceries", Debit = .50m}, new MoneyFlow { Date = DateTime.Now, Category = "Food", Subcategory = "Groceries", Debit = 1m }, new MoneyFlow { Date = DateTime.Now, Category = "Health", Subcategory = "Drugs", Debit = .75m }, }; // Act var result = service.Collapse(list); // Assert Assert.That(result.Count, Is.EqualTo(2)); Assert.That(result[0].Category, Is.EqualTo("Food")); Assert.That(result[0].SubCategory, Is.EqualTo("Groceries")); Assert.That(result[0].Pounds, Is.EqualTo(-1.5m)); Assert.That(result[1].Category, Is.EqualTo("Health")); Assert.That(result[1].SubCategory, Is.EqualTo("Drugs")); Assert.That(result[1].Pounds, Is.EqualTo(-0.75m)); }
public void GetMoneyLogs_WithValidRepo_ShouldReturnItemsAtBeginningAndEndOfMonth() { // Arrange _moneyRepo.Setup(r => r.SaveItem(It.IsAny<int>(), It.IsAny<MoneyFlow>())); var service = new MoneyService(_moneyRepo.Object); _moneyRepo.Setup(m => m.GetFlows(It.IsAny<int>())).Returns(new List<MoneyFlow> { new MoneyFlow { Date = DateTime.Parse("01/04/2012"), Id = 1 }, new MoneyFlow { Date = DateTime.Parse("30/04/2012"), Id = 2}, }.AsQueryable()); // Act var result = service.GetMoneyLogs(1, DateTime.Parse("07/04/2012")); // Assert Assert.That(result.Count, Is.EqualTo(2)); Assert.That(result[0].Id, Is.EqualTo(1)); Assert.That(result[1].Id, Is.EqualTo(2)); }