Files
TeleWave/backend/tests/TeleWave.Application.Tests/Media/AudioTrackSelectorTests.cs
T

52 lines
1.4 KiB
C#

using TeleWave.Application.Media;
using Xunit;
namespace TeleWave.Application.Tests.Media;
public class AudioTrackSelectorTests
{
[Fact]
public void PicksFirstPreferredLanguage_ByPriorityOrder()
{
// Дорожки: eng(0), rus(1), jpn(2). Предпочтение rus,eng → выбираем rus (индекс 1).
var track = AudioTrackSelector.Select(["eng", "rus", "jpn"], ["rus", "eng"]);
Assert.Equal(1, track);
}
[Fact]
public void FallsBackToNextPreferred_WhenTopMissing()
{
// Нет rus — берём следующий по приоритету eng (индекс 0).
var track = AudioTrackSelector.Select(["eng", "jpn"], ["rus", "eng"]);
Assert.Equal(0, track);
}
[Fact]
public void CaseInsensitiveMatch()
{
var track = AudioTrackSelector.Select(["ENG", "RUS"], ["rus"]);
Assert.Equal(1, track);
}
[Fact]
public void NoMatch_ReturnsNull_KeepingFfmpegDefault()
{
var track = AudioTrackSelector.Select(["eng", "jpn"], ["rus"]);
Assert.Null(track);
}
[Fact]
public void SingleTrack_ReturnsNull()
{
var track = AudioTrackSelector.Select(["eng"], ["eng"]);
Assert.Null(track);
}
[Fact]
public void NoPreference_ReturnsNull()
{
var track = AudioTrackSelector.Select(["eng", "rus"], []);
Assert.Null(track);
}
}