| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | 
							- using System;
 
- using System.Linq;
 
- using System.Threading.Tasks;
 
- using AutoFixture;
 
- using AutoFixture.AutoMoq;
 
- using Emby.Server.Implementations.QuickConnect;
 
- using MediaBrowser.Controller.Authentication;
 
- using MediaBrowser.Controller.Configuration;
 
- using MediaBrowser.Controller.Net;
 
- using MediaBrowser.Model.Configuration;
 
- using Moq;
 
- using Xunit;
 
- namespace Jellyfin.Server.Implementations.Tests.QuickConnect
 
- {
 
-     public class QuickConnectManagerTests
 
-     {
 
-         private static readonly AuthorizationInfo _quickConnectAuthInfo = new AuthorizationInfo
 
-         {
 
-             Device = "Device",
 
-             DeviceId = "DeviceId",
 
-             Client = "Client",
 
-             Version = "1.0.0"
 
-         };
 
-         private readonly Fixture _fixture;
 
-         private readonly ServerConfiguration _config;
 
-         private readonly QuickConnectManager _quickConnectManager;
 
-         public QuickConnectManagerTests()
 
-         {
 
-             _config = new ServerConfiguration();
 
-             var configManager = new Mock<IServerConfigurationManager>();
 
-             configManager.Setup(x => x.Configuration).Returns(_config);
 
-             _fixture = new Fixture();
 
-             _fixture.Customize(new AutoMoqCustomization
 
-             {
 
-                 ConfigureMembers = true
 
-             }).Inject(configManager.Object);
 
-             // User object contains circular references.
 
-             _fixture.Behaviors.OfType<ThrowingRecursionBehavior>().ToList()
 
-                 .ForEach(b => _fixture.Behaviors.Remove(b));
 
-             _fixture.Behaviors.Add(new OmitOnRecursionBehavior());
 
-             _quickConnectManager = _fixture.Create<QuickConnectManager>();
 
-         }
 
-         [Fact]
 
-         public void IsEnabled_QuickConnectUnavailable_False()
 
-             => Assert.False(_quickConnectManager.IsEnabled);
 
-         [Fact]
 
-         public void TryConnect_QuickConnectUnavailable_ThrowsAuthenticationException()
 
-             => Assert.Throws<AuthenticationException>(() => _quickConnectManager.TryConnect(_quickConnectAuthInfo));
 
-         [Fact]
 
-         public void CheckRequestStatus_QuickConnectUnavailable_ThrowsAuthenticationException()
 
-             => Assert.Throws<AuthenticationException>(() => _quickConnectManager.CheckRequestStatus(string.Empty));
 
-         [Fact]
 
-         public void AuthorizeRequest_QuickConnectUnavailable_ThrowsAuthenticationException()
 
-             => Assert.ThrowsAsync<AuthenticationException>(() => _quickConnectManager.AuthorizeRequest(Guid.Empty, string.Empty));
 
-         [Fact]
 
-         public void IsEnabled_QuickConnectAvailable_True()
 
-         {
 
-             _config.QuickConnectAvailable = true;
 
-             Assert.True(_quickConnectManager.IsEnabled);
 
-         }
 
-         [Fact]
 
-         public void CheckRequestStatus_QuickConnectAvailable_Success()
 
-         {
 
-             _config.QuickConnectAvailable = true;
 
-             var res1 = _quickConnectManager.TryConnect(_quickConnectAuthInfo);
 
-             var res2 = _quickConnectManager.CheckRequestStatus(res1.Secret);
 
-             Assert.Equal(res1, res2);
 
-         }
 
-         [Fact]
 
-         public async Task AuthorizeRequest_QuickConnectAvailable_Success()
 
-         {
 
-             _config.QuickConnectAvailable = true;
 
-             var res = _quickConnectManager.TryConnect(_quickConnectAuthInfo);
 
-             Assert.True(await _quickConnectManager.AuthorizeRequest(Guid.Empty, res.Code));
 
-         }
 
-     }
 
- }
 
 
  |