public void AssignValue_should_correctly_set_string_value()
        {
            var dto = new TorrentVideoFileInfo();

            TorrenVideoFileParser.TryAssignValue(dto, x => x.Audio, "audio_matched_value");
            Assert.Equal(dto.Audio, "audio_matched_value");
        }
        public void AssignValue_should_correctly_set_int_value()
        {
            var dto = new TorrentVideoFileInfo();

            TorrenVideoFileParser.TryAssignValue(dto, x => x.Year, "1988");
            Assert.Equal(dto.Year, 1988);
        }
        public void AssignValue_should_correctly_set_bool_value()
        {
            var dto = new TorrentVideoFileInfo();

            TorrenVideoFileParser.TryAssignValue(dto, x => x.Extended, "true");
            Assert.Equal(dto.Extended, true);
        }
        public void Parse_should_return_correct_dto2()
        {
            var dto = TorrenVideoFileParser.Parse("True.Detective.S02E01.PROPER.720p.HDTV.x264 - KILLERS");

            Assert.Equal(dto.Season, 2);
            Assert.Equal(dto.Episode, 1);
            Assert.Equal(dto.Quality, "HDTV");
            Assert.Equal(dto.Resolution, "720p");
            Assert.Equal(dto.Codec, "x264");
            Assert.Equal(dto.Title, "True Detective");
            Assert.Equal(dto.Group, "KILLERS");
            Assert.Equal(dto.Proper, true);
        }
        private async Task <IList <VideoFileProperty> > GetVideoProperties(Func <Task <IReadOnlyList <StorageFile> > > fetchFiles)
        {
            var files = await fetchFiles();

            var videoProperties = new List <VideoFileProperty>();

            foreach (var file in files)
            {
                var videoProperty = await file.Properties.GetVideoPropertiesAsync().AsTask();

                var torrentProperty = TorrenVideoFileParser.Parse(file.Name);
                var property        = (VideoFileProperty) new VideoFileProperty(file.Path)
                                      .InjectFrom(videoProperty)
                                      .InjectFrom(torrentProperty);
                if (!string.IsNullOrEmpty(property.Title))
                {
                    videoProperties.Add(property);
                }
            }
            return(videoProperties);
        }
        public void Parse_should_return_correct_dto(string fileName, TorrentVideoFileInfo expectedDto)
        {
            var dto = TorrenVideoFileParser.Parse(fileName);

            Assert.Equal(dto.Season, expectedDto.Season);
            Assert.Equal(dto.Episode, expectedDto.Episode);
            Assert.Equal(dto.Year, expectedDto.Year);
            Assert.Equal(dto.Resolution, expectedDto.Resolution);
            Assert.Equal(dto.Quality, expectedDto.Quality);
            Assert.Equal(dto.Codec, expectedDto.Codec);
            Assert.Equal(dto.Audio, expectedDto.Audio);
            Assert.Equal(dto.Group, expectedDto.Group);
            Assert.Equal(dto.Region, expectedDto.Region);
            Assert.Equal(dto.Extended, expectedDto.Extended);
            Assert.Equal(dto.Hardcoded, expectedDto.Hardcoded);
            Assert.Equal(dto.Proper, expectedDto.Proper);
            Assert.Equal(dto.Repack, expectedDto.Repack);
            Assert.Equal(dto.Container, expectedDto.Container);
            Assert.Equal(dto.Widescreen, expectedDto.Widescreen);
            Assert.Equal(dto.Website, expectedDto.Website);
            Assert.Equal(dto.Language, expectedDto.Language);
            Assert.Equal(dto.Garbage, expectedDto.Garbage);
            Assert.Equal(dto.Title, expectedDto.Title);
        }