public void CanCalculateAdSpendValueForAllBudgetsForAllClientsToShow() { IRepository <Client> clientRepository = new LocalRepository <Client>(); IRepository <Budget> budgetRepository = new LocalRepository <Budget>(); var userManager = new Mock <IIdentityMembershipProvider>(); var budget1 = new Budget() { Value = 1000, Month = new DateTime(2014, 1, 1), ClientId = 1, IsHandled = false }; var budget2 = new Budget() { Value = 2000, Month = new DateTime(2014, 2, 1), ClientId = 1 }; var budget3 = new Budget() { Value = 4000, Month = new DateTime(2014, 3, 1), ClientId = 2, IsHandled = false }; var budget4 = new Budget() { Value = 6543, Month = new DateTime(2014, 4, 1), ClientId = 2, IsHandled = false }; budgetRepository.Add(budget1); budgetRepository.Add(budget2); budgetRepository.Add(budget3); budgetRepository.Add(budget4); Client client1 = new Client(); client1.Id = 1; client1.IsActive = true; client1.FeeFixedMonthly = 250; client1.FeePercent = 0.1m; client1.Budgets.Add(budget1); client1.Budgets.Add(budget2); budget1.Client = client1; budget2.Client = client1; Client client2 = new Client(); client2.IsActive = true; client2.Id = 2; client2.FeeFixedMonthly = 500; client2.FeePercent = 0.15m; client2.Budgets.Add(budget3); budget3.Client = client2; client2.Budgets.Add(budget4); budget4.Client = client2; clientRepository.Add(client1); clientRepository.Add(client2); var claim = new Claim("test", "AnyId"); userManager.Setup(um => um.GetRoles(It.IsAny <string>())).Returns(new List <string> { "mockRole" }); var controller = new BudgetController(clientRepository, budgetRepository, userManager.Object); ModelHelper.SetClaimAsCurrentUserForController(claim, controller); var result2 = controller.ListAll(null, true) as ViewResult; var resultModel2 = result2.Model as BudgetListViewModel; Assert.AreEqual(4, resultModel2.Budgets.Count()); Assert.AreEqual(4000.0m, resultModel2.Budgets[2].Value); Assert.AreEqual(3400.0m, resultModel2.Budgets[2].AdSpent); Assert.AreEqual(6543m, resultModel2.Budgets[3].Value); Assert.AreEqual(5561.55m, resultModel2.Budgets[3].AdSpent); }