QuickConnectManagerTests.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System;
  2. using AutoFixture;
  3. using AutoFixture.AutoMoq;
  4. using Emby.Server.Implementations.QuickConnect;
  5. using MediaBrowser.Controller.Authentication;
  6. using MediaBrowser.Controller.Configuration;
  7. using MediaBrowser.Model.Configuration;
  8. using Moq;
  9. using Xunit;
  10. namespace Jellyfin.Server.Implementations.Tests.LiveTv
  11. {
  12. public class QuickConnectManagerTests
  13. {
  14. private readonly Fixture _fixture;
  15. private readonly ServerConfiguration _config;
  16. private readonly QuickConnectManager _quickConnectManager;
  17. public QuickConnectManagerTests()
  18. {
  19. _config = new ServerConfiguration();
  20. var configManager = new Mock<IServerConfigurationManager>();
  21. configManager.Setup(x => x.Configuration).Returns(_config);
  22. _fixture = new Fixture();
  23. _fixture.Customize(new AutoMoqCustomization
  24. {
  25. ConfigureMembers = true
  26. }).Inject(configManager.Object);
  27. _quickConnectManager = _fixture.Create<QuickConnectManager>();
  28. }
  29. [Fact]
  30. public void IsEnabled_QuickConnectUnavailable_False()
  31. => Assert.False(_quickConnectManager.IsEnabled);
  32. [Fact]
  33. public void TryConnect_QuickConnectUnavailable_ThrowsAuthenticationException()
  34. => Assert.Throws<AuthenticationException>(_quickConnectManager.TryConnect);
  35. [Fact]
  36. public void CheckRequestStatus_QuickConnectUnavailable_ThrowsAuthenticationException()
  37. => Assert.Throws<AuthenticationException>(() => _quickConnectManager.CheckRequestStatus(string.Empty));
  38. [Fact]
  39. public void AuthorizeRequest_QuickConnectUnavailable_ThrowsAuthenticationException()
  40. => Assert.Throws<AuthenticationException>(() => _quickConnectManager.AuthorizeRequest(Guid.Empty, string.Empty));
  41. [Fact]
  42. public void IsEnabled_QuickConnectAvailable_True()
  43. {
  44. _config.QuickConnectAvailable = true;
  45. Assert.True(_quickConnectManager.IsEnabled);
  46. }
  47. [Fact]
  48. public void CheckRequestStatus_QuickConnectAvailable_Success()
  49. {
  50. _config.QuickConnectAvailable = true;
  51. var res1 = _quickConnectManager.TryConnect();
  52. var res2 = _quickConnectManager.CheckRequestStatus(res1.Secret);
  53. Assert.Equal(res1, res2);
  54. }
  55. [Fact]
  56. public void AuthorizeRequest_QuickConnectAvailable_Success()
  57. {
  58. _config.QuickConnectAvailable = true;
  59. var res = _quickConnectManager.TryConnect();
  60. Assert.True(_quickConnectManager.AuthorizeRequest(Guid.Empty, res.Code));
  61. }
  62. }
  63. }