Bläddra i källkod

Merge pull request #6240 from Bond-009/quickconnecttests

Add tests for QuickConnectManager
Claus Vium 3 år sedan
förälder
incheckning
951a9f39c0

+ 73 - 0
tests/Jellyfin.Server.Implementations.Tests/QuickConnect/QuickConnectManagerTests.cs

@@ -0,0 +1,73 @@
+using System;
+using AutoFixture;
+using AutoFixture.AutoMoq;
+using Emby.Server.Implementations.QuickConnect;
+using MediaBrowser.Controller.Authentication;
+using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Model.Configuration;
+using Moq;
+using Xunit;
+
+namespace Jellyfin.Server.Implementations.Tests.LiveTv
+{
+    public class QuickConnectManagerTests
+    {
+        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);
+            _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);
+
+        [Fact]
+        public void CheckRequestStatus_QuickConnectUnavailable_ThrowsAuthenticationException()
+            => Assert.Throws<AuthenticationException>(() => _quickConnectManager.CheckRequestStatus(string.Empty));
+
+        [Fact]
+        public void AuthorizeRequest_QuickConnectUnavailable_ThrowsAuthenticationException()
+            => Assert.Throws<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();
+            var res2 = _quickConnectManager.CheckRequestStatus(res1.Secret);
+            Assert.Equal(res1, res2);
+        }
+
+        [Fact]
+        public void AuthorizeRequest_QuickConnectAvailable_Success()
+        {
+            _config.QuickConnectAvailable = true;
+            var res = _quickConnectManager.TryConnect();
+            Assert.True(_quickConnectManager.AuthorizeRequest(Guid.Empty, res.Code));
+        }
+    }
+}