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