using System; using Paca.Mobile.Core; using Xunit; namespace Paca.Tests.Core; public class TranscodingPresetEngineGateTests { [Fact] public void Gate245_TranscodingPresetEngine_BuildsRemuxArguments_WhenCompatible() { var args = TranscodingPresetEngine.BuildFfmpegArgs("input.mkv", "output.mp4", TranscodePreset.FastRemux); Assert.Contains("-c:v copy", args); Assert.Contains("-c:a copy", args); Assert.Contains("-movflags +faststart", args); } [Fact] public void Gate246_TranscodingPresetEngine_BuildsMobileCompatibilityArguments() { var args = TranscodingPresetEngine.BuildFfmpegArgs("input.webm", "output.mp4", TranscodePreset.MobileCompatibleH264); Assert.Contains("-c:v libx264", args); Assert.Contains("-c:a aac", args); Assert.Contains("-movflags +faststart", args); } [Fact] public void Gate247_TranscodingPresetEngine_BuildsAudioExtractionArguments() { var args = TranscodingPresetEngine.BuildFfmpegArgs("video.mp4", "audio.mp3", TranscodePreset.AudioMp3High); Assert.Contains("-vn", args); Assert.Contains("-c:a libmp3lame", args); Assert.Contains("-b:a 320k", args); } [Fact] public void Gate248_TranscodingPresetEngine_EstimatesOutputFilename() { Assert.Equal("clip.mp3", TranscodingPresetEngine.GetTargetFileName("clip.mkv", TranscodePreset.AudioMp3High)); Assert.Equal("lecture.mp4", TranscodingPresetEngine.GetTargetFileName("lecture.webm", TranscodePreset.MobileCompatibleH264)); Assert.Equal("video.mp4", TranscodingPresetEngine.GetTargetFileName("video.mkv", TranscodePreset.FastRemux)); } }