diff options
Diffstat (limited to 'tests/Jellyfin.Naming.Tests/Subtitles/SubtitleFilePathParserTests.cs')
| -rw-r--r-- | tests/Jellyfin.Naming.Tests/Subtitles/SubtitleFilePathParserTests.cs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/Jellyfin.Naming.Tests/Subtitles/SubtitleFilePathParserTests.cs b/tests/Jellyfin.Naming.Tests/Subtitles/SubtitleFilePathParserTests.cs new file mode 100644 index 000000000..5c62d9418 --- /dev/null +++ b/tests/Jellyfin.Naming.Tests/Subtitles/SubtitleFilePathParserTests.cs @@ -0,0 +1,40 @@ +using Emby.Naming.Common; +using Emby.Naming.Subtitles; +using Xunit; + +namespace Jellyfin.Naming.Tests.Subtitles +{ + public class SubtitleFilePathParserTests + { + private readonly NamingOptions _namingOptions = new NamingOptions(); + + [Theory] + [InlineData("The Skin I Live In (2011).srt", false, false)] + [InlineData("The Skin I Live In (2011).eng.srt", false, false)] + [InlineData("The Skin I Live In (2011).default.srt", true, false)] + [InlineData("The Skin I Live In (2011).forced.srt", false, true)] + [InlineData("The Skin I Live In (2011).eng.foreign.srt", false, true)] + [InlineData("The Skin I Live In (2011).eng.default.foreign.srt", true, true)] + [InlineData("The Skin I Live In (2011).default.foreign.eng.srt", true, true)] + public void SubtitleFilePathParser_ValidFileName_Parses(string input, bool isDefault, bool isForced) + { + var parser = new SubtitleFilePathParser(_namingOptions); + + var result = parser.ParseFile(input); + + Assert.Equal(isDefault, result?.IsDefault); + Assert.Equal(isForced, result?.IsForced); + Assert.Equal(input, result?.Path); + } + + [Theory] + [InlineData("The Skin I Live In (2011).mp4")] + [InlineData("")] + public void SubtitleFilePathParser_InvalidFileName_ReturnsNull(string input) + { + var parser = new SubtitleFilePathParser(_namingOptions); + + Assert.Null(parser.ParseFile(input)); + } + } +} |
