public async Task TestGetTaskAsync_VerifyGetAsyncCalledOnce()
        {
            var mockRepository = new Mock <ITaskHandlerRepository>();
            var TaskHandler    = new API.BusinessLayer.TaskHandler(mockRepository.Object, this.Logger);

            var result = await TaskHandler.GetTaskAsync(10);

            mockRepository.Verify(r => r.GetAsync(10), Times.Once);
        }
        public async Task TestEditTaskAsync_VerifyUpdateAsyncCalledOnce()
        {
            var mockRepository = new Mock <ITaskHandlerRepository>();
            var TaskHandler    = new API.BusinessLayer.TaskHandler(mockRepository.Object, this.Logger);
            var taskDetail     = new TaskItem();
            await TaskHandler.UpdateTaskAsync(10, taskDetail);

            mockRepository.Verify(r => r.UpdateAsync(10, taskDetail), Times.Once);
        }
        public void TestIsTaskValidToClose_ReturnTrueWhenTaskContainsChildTaskWhichIsNOtActive()
        {
            var mockRepository = new Mock <ITaskHandlerRepository>();
            var manageTask     = new API.BusinessLayer.TaskHandler(mockRepository.Object, this.Logger);
            var taskDetail     = new TaskItem()
            {
                Id = 1, Name = "Task 1", Priority = 20
            };

            var taskDetailsList = new List <TaskItem>()
            {
                taskDetail,
                new TaskItem()
                {
                    Id = 2, Name = "Task 2 ", Priority = 20, ParentTaskId = 1, EndTask = true
                },
            };

            mockRepository.Setup(r => r.GetAllAsync()).Returns(Task.FromResult <IEnumerable <TaskItem> >(taskDetailsList));

            var result = manageTask.IsTaskItemValid(taskDetail);

            Assert.True(result);
        }