FFProbeVideoInfoTests.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System;
  2. using AutoFixture;
  3. using AutoFixture.AutoMoq;
  4. using MediaBrowser.Controller.Configuration;
  5. using MediaBrowser.Controller.Entities;
  6. using MediaBrowser.Model.Configuration;
  7. using MediaBrowser.Providers.MediaInfo;
  8. using Moq;
  9. using Xunit;
  10. namespace Jellyfin.Providers.Tests.MediaInfo;
  11. public class FFProbeVideoInfoTests
  12. {
  13. private readonly FFProbeVideoInfo _fFProbeVideoInfo;
  14. public FFProbeVideoInfoTests()
  15. {
  16. var serverConfiguration = new ServerConfiguration()
  17. {
  18. DummyChapterDuration = (int)TimeSpan.FromMinutes(5).TotalSeconds
  19. };
  20. var serverConfig = new Mock<IServerConfigurationManager>();
  21. serverConfig.Setup(c => c.Configuration)
  22. .Returns(serverConfiguration);
  23. IFixture fixture = new Fixture().Customize(new AutoMoqCustomization { ConfigureMembers = true });
  24. fixture.Inject(serverConfig);
  25. _fFProbeVideoInfo = fixture.Create<FFProbeVideoInfo>();
  26. }
  27. [Theory]
  28. [InlineData(-1L)]
  29. [InlineData(long.MinValue)]
  30. [InlineData(long.MaxValue)]
  31. public void CreateDummyChapters_InvalidRuntime_ThrowsArgumentException(long? runtime)
  32. {
  33. Assert.Throws<ArgumentException>(
  34. () => _fFProbeVideoInfo.CreateDummyChapters(new Video()
  35. {
  36. RunTimeTicks = runtime
  37. }));
  38. }
  39. [Theory]
  40. [InlineData(null, 0)]
  41. [InlineData(0L, 0)]
  42. [InlineData(1L, 0)]
  43. [InlineData(TimeSpan.TicksPerMinute * 5, 0)]
  44. [InlineData((TimeSpan.TicksPerMinute * 5) + 1, 1)]
  45. [InlineData(TimeSpan.TicksPerMinute * 50, 10)]
  46. public void CreateDummyChapters_ValidRuntime_CorrectChaptersCount(long? runtime, int chaptersCount)
  47. {
  48. var chapters = _fFProbeVideoInfo.CreateDummyChapters(new Video()
  49. {
  50. RunTimeTicks = runtime
  51. });
  52. Assert.Equal(chaptersCount, chapters.Length);
  53. }
  54. }