public async Task GetVideosByType_Should_Return_Call_IVideoRepository_Map()
        {
            VideoServiceMock mock = VideoServiceMock.Create();

            var type = "Meetup";

            var videos = new List <Video>()
            {
                new Video()
                {
                    Id = 1, Title = "Akka Live Coding - Mert Susur - Deniz İrgin"
                },
                new Video()
                {
                    Id = 2, Title = "Ethereum 101 - Mert Susur"
                }
            };

            mock.VideoRepository
            .Setup(repository => repository.GetVideosByType(It.IsAny <string>()))
            .ReturnsAsync(() => videos);

            mock.VideoModelMapper
            .Setup(mapper => mapper.Map(It.Is <IEnumerable <Video> >(v => v.Equals(videos))))
            .ReturnsAsync(() => new List <VideoModel>());

            IEnumerable <VideoModel> videoModels = await mock.GetVideosByType(type);

            mock.VideoModelMapper.Verify(repository => repository.Map(It.IsAny <IEnumerable <Video> >()), Times.Once);
            Assert.NotNull(videoModels);
        }
        public async Task GetVideosByType_Should_Throw_ArgumentNullException_If_Type_Is_Null()
        {
            VideoServiceMock mock = VideoServiceMock.Create();

            string type = null;

            await Assert.ThrowsAsync <ArgumentNullException>(() => mock.GetVideosByType(type));

            mock.VideoRepository.Verify(repository => repository.GetVideosByType(It.IsAny <string>()), Times.Never);
        }
        public async Task GetVideosByType_Should_Return_Call_IVideoRepository_GetVideosByType()
        {
            VideoServiceMock mock = VideoServiceMock.Create();

            var type = "Meetup";

            mock.VideoRepository
            .Setup(repository => repository.GetVideosByType(It.Is <string>(t => t == type)))
            .ReturnsAsync(() => new List <Video>());

            mock.VideoModelMapper.Setup(mapper => mapper.Map(It.IsAny <IEnumerable <Video> >()))
            .ReturnsAsync(() => new List <VideoModel>());

            IEnumerable <VideoModel> videoModels = await mock.GetVideosByType(type);

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