public async Task VideosByType_Should_Return_BadRequest_If_ModelState_Is_Invalid()
        {
            VideoControllerMock mock = VideoControllerMock.Create();

            mock.ModelState.AddModelError("test", "test");

            IActionResult actionResult = await mock.VideosByType("Meetup");

            var badRequestObjectResult = actionResult as BadRequestObjectResult;

            Assert.NotNull(badRequestObjectResult);

            var serializableError = badRequestObjectResult.Value as SerializableError;

            Assert.NotNull(serializableError);
            Assert.True(((string[])serializableError["test"])[0] == "test");
            mock.VideoService.Verify(service => service.GetVideosByType(It.IsAny <string>()), Times.Never);
        }
        public async Task VideosByType_Should_Call_IVideoService_GetVideosByType_And_Return_Ok()
        {
            VideoControllerMock mock = VideoControllerMock.Create();

            var videoType = "Meetup";

            mock.VideoService.Setup(service => service.GetVideosByType(It.Is <string>(i => i == videoType))).ReturnsAsync(() => new List <VideoModel>());

            IActionResult actionResult = await mock.VideosByType(videoType);

            var okObjectResult = actionResult as OkObjectResult;

            Assert.NotNull(okObjectResult);

            var videoModels = okObjectResult.Value as IEnumerable <VideoModel>;

            Assert.NotNull(videoModels);
            mock.VideoService.Verify(service => service.GetVideosByType(It.IsAny <string>()), Times.Once);
        }