You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jellyfin/tests/Jellyfin.Naming.Tests/Subtitles/SubtitleParserTests.cs

47 lines
1.8 KiB

4 years ago
using System;
using Emby.Naming.Common;
using Emby.Naming.Subtitles;
using Xunit;
namespace Jellyfin.Naming.Tests.Subtitles
{
public class SubtitleParserTests
{
4 years ago
private readonly NamingOptions _namingOptions = new NamingOptions();
4 years ago
[Theory]
[InlineData("The Skin I Live In (2011).srt", null, false, false)]
[InlineData("The Skin I Live In (2011).eng.srt", "eng", false, false)]
[InlineData("The Skin I Live In (2011).eng.default.srt", "eng", true, false)]
[InlineData("The Skin I Live In (2011).eng.forced.srt", "eng", false, true)]
[InlineData("The Skin I Live In (2011).eng.foreign.srt", "eng", false, true)]
[InlineData("The Skin I Live In (2011).eng.default.foreign.srt", "eng", true, true)]
[InlineData("The Skin I Live In (2011).default.foreign.eng.srt", "eng", true, true)]
4 years ago
public void SubtitleParser_ValidFileName_Parses(string input, string language, bool isDefault, bool isForced)
{
4 years ago
var parser = new SubtitleParser(_namingOptions);
var result = parser.ParseFile(input);
Assert.Equal(language, result.Language, true);
Assert.Equal(isDefault, result.IsDefault);
Assert.Equal(isForced, result.IsForced);
}
4 years ago
[Theory]
[InlineData("The Skin I Live In (2011).mp4")]
4 years ago
public void SubtitleParser_InvalidFileName_ReturnsNull(string input)
4 years ago
{
var parser = new SubtitleParser(_namingOptions);
Assert.Null(parser.ParseFile(input));
}
[Fact]
4 years ago
public void SubtitleParser_EmptyFileName_ThrowsArgumentException()
4 years ago
{
Assert.Throws<ArgumentException>(() => new SubtitleParser(_namingOptions).ParseFile(string.Empty));
}
}
}