public async Task PutCallsWithInValidModelStateExpectedNotFoundResult()
        {
            // Arrange
            var watchListModel = new WatchListModel {
                MovieId = 383498, Comments = "Deadpool 2 is review good"
            };

            mediatR = new Mock <IMediator>();
            mediatR.Setup(m => m.Send(It.IsAny <UpdateWatchListRequest>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult <WatchListModel>(null));
            controller = new WatchListController(mediatR.Object);
            controller.ModelState.AddModelError("Comments", "Comments is Required");

            // Act
            var result = await controller.Put(watchListModel) as BadRequestObjectResult;

            // Assert
            Assert.NotNull(result);
            Assert.Equal(400, result.StatusCode);
        }
        public async Task PutCallsMediatRWithExpectedNotFoundResult()
        {
            // Arrange
            var watchListModel = new WatchListModel {
                MovieId = 383498, Comments = "Deadpool 2 is review good"
            };

            mediatR = new Mock <IMediator>();
            mediatR.Setup(m => m.Send(It.IsAny <UpdateWatchListRequest>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult <WatchListModel>(null));
            controller = new WatchListController(mediatR.Object);

            // Act
            var result = await controller.Put(watchListModel) as NotFoundObjectResult;

            // Assert
            mediatR.Verify(m => m.Send(It.IsAny <UpdateWatchListRequest>(), It.IsAny <CancellationToken>()), Times.Once());
            Assert.NotNull(result);
            Assert.Equal("WatchList Not exists in the DB or error occurred", result.Value);
            Assert.Equal(404, result.StatusCode);
        }
        public async Task PutCallsMediatRWithExpectedResult()
        {
            // Arrange
            var watchListModel = new WatchListModel {
                MovieId = 383498, Comments = "Deadpool 2 is review good"
            };

            mediatR = new Mock <IMediator>();
            mediatR.Setup(m => m.Send(It.IsAny <UpdateWatchListRequest>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(watchListModel));
            controller = new WatchListController(mediatR.Object);

            // Act
            var result = await controller.Put(watchListModel) as OkObjectResult;

            // Assert
            Assert.NotNull(result);
            var watchListModels = result.Value as WatchListModel;

            Assert.NotNull(watchListModels);
            Assert.Equal("Deadpool 2 is review good", watchListModels.Comments);
        }