public async Task TestGet_VerifyTaskName()
        {
            SetUpMockData();

            var taskRepository = new TaskHandlerRepository(mockContext.Object);

            var taskDetails = await taskRepository.GetAsync(2);

            Assert.IsType <TaskItem>(taskDetails);
        }
        public async Task TestGetAll_ReturnsTwoTaskDetails()
        {
            SetUpMockData();

            var taskRepository = new TaskHandlerRepository(mockContext.Object);

            var taskDetails = await taskRepository.GetAllAsync();

            Assert.Equal(2, taskDetails.Count());
        }
        public async Task TestCreateAsync_VerifySaveChangesCalledOnce()
        {
            SetUpMockData();

            var taskRepository = new TaskHandlerRepository(mockContext.Object);
            var taskDetail     = new TaskItem()
            {
                Id = 1, Name = "Task 1 ", Priority = 10
            };
            var mockSet = new Mock <DbSet <TaskItem> >();

            mockContext.Setup(m => m.Tasks).Returns(mockSet.Object);
            var result = await taskRepository.CreateAsync(taskDetail);

            mockSet.Verify(m => m.Add(taskDetail), Times.Once);
            mockContext.Verify(m => m.SaveChangesAsync(System.Threading.CancellationToken.None), Times.Once);
        }
        public async Task TestUpdateAsync_VerifySaveChangesCalledOnce()
        {
            var contextOptions = new DbContextOptions <TaskHandlerDbContext>();
            var mockContext    = new Mock <TaskHandlerDbContext>(contextOptions);

            var taskRepository = new TaskHandlerRepository(mockContext.Object);

            var taskDetail = new TaskItem()
            {
                Id = 1, Name = "Task 1 ", Priority = 10
            };

            var mockSet = new Mock <DbSet <TaskItem> >();

            mockContext.Setup(m => m.Tasks).Returns(mockSet.Object);
            await taskRepository.UpdateAsync(1, taskDetail);

            mockSet.Verify(m => m.Update(taskDetail), Times.Once);
            mockContext.Verify(m => m.SaveChangesAsync(System.Threading.CancellationToken.None), Times.Once);
        }