public void CanCreateABudgetAndDoesNotCreateOverlapping()
        {
            IRepository <Client> clientRepository = new LocalRepository <Client>();
            IRepository <Budget> budgetRepository = new LocalRepository <Budget>();
            var userManager = new Mock <IIdentityMembershipProvider>();

            Budget budget1 = new Budget();

            budget1.Id       = 1;
            budget1.Value    = 1000;
            budget1.Month    = new DateTime(2014, 1, 1);
            budget1.ClientId = 1;

            Budget budget2 = new Budget();

            budget2.Id       = 2;
            budget2.Value    = 2000;
            budget2.Month    = new DateTime(2014, 2, 1);
            budget2.ClientId = 2;

            budgetRepository.Add(budget1);
            budgetRepository.Add(budget2);

            Assert.AreEqual(2, budgetRepository.All().Count());

            var controller = new BudgetController(clientRepository, budgetRepository, userManager.Object);

            EditBudgetViewModel createBudgetPostMessage = new EditBudgetViewModel();

            createBudgetPostMessage.clientId = 1;
            createBudgetPostMessage.month    = "2014-03";
            createBudgetPostMessage.value    = 3000;

            controller.Create(createBudgetPostMessage);
            Assert.AreEqual(3, budgetRepository.All().Count());

            controller.Create(createBudgetPostMessage);
            Assert.AreEqual(3, budgetRepository.All().Count());
        }