SubtitleFilePathParserTests.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Emby.Naming.Common;
  2. using Emby.Naming.Subtitles;
  3. using Xunit;
  4. namespace Jellyfin.Naming.Tests.Subtitles
  5. {
  6. public class SubtitleFilePathParserTests
  7. {
  8. private readonly NamingOptions _namingOptions = new NamingOptions();
  9. [Theory]
  10. [InlineData("The Skin I Live In (2011).srt", false, false)]
  11. [InlineData("The Skin I Live In (2011).eng.srt", false, false)]
  12. [InlineData("The Skin I Live In (2011).default.srt", true, false)]
  13. [InlineData("The Skin I Live In (2011).forced.srt", false, true)]
  14. [InlineData("The Skin I Live In (2011).eng.foreign.srt", false, true)]
  15. [InlineData("The Skin I Live In (2011).eng.default.foreign.srt", true, true)]
  16. [InlineData("The Skin I Live In (2011).default.foreign.eng.srt", true, true)]
  17. public void SubtitleFilePathParser_ValidFileName_Parses(string input, bool isDefault, bool isForced)
  18. {
  19. var parser = new SubtitleFilePathParser(_namingOptions);
  20. var result = parser.ParseFile(input);
  21. Assert.Equal(isDefault, result?.IsDefault);
  22. Assert.Equal(isForced, result?.IsForced);
  23. Assert.Equal(input, result?.Path);
  24. }
  25. [Theory]
  26. [InlineData("The Skin I Live In (2011).mp4")]
  27. [InlineData("")]
  28. public void SubtitleFilePathParser_InvalidFileName_ReturnsNull(string input)
  29. {
  30. var parser = new SubtitleFilePathParser(_namingOptions);
  31. Assert.Null(parser.ParseFile(input));
  32. }
  33. }
  34. }