public void EditTask_NoChildTask_Successful_Edit()
        {
            Task task     = new Task();
            Task taskEdit = new Task();

            taskEdit.TaskId    = 1;
            taskEdit.TaskName  = "ABCD";
            taskEdit.StartDate = DateTime.Now;
            taskEdit.Priority  = 1;
            IQueryable <Task> childTasks = Enumerable.Empty <Task>().AsQueryable();

            var mockTaskRepository = new Mock <ITaskRepository>(MockBehavior.Strict);

            mockTaskRepository.Setup(p => p.GetTaskByName("ABCD")).Returns(task);
            mockTaskRepository.Setup(p => p.GetAllTask()).Returns(childTasks);
            mockTaskRepository.Setup(p => p.EditTask(taskEdit));
            var objTestTaskMangerHandler = new TaskManagerHandler(mockTaskRepository.Object);

            objTestTaskMangerHandler.EditTask(taskEdit);
            mockTaskRepository.Verify(mock => mock.GetAllTask(), Times.Once());
            mockTaskRepository.Verify(mock => mock.GetTaskByName("ABCD"), Times.Once());
            mockTaskRepository.Verify(mock => mock.EditTask(taskEdit), Times.Once());

            // ...or verify everything.
            // mockSomeClass.VerifyAll();
        }
        public void EditTask_ActiveSameName_Exception_FailedEdit()
        {
            Task task = new Task();

            task.TaskId    = 2;
            task.TaskName  = "ABCD";
            task.StartDate = DateTime.Now;
            task.Priority  = 1;
            Task taskEdit = new Task();

            taskEdit.TaskId    = 1;
            taskEdit.TaskName  = "ABCD";
            taskEdit.StartDate = DateTime.Now;
            taskEdit.Priority  = 1;
            var mockTaskRepository = new Mock <ITaskRepository>(MockBehavior.Strict);

            mockTaskRepository.Setup(p => p.GetTaskByName("ABCD")).Returns(task);
            var objTestTaskMangerHandler = new TaskManagerHandler(mockTaskRepository.Object);

            Assert.That(() => objTestTaskMangerHandler.EditTask(taskEdit),
                        Throws.TypeOf <CustomValidationException>());
            mockTaskRepository.Verify(mock => mock.GetTaskByName("ABCD"), Times.Once());
        }
        public void EditTask_ChildTask_startEndDate_failedValidation()
        {
            Task task     = new Task();
            Task taskEdit = new Task();

            taskEdit.TaskId    = 1;
            taskEdit.TaskName  = "ABCD";
            taskEdit.StartDate = DateTime.Now;
            taskEdit.EndDate   = DateTime.Now.AddDays(5);
            taskEdit.Priority  = 1;
            Task taskchild = new Task();

            taskchild.TaskId       = 1;
            taskchild.TaskName     = "BCAD";
            taskchild.StartDate    = DateTime.Now.AddDays(-2);
            taskchild.EndDate      = DateTime.Now.AddDays(8);
            taskchild.ParentTaskId = 1;
            taskchild.Priority     = 1;

            List <Task> ctask = new List <Task>();

            ctask.Add(taskEdit);
            ctask.Add(taskchild);
            IQueryable <Task> childTasks = ctask.AsQueryable();

            var mockTaskRepository = new Mock <ITaskRepository>(MockBehavior.Strict);

            mockTaskRepository.Setup(p => p.GetTaskByName("ABCD")).Returns(task);
            mockTaskRepository.Setup(p => p.GetAllTask()).Returns(childTasks);
            mockTaskRepository.Setup(p => p.EditTask(taskEdit));
            var objTestTaskMangerHandler = new TaskManagerHandler(mockTaskRepository.Object);

            Assert.That(() => objTestTaskMangerHandler.EditTask(taskEdit),
                        Throws.TypeOf <CustomValidationException>());
            //mockTaskRepository.Verify(mock => mock.GetAllTask(), Times.Once());
            mockTaskRepository.Verify(mock => mock.GetTaskByName("ABCD"), Times.Once());
        }