public void WhenHasTwoExtraDetails_ThenSet(string fileName)
            {
                var sut = new MovieFileName(fileName);

                Assert.That(sut.ExtraDetails.First(), Is.EqualTo("IMAX"));
                Assert.That(sut.ExtraDetails.Second(), Is.EqualTo("UHD"));
            }
示例#2
0
        public virtual void GenerateRenameSubFiles(int index, bool copyToMovieLocation = false)
        {
            var subFileInfo = SubFiles[index];
            var fileName    = MovieFileName.Substring(0, MovieFileName.LastIndexOf(".", StringComparison.Ordinal));
            var extension   = subFileInfo.Name.Substring(
                subFileInfo.Name.Substring(subFileInfo.Name.Length - 15).IndexOf(".", StringComparison.Ordinal) +
                (subFileInfo.Name.Length - 15));

            if (copyToMovieLocation)
            {
                if (MovieFile.Directory != null)
                {
                    var path = Path.Combine(MovieFile.Directory.FullName, fileName + extension);
                    RenamedSubFiles.Insert(index, new FileInfo(path));
                }
                else
                {
                    throw new FileNotFoundException("视频文件不存在", MovieFile.FullName);
                }
            }
            else
            {
                if (subFileInfo.Directory != null)
                {
                    var path = Path.Combine(subFileInfo.Directory.FullName, fileName + extension);
                    RenamedSubFiles.Insert(index, new FileInfo(path));
                }
                else
                {
                    throw new FileNotFoundException("字幕文件不存在", subFileInfo.FullName);
                }
            }
        }
        public void PrintFilmList(IList <MovieFileName> films)
        {
            _textBox.Clear();

            MovieFileName previous = null;

            foreach (var film in films)
            {
                if (previous == null)
                {
                    _textBox.PrintLine(Path.GetFileNameWithoutExtension(film.ToString()));
                }
                else
                {
                    if (IsDiffYear(film, previous))
                    {
                        _textBox.PrintLine();
                    }

                    if (previous.ToString() != film.ToString())
                    {
                        _textBox.PrintLine(Path.GetFileNameWithoutExtension(film.ToString()));
                    }
                }

                previous = film;
            }
        }
            public void WhenFileNameIsValid_ThenSetProperties()
            {
                const string fileName = "The Dark Knight [2008] (IMAX) (UHD).mkv";

                var sut = new MovieFileName(fileName);

                Assert.That(sut.FileName, Is.EqualTo(fileName));
            }
        private bool IsDiffYear(MovieFileName film1, MovieFileName film2)
        {
            if (film1 == null || film2 == null)
            {
                return(false);
            }

            return(film1.Year != film2.Year);
        }
            public void WhenCalled_ThenReturnString()
            {
                const string fileName = "The Dark Knight [2008] (IMAX) (UHD).mkv";

                var sut = new MovieFileName(fileName);

                var result = sut.ToString();

                Assert.That(result, Is.EqualTo(fileName));
            }
            public void WhenHasNoExtraDetails_ThenSetEmpty(string fileName)
            {
                var sut = new MovieFileName(fileName);

                Assert.That(sut.Title, Is.EqualTo("The Dark Knight"));
                Assert.That(sut.Year, Is.EqualTo(2008));
                Assert.That(sut.ExtraDetails, Is.Empty);
                Assert.That(sut.FileName, Is.EqualTo(fileName));
                Assert.That(sut.FileExtension, Is.EqualTo("mkv"));
            }
            public void WhenHasNoFileNameExtension_ThenSetEmpty()
            {
                var sut = new MovieFileName("The Dark Knight [2008] (IMAX) (UHD)");

                Assert.That(sut.FileExtension, Is.Empty);
            }
            public void WhenHasFileNameExtension_ThenSet()
            {
                var sut = new MovieFileName("The Dark Knight [2008] (IMAX) (UHD).mkv");

                Assert.That(sut.FileExtension, Is.EqualTo("mkv"));
            }
 public void WhenIsNullOrEmpty_ThenThrowException(string fileName)
 {
     Assert.Throws <ArgumentException>(() => _ = new MovieFileName(fileName));
 }
            public void WhenHasOneExtraDetail_ThenSet(string fileName)
            {
                var sut = new MovieFileName(fileName);

                Assert.That(sut.ExtraDetails.Single(), Is.EqualTo("IMAX"));
            }
            public void WhenYearIsValid_ThenSetYear(string fileName)
            {
                var sut = new MovieFileName(fileName);

                Assert.That(sut.Year, Is.EqualTo(2008));
            }
 public void WhenYearIsInvalid_ThenThrowException(string fileName)
 {
     Assert.Throws <FormatException>(() => _ = new MovieFileName(fileName));
 }
            public void WhenTitleIsValid_ThenSetProperties(string fileName)
            {
                var sut = new MovieFileName(fileName);

                Assert.That(sut.Title, Is.EqualTo("The Dark Knight"));
            }
            public void WhenNoTitle_ThenSetEmpty(string fileName)
            {
                var sut = new MovieFileName(fileName);

                Assert.That(sut.Title, Is.Empty);
            }