aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorShadowghost <Ghost_of_Stone@web.de>2026-09-04 19:28:59 +0200
committerShadowghost <Ghost_of_Stone@web.de>2026-09-04 19:28:59 +0200
commit46dd7d8e99ff7167d2d175878896294ed823927f (patch)
treeb7073a3dbbe5c4a367b44d58537086b38c1e9127 /tests
parent0d9c9c9eccf2f547f824ad47f2038c378930fdd2 (diff)
Invalidate the singleton DirectoryService cache on filesystem changes
Diffstat (limited to 'tests')
-rw-r--r--tests/Jellyfin.Controller.Tests/DirectoryServiceTests.cs73
1 files changed, 0 insertions, 73 deletions
diff --git a/tests/Jellyfin.Controller.Tests/DirectoryServiceTests.cs b/tests/Jellyfin.Controller.Tests/DirectoryServiceTests.cs
index 14ef604d34..7c275b78cc 100644
--- a/tests/Jellyfin.Controller.Tests/DirectoryServiceTests.cs
+++ b/tests/Jellyfin.Controller.Tests/DirectoryServiceTests.cs
@@ -1,4 +1,3 @@
-using System.Globalization;
using System.IO;
using System.Linq;
using MediaBrowser.Controller.Providers;
@@ -269,62 +268,6 @@ namespace Jellyfin.Controller.Tests
}
[Fact]
- public void GetFileSystemEntries_FarMorePathsThanTheCacheHolds_EvictsInsteadOfGrowing()
- {
- // Eviction of the first path shows up as the file system being read for it twice.
- const int PathCount = 8192;
-
- var fileSystemMock = new Mock<IFileSystem>();
- fileSystemMock.Setup(f => f.GetFileSystemEntries(It.IsAny<string>()))
- .Returns(_lowerCaseFileSystemMetadata);
-
- var directoryService = new DirectoryService(fileSystemMock.Object);
-
- const string FirstPath = "/music/artist0";
- directoryService.GetFileSystemEntries(FirstPath);
-
- for (var i = 1; i < PathCount; i++)
- {
- directoryService.GetFileSystemEntries("/music/artist" + i.ToString(CultureInfo.InvariantCulture));
- }
-
- directoryService.GetFileSystemEntries(FirstPath);
-
- fileSystemMock.Verify(f => f.GetFileSystemEntries(FirstPath), Times.Exactly(2));
- }
-
- [Fact]
- public void GetFileSystemEntries_SecondServiceOverSameFileSystem_ReusesTheFirstAnswer()
- {
- var fileSystemMock = new Mock<IFileSystem>();
- fileSystemMock.Setup(f => f.GetFileSystemEntries(_lowerCasePath))
- .Returns(_lowerCaseFileSystemMetadata);
-
- new DirectoryService(fileSystemMock.Object).GetFileSystemEntries(_lowerCasePath);
- var result = new DirectoryService(fileSystemMock.Object).GetFileSystemEntries(_lowerCasePath);
-
- Assert.Equal(_lowerCaseFileSystemMetadata, result);
- fileSystemMock.Verify(f => f.GetFileSystemEntries(_lowerCasePath), Times.Once);
- }
-
- [Fact]
- public void GetFileSystemEntries_SeparateFileSystems_DoNotShareAnswers()
- {
- var firstFileSystem = new Mock<IFileSystem>();
- firstFileSystem.Setup(f => f.GetFileSystemEntries(_lowerCasePath))
- .Returns(_lowerCaseFileSystemMetadata);
- var secondFileSystem = new Mock<IFileSystem>();
- secondFileSystem.Setup(f => f.GetFileSystemEntries(_lowerCasePath))
- .Returns(_upperCaseFileSystemMetadata);
-
- var firstResult = new DirectoryService(firstFileSystem.Object).GetFileSystemEntries(_lowerCasePath);
- var secondResult = new DirectoryService(secondFileSystem.Object).GetFileSystemEntries(_lowerCasePath);
-
- Assert.Equal(_lowerCaseFileSystemMetadata, firstResult);
- Assert.Equal(_upperCaseFileSystemMetadata, secondResult);
- }
-
- [Fact]
public void Invalidate_GivenADirectory_DropsBothTheListingAndTheFilePaths()
{
var fileSystemMock = new Mock<IFileSystem>();
@@ -364,22 +307,6 @@ namespace Jellyfin.Controller.Tests
}
[Fact]
- public void Invalidate_OnOneService_IsSeenByAnotherOverTheSameFileSystem()
- {
- var fileSystemMock = new Mock<IFileSystem>();
- fileSystemMock.SetupSequence(f => f.GetFileSystemEntries(_lowerCasePath))
- .Returns(_lowerCaseFileSystemMetadata)
- .Returns(_upperCaseFileSystemMetadata);
-
- new DirectoryService(fileSystemMock.Object).GetFileSystemEntries(_lowerCasePath);
- new DirectoryService(fileSystemMock.Object).Invalidate(Path.Combine(_lowerCasePath, "Song 2.srt"));
-
- var result = new DirectoryService(fileSystemMock.Object).GetFileSystemEntries(_lowerCasePath);
-
- Assert.Equal(_upperCaseFileSystemMetadata, result);
- }
-
- [Fact]
public void GetFilePaths_ClearingTheCache_KeepsTheParentDirectory()
{
var parentPath = LocalPath("/music");