// // Copyright (c) PlaceholderCompany. All rights reserved. // namespace Jellyfin.MediaEncoding.Keyframes.Tests.FfProbe { using System.IO; using System.Text.Json; using Jellyfin.MediaEncoding.Keyframes.FfProbe; using Xunit; public class FfProbeKeyframeExtractorTests { [Theory] [InlineData("keyframes.txt", "keyframes_result.json")] [InlineData("keyframes_streamduration.txt", "keyframes_streamduration_result.json")] #pragma warning disable CA1707 // Identifiers should not contain underscores - xUnit test naming convention public void ParseStream_Valid_Success(string testDataFileName, string resultFileName) #pragma warning restore CA1707 { var testDataPath = Path.Combine("FfProbe/Test Data", testDataFileName); var resultPath = Path.Combine("FfProbe/Test Data", resultFileName); using var resultFileStream = File.OpenRead(resultPath); var expectedResult = JsonSerializer.Deserialize(resultFileStream)!; using var fileStream = File.OpenRead(testDataPath); using var streamReader = new StreamReader(fileStream); var result = FfProbeKeyframeExtractor.ParseStream(streamReader); Assert.Equal(expectedResult.TotalDuration, result.TotalDuration); Assert.Equal(expectedResult.KeyframeTicks, result.KeyframeTicks); } } }