mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-21 01:24:44 +01:00
Enable nullable for more files and add tests
Adds basic tests for FFProbeVideoInfo.CreateDummyChapters Fixed error message CreateDummyChapters instead of reporting the total minutes it only reported the minute component
This commit is contained in:
@@ -7,6 +7,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoFixture" />
|
||||
<PackageReference Include="AutoFixture.AutoMoq" />
|
||||
<PackageReference Include="AutoFixture.Xunit2" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" />
|
||||
<PackageReference Include="Moq" />
|
||||
<PackageReference Include="xunit" />
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
using System;
|
||||
using AutoFixture;
|
||||
using AutoFixture.AutoMoq;
|
||||
using MediaBrowser.Controller.Configuration;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Model.Configuration;
|
||||
using MediaBrowser.Providers.MediaInfo;
|
||||
using Moq;
|
||||
using Xunit;
|
||||
|
||||
namespace Jellyfin.Providers.Tests.MediaInfo;
|
||||
|
||||
public class FFProbeVideoInfoTests
|
||||
{
|
||||
private readonly FFProbeVideoInfo _fFProbeVideoInfo;
|
||||
|
||||
public FFProbeVideoInfoTests()
|
||||
{
|
||||
var serverConfiguration = new ServerConfiguration()
|
||||
{
|
||||
DummyChapterDuration = (int)TimeSpan.FromMinutes(5).TotalSeconds
|
||||
};
|
||||
var serverConfig = new Mock<IServerConfigurationManager>();
|
||||
serverConfig.Setup(c => c.Configuration)
|
||||
.Returns(serverConfiguration);
|
||||
|
||||
IFixture fixture = new Fixture().Customize(new AutoMoqCustomization { ConfigureMembers = true });
|
||||
fixture.Inject(serverConfig);
|
||||
_fFProbeVideoInfo = fixture.Create<FFProbeVideoInfo>();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(-1L)]
|
||||
[InlineData(long.MinValue)]
|
||||
[InlineData(long.MaxValue)]
|
||||
public void CreateDummyChapters_InvalidRuntime_ThrowsArgumentException(long? runtime)
|
||||
{
|
||||
Assert.Throws<ArgumentException>(
|
||||
() => _fFProbeVideoInfo.CreateDummyChapters(new Video()
|
||||
{
|
||||
RunTimeTicks = runtime
|
||||
}));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(null, 0)]
|
||||
[InlineData(0L, 0)]
|
||||
[InlineData(1L, 0)]
|
||||
[InlineData(TimeSpan.TicksPerMinute * 5, 0)]
|
||||
[InlineData((TimeSpan.TicksPerMinute * 5) + 1, 1)]
|
||||
[InlineData(TimeSpan.TicksPerMinute * 50, 10)]
|
||||
public void CreateDummyChapters_ValidRuntime_CorrectChaptersCount(long? runtime, int chaptersCount)
|
||||
{
|
||||
var chapters = _fFProbeVideoInfo.CreateDummyChapters(new Video()
|
||||
{
|
||||
RunTimeTicks = runtime
|
||||
});
|
||||
|
||||
Assert.Equal(chaptersCount, chapters.Length);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user