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);
        }