using System.IO; using System.Linq; using FizzWare.NBuilder; using FluentAssertions; using NUnit.Framework; using NzbDrone.Core.Movies; using NzbDrone.Core.Organizer; using NzbDrone.Core.Qualities; using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests { [TestFixture] public class MovieTitleFirstCharacterFixture : CoreTest { private Movie _movie; private NamingConfig _namingConfig; [SetUp] public void Setup() { _movie = Builder .CreateNew() .Build(); _namingConfig = NamingConfig.Default; _namingConfig.RenameMovies = true; Mocker.GetMock() .Setup(c => c.GetConfig()).Returns(_namingConfig); Mocker.GetMock() .Setup(v => v.Get(Moq.It.IsAny())) .Returns(v => Quality.DefaultQualityDefinitions.First(c => c.Quality == v)); } [TestCase("The Mist", "M", "The Mist")] [TestCase("A", "A", "A")] [TestCase("30 Rock", "3", "30 Rock")] [TestCase("The '80s Greatest", "8", "The '80s Greatest")] [TestCase("좀비버스", "좀", "좀비버스")] [TestCase("¡Mucha Lucha!", "M", "¡Mucha Lucha!")] [TestCase(".hack", "H", "hack")] [TestCase("Ütopya", "U", "Ütopya")] [TestCase("Æon Flux", "A", "Æon Flux")] public void should_get_expected_folder_name_back(string title, string parent, string child) { _movie.Title = title; _namingConfig.MovieFolderFormat = "{Movie TitleFirstCharacter}\\{Movie Title}"; Subject.GetMovieFolder(_movie).Should().Be(Path.Combine(parent, child)); } [Test] public void should_be_able_to_use_lower_case_first_character() { _movie.Title = "Westworld"; _namingConfig.MovieFolderFormat = "{movie titlefirstcharacter}\\{movie title}"; Subject.GetMovieFolder(_movie).Should().Be(Path.Combine("w", "westworld")); } } }