blob: 4110eb513f850114e76e26f8136c74c131b888ef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
using System;
using Jellyfin.Database.Implementations.Entities;
using Jellyfin.Server.Implementations.Tests.Item;
using Jellyfin.Server.Implementations.Users;
using Xunit;
namespace Jellyfin.Server.Implementations.Tests.Users;
/// <summary>
/// Item display preferences are looked up by the item they belong to, so they have to be stored under it as well:
/// a row stored under any other item is never found again, and every later request stores another one.
/// </summary>
public sealed class DisplayPreferencesManagerTests : SqliteDbTestFixture
{
private const string Client = "client";
private static readonly Guid _userId = Guid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa");
private static readonly Guid _itemId = Guid.Parse("bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb");
private readonly DisplayPreferencesManager _manager;
public DisplayPreferencesManagerTests()
{
_manager = new DisplayPreferencesManager(CreateDbContextFactory());
using var context = CreateDbContext();
context.Users.Add(new User("user", "auth-provider", "reset-provider") { Id = _userId });
context.SaveChanges();
}
[Fact]
public void GetItemDisplayPreferences_NewItem_StoresThePreferencesUnderThatItem()
{
var preferences = _manager.GetItemDisplayPreferences(_userId, _itemId, Client);
Assert.Equal(_itemId, preferences.ItemId);
using var context = CreateDbContext();
Assert.Equal(_itemId, Assert.Single(context.ItemDisplayPreferences).ItemId);
}
[Fact]
public void GetItemDisplayPreferences_SameItemTwice_ReturnsTheStoredPreferences()
{
var first = _manager.GetItemDisplayPreferences(_userId, _itemId, Client);
var second = _manager.GetItemDisplayPreferences(_userId, _itemId, Client);
Assert.Equal(first.Id, second.Id);
using var context = CreateDbContext();
Assert.Single(context.ItemDisplayPreferences);
}
}
|