diff options
| author | Shadowghost <Ghost_of_Stone@web.de> | 2026-09-04 19:28:59 +0200 |
|---|---|---|
| committer | Shadowghost <Ghost_of_Stone@web.de> | 2026-09-04 19:28:59 +0200 |
| commit | 46dd7d8e99ff7167d2d175878896294ed823927f (patch) | |
| tree | b7073a3dbbe5c4a367b44d58537086b38c1e9127 /tests | |
| parent | 0d9c9c9eccf2f547f824ad47f2038c378930fdd2 (diff) | |
Invalidate the singleton DirectoryService cache on filesystem changes
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/Jellyfin.Controller.Tests/DirectoryServiceTests.cs | 73 |
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"); |
