public void DeleteOperationTest()
        {
            Mock<IOperationRepository> mock = new Mock<IOperationRepository>();
            Mock<IUserRepository> mockUser = CreateUserRepository();

            PurseController controller = new PurseController(mock.Object, mockUser.Object);
            controller.DeleteOperation(2);
            mock.Verify(m => m.RemoveOperation(It.IsAny<int>(), It.IsAny<int>()));
        }
        public void ChangeOperationTest()
        {
            Mock<IOperationRepository> mock = CreateRepository();
            Mock<IUserRepository> mockUser = CreateUserRepository();

            PurseController controller = new PurseController(mock.Object, mockUser.Object);
            controller.ChangeOperation(1, "Ticket", 125);
            mock.Verify(x => x.ChangeOperation(It.IsAny<SingleOperation>(), It.IsAny<int>()));
        }
        public void AddOperationTest()
        {
            Mock<IOperationRepository> mock = CreateRepository();
            Mock<IUserRepository> mockUser = CreateUserRepository();

            PurseController controller = new PurseController(mock.Object, mockUser.Object);
            controller.AddOperation(2012, 1, 5, "span", "KeyBoard", 100);
            mock.Verify(m => m.AddOperation(It.IsAny<RepositoryOperation>()));
        }
        public void GetAutocompleteTagsTest()
        {
            Mock<IOperationRepository> mock = CreateRepository();
            Mock<IUserRepository> mockUser = CreateUserRepository();

            PurseController controller = new PurseController(mock.Object, mockUser.Object);
            var result = (JsonResult)controller.GetAutocompleteTags();
            Assert.AreEqual(((Collection<string>)result.Data).Count(),3);
            Assert.AreEqual(((Collection<string>)result.Data)[0], "Novus");
        }
        public void IndexTest()
        {
            Mock<IOperationRepository> mock = CreateRepository();
            Mock<IUserRepository> mockUser = CreateUserRepository();

            PurseController controller = new PurseController(mock.Object, mockUser.Object);
            Month result = (Month)controller.Index().ViewData.Model;
            Assert.AreEqual(result.GetDay(1).SpanDaysSingleOperations[0].OperationName,"Novus");
            Assert.AreEqual(result.GetDay(1).SpanDaysSingleOperations[1].OperationName, "MacDonalds");
            Assert.AreEqual(result.GetDay(5).SpanDaysSingleOperations[0].OperationName, "Mouse");
        }
        public void PrevMonthTest()
        {
            Mock<IOperationRepository> mock = CreateRepository();
            Mock<IUserRepository> mockUser = CreateUserRepository();

            PurseController controller = new PurseController(mock.Object, mockUser.Object);
            Month result = (Month)((ViewResult)controller.PrevMonth(11, 2012)).ViewData.Model;
            Assert.AreEqual(result.GetThisMonth(), 10);
            Assert.AreEqual(result.GetThisYear(), 2012);
        }
        public void NextMonthTest()
        {
            Mock<IOperationRepository> mock = CreateRepository();
            Mock<IUserRepository> mockUser = CreateUserRepository();

            PurseController controller = new PurseController(mock.Object, mockUser.Object);
            Month result = (Month)((ViewResult)controller.NextMonth(1, 2012)).ViewData.Model;
            Assert.AreEqual(result.GetThisMonth(), 2);
            Assert.AreEqual(result.GetThisYear(), 2012);
            Assert.AreEqual(result.GetDay(1).SpanDaysSingleOperations[0].OperationName, "MacDonalds");
            Assert.AreEqual(result.GetDay(5).SpanDaysSingleOperations[0].OperationName, "Mouse");
        }
        public void YearSpanStatisticsTest()
        {
            Mock<IOperationRepository> mock = CreateRepository();
            Mock<IUserRepository> mockUser = CreateUserRepository();

            PurseController controller = new PurseController(mock.Object, mockUser.Object);
            var result = (Year)((ViewResult)controller.YearSpanStatistics(2012)).ViewData.Model;
            Assert.AreEqual(result.YearSpanStatistics().Sum(x=>x.Value), 200);
        }
        public void ViewYearTest()
        {
            Mock<IOperationRepository> mock = CreateRepository();
            Mock<IUserRepository> mockUser = CreateUserRepository();

            PurseController controller = new PurseController(mock.Object, mockUser.Object);
            var result = (Year)((ViewResult)controller.ViewYear(2012)).ViewData.Model;
            Assert.AreEqual(2012, result.Name);
        }