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); } }