| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | using System;using System.Threading.Tasks;using Jellyfin.Database.Implementations.Entities;using MediaBrowser.Controller;using MediaBrowser.Controller.Configuration;using MediaBrowser.Controller.Devices;using MediaBrowser.Controller.Drawing;using MediaBrowser.Controller.Dto;using MediaBrowser.Controller.Events;using MediaBrowser.Controller.Library;using MediaBrowser.Controller.Session;using Microsoft.Extensions.Hosting;using Microsoft.Extensions.Logging.Abstractions;using Moq;using Xunit;namespace Jellyfin.Server.Implementations.Tests.SessionManager;public class SessionManagerTests{    [Theory]    [InlineData("", typeof(ArgumentException))]    [InlineData(null, typeof(ArgumentNullException))]    public async Task GetAuthorizationToken_Should_ThrowException(string? deviceId, Type exceptionType)    {        await using var sessionManager = new Emby.Server.Implementations.Session.SessionManager(            NullLogger<Emby.Server.Implementations.Session.SessionManager>.Instance,            Mock.Of<IEventManager>(),            Mock.Of<IUserDataManager>(),            Mock.Of<IServerConfigurationManager>(),            Mock.Of<ILibraryManager>(),            Mock.Of<IUserManager>(),            Mock.Of<IMusicManager>(),            Mock.Of<IDtoService>(),            Mock.Of<IImageProcessor>(),            Mock.Of<IServerApplicationHost>(),            Mock.Of<IDeviceManager>(),            Mock.Of<IMediaSourceManager>(),            Mock.Of<IHostApplicationLifetime>());        await Assert.ThrowsAsync(exceptionType, () => sessionManager.GetAuthorizationToken(            new User("test", "default", "default"),            deviceId,            "app_name",            "0.0.0",            "device_name"));    }    [Theory]    [MemberData(nameof(AuthenticateNewSessionInternal_Exception_TestData))]    public async Task AuthenticateNewSessionInternal_Should_ThrowException(AuthenticationRequest authenticationRequest, Type exceptionType)    {        await using var sessionManager = new Emby.Server.Implementations.Session.SessionManager(            NullLogger<Emby.Server.Implementations.Session.SessionManager>.Instance,            Mock.Of<IEventManager>(),            Mock.Of<IUserDataManager>(),            Mock.Of<IServerConfigurationManager>(),            Mock.Of<ILibraryManager>(),            Mock.Of<IUserManager>(),            Mock.Of<IMusicManager>(),            Mock.Of<IDtoService>(),            Mock.Of<IImageProcessor>(),            Mock.Of<IServerApplicationHost>(),            Mock.Of<IDeviceManager>(),            Mock.Of<IMediaSourceManager>(),            Mock.Of<IHostApplicationLifetime>());        await Assert.ThrowsAsync(exceptionType, () => sessionManager.AuthenticateNewSessionInternal(authenticationRequest, false));    }    public static TheoryData<AuthenticationRequest, Type> AuthenticateNewSessionInternal_Exception_TestData()    {        var data = new TheoryData<AuthenticationRequest, Type>        {            {                new AuthenticationRequest { App = string.Empty, DeviceId = "device_id", DeviceName = "device_name", AppVersion = "app_version" },                typeof(ArgumentException)            },            {                new AuthenticationRequest { App = null, DeviceId = "device_id", DeviceName = "device_name", AppVersion = "app_version" },                typeof(ArgumentNullException)            },            {                new AuthenticationRequest { App = "app_name", DeviceId = string.Empty, DeviceName = "device_name", AppVersion = "app_version" },                typeof(ArgumentException)            },            {                new AuthenticationRequest { App = "app_name", DeviceId = null, DeviceName = "device_name", AppVersion = "app_version" },                typeof(ArgumentNullException)            },            {                new AuthenticationRequest { App = "app_name", DeviceId = "device_id", DeviceName = string.Empty, AppVersion = "app_version" },                typeof(ArgumentException)            },            {                new AuthenticationRequest { App = "app_name", DeviceId = "device_id", DeviceName = null, AppVersion = "app_version" },                typeof(ArgumentNullException)            },            {                new AuthenticationRequest { App = "app_name", DeviceId = "device_id", DeviceName = "device_name", AppVersion = string.Empty },                typeof(ArgumentException)            },            {                new AuthenticationRequest { App = "app_name", DeviceId = "device_id", DeviceName = "device_name", AppVersion = null },                typeof(ArgumentNullException)            }        };        return data;    }}
 |