Bläddra i källkod

fix: update tests

Mikal Stordal 1 år sedan
förälder
incheckning
12ed1d6429
1 ändrade filer med 60 tillägg och 8 borttagningar
  1. 60 8
      tests/Jellyfin.Controller.Tests/DirectoryServiceTests.cs

+ 60 - 8
tests/Jellyfin.Controller.Tests/DirectoryServiceTests.cs

@@ -79,6 +79,21 @@ namespace Jellyfin.Controller.Tests
             Assert.Equal(_lowerCaseFileSystemMetadata.Where(f => !f.IsDirectory), lowerCaseResult);
             Assert.Equal(_lowerCaseFileSystemMetadata.Where(f => !f.IsDirectory), lowerCaseResult);
         }
         }
 
 
+        [Fact]
+        public void GetDirectories_GivenPathsWithDifferentCasing_ReturnsCorrectDirectories()
+        {
+            var fileSystemMock = new Mock<IFileSystem>();
+            fileSystemMock.Setup(f => f.GetFileSystemEntries(It.Is<string>(x => x == UpperCasePath), false)).Returns(_upperCaseFileSystemMetadata);
+            fileSystemMock.Setup(f => f.GetFileSystemEntries(It.Is<string>(x => x == LowerCasePath), false)).Returns(_lowerCaseFileSystemMetadata);
+            var directoryService = new DirectoryService(fileSystemMock.Object);
+
+            var upperCaseResult = directoryService.GetDirectories(UpperCasePath);
+            var lowerCaseResult = directoryService.GetDirectories(LowerCasePath);
+
+            Assert.Equal(_upperCaseFileSystemMetadata.Where(f => f.IsDirectory), upperCaseResult);
+            Assert.Equal(_lowerCaseFileSystemMetadata.Where(f => f.IsDirectory), lowerCaseResult);
+        }
+
         [Fact]
         [Fact]
         public void GetFile_GivenFilePathsWithDifferentCasing_ReturnsCorrectFile()
         public void GetFile_GivenFilePathsWithDifferentCasing_ReturnsCorrectFile()
         {
         {
@@ -95,15 +110,52 @@ namespace Jellyfin.Controller.Tests
                 Exists = false
                 Exists = false
             };
             };
             var fileSystemMock = new Mock<IFileSystem>();
             var fileSystemMock = new Mock<IFileSystem>();
-            fileSystemMock.Setup(f => f.GetFileInfo(It.Is<string>(x => x == upperCasePath))).Returns(upperCaseFileSystemMetadata);
-            fileSystemMock.Setup(f => f.GetFileInfo(It.Is<string>(x => x == lowerCasePath))).Returns(lowerCaseFileSystemMetadata);
+            fileSystemMock.Setup(f => f.GetFileSystemInfo(It.Is<string>(x => x == upperCasePath))).Returns(upperCaseFileSystemMetadata);
+            fileSystemMock.Setup(f => f.GetFileSystemInfo(It.Is<string>(x => x == lowerCasePath))).Returns(lowerCaseFileSystemMetadata);
+            var directoryService = new DirectoryService(fileSystemMock.Object);
+
+            var lowerCaseDirResult = directoryService.GetDirectory(lowerCasePath);
+            var lowerCaseFileResult = directoryService.GetFile(lowerCasePath);
+            var upperCaseDirResult = directoryService.GetDirectory(upperCasePath);
+            var upperCaseFileResult = directoryService.GetFile(upperCasePath);
+
+            Assert.Null(lowerCaseDirResult);
+            Assert.Equal(lowerCaseFileSystemMetadata, lowerCaseFileResult);
+            Assert.Null(upperCaseDirResult);
+            Assert.Null(upperCaseFileResult);
+        }
+
+        [Fact]
+        public void GetDirectory_GivenFilePathsWithDifferentCasing_ReturnsCorrectDirectory()
+        {
+            const string lowerCasePath = "/music/someartist/Lyrics";
+            var lowerCaseFileSystemMetadata = new FileSystemMetadata
+            {
+                FullName = lowerCasePath,
+                IsDirectory = true,
+                Exists = true
+            };
+            const string upperCasePath = "/music/SOMEARTIST/LYRICS";
+            var upperCaseFileSystemMetadata = new FileSystemMetadata
+            {
+                FullName = upperCasePath,
+                IsDirectory = true,
+                Exists = false
+            };
+            var fileSystemMock = new Mock<IFileSystem>();
+            fileSystemMock.Setup(f => f.GetFileSystemInfo(It.Is<string>(x => x == upperCasePath))).Returns(upperCaseFileSystemMetadata);
+            fileSystemMock.Setup(f => f.GetFileSystemInfo(It.Is<string>(x => x == lowerCasePath))).Returns(lowerCaseFileSystemMetadata);
             var directoryService = new DirectoryService(fileSystemMock.Object);
             var directoryService = new DirectoryService(fileSystemMock.Object);
 
 
-            var lowerCaseResult = directoryService.GetFile(lowerCasePath);
-            var upperCaseResult = directoryService.GetFile(upperCasePath);
+            var lowerCaseDirResult = directoryService.GetDirectory(lowerCasePath);
+            var lowerCaseFileResult = directoryService.GetFile(lowerCasePath);
+            var upperCaseDirResult = directoryService.GetDirectory(upperCasePath);
+            var upperCaseFileResult = directoryService.GetFile(upperCasePath);
 
 
-            Assert.Equal(lowerCaseFileSystemMetadata, lowerCaseResult);
-            Assert.Null(upperCaseResult);
+            Assert.Equal(lowerCaseFileSystemMetadata, lowerCaseDirResult);
+            Assert.Null(lowerCaseFileResult);
+            Assert.Null(upperCaseDirResult);
+            Assert.Null(upperCaseFileResult);
         }
         }
 
 
         [Fact]
         [Fact]
@@ -122,11 +174,11 @@ namespace Jellyfin.Controller.Tests
             };
             };
 
 
             var fileSystemMock = new Mock<IFileSystem>();
             var fileSystemMock = new Mock<IFileSystem>();
-            fileSystemMock.Setup(f => f.GetFileInfo(It.Is<string>(x => x == path))).Returns(cachedFileSystemMetadata);
+            fileSystemMock.Setup(f => f.GetFileSystemInfo(It.Is<string>(x => x == path))).Returns(cachedFileSystemMetadata);
             var directoryService = new DirectoryService(fileSystemMock.Object);
             var directoryService = new DirectoryService(fileSystemMock.Object);
 
 
             var result = directoryService.GetFile(path);
             var result = directoryService.GetFile(path);
-            fileSystemMock.Setup(f => f.GetFileInfo(It.Is<string>(x => x == path))).Returns(newFileSystemMetadata);
+            fileSystemMock.Setup(f => f.GetFileSystemInfo(It.Is<string>(x => x == path))).Returns(newFileSystemMetadata);
             var secondResult = directoryService.GetFile(path);
             var secondResult = directoryService.GetFile(path);
 
 
             Assert.Equal(cachedFileSystemMetadata, result);
             Assert.Equal(cachedFileSystemMetadata, result);