summaryrefslogtreecommitdiff
path: root/SoraTests/FolderHierarchyTests.swift
diff options
context:
space:
mode:
Diffstat (limited to 'SoraTests/FolderHierarchyTests.swift')
-rw-r--r--SoraTests/FolderHierarchyTests.swift41
1 files changed, 41 insertions, 0 deletions
diff --git a/SoraTests/FolderHierarchyTests.swift b/SoraTests/FolderHierarchyTests.swift
new file mode 100644
index 0000000..6bf7f4a
--- /dev/null
+++ b/SoraTests/FolderHierarchyTests.swift
@@ -0,0 +1,41 @@
+import XCTest
+@testable import Sora
+
+final class FolderHierarchyTests: XCTestCase {
+ func testTopLevelFolderIncludesRootFolderAndNestedChildren() {
+ let rootFolder = SettingsFolder(
+ name: "Artists",
+ id: UUID(uuidString: "00000000-0000-0000-0000-000000000001")!
+ )
+ let nestedFolder = SettingsFolder(
+ name: "Artists | Layout",
+ id: UUID(uuidString: "00000000-0000-0000-0000-000000000002")!
+ )
+ let unrelatedFolder = SettingsFolder(
+ name: "Characters | Lead",
+ id: UUID(uuidString: "00000000-0000-0000-0000-000000000003")!
+ )
+ let hierarchy = FolderHierarchy(folders: [rootFolder, nestedFolder, unrelatedFolder])
+
+ XCTAssertTrue(hierarchy.isInTopLevelFolder(rootFolder.id, named: "Artists"))
+ XCTAssertTrue(hierarchy.isInTopLevelFolder(nestedFolder.id, named: "Artists"))
+ XCTAssertFalse(hierarchy.isInTopLevelFolder(unrelatedFolder.id, named: "Artists"))
+ XCTAssertFalse(hierarchy.isInTopLevelFolder(nil, named: "Artists"))
+ }
+
+ func testTopLevelUncategorizedOnlyMatchesRootFolder() {
+ let rootFolder = SettingsFolder(
+ name: "Artists",
+ id: UUID(uuidString: "00000000-0000-0000-0000-000000000011")!
+ )
+ let nestedFolder = SettingsFolder(
+ name: "Artists | Layout",
+ id: UUID(uuidString: "00000000-0000-0000-0000-000000000012")!
+ )
+ let hierarchy = FolderHierarchy(folders: [rootFolder, nestedFolder])
+
+ XCTAssertTrue(hierarchy.isInTopLevelUncategorized(rootFolder.id, named: "Artists"))
+ XCTAssertFalse(hierarchy.isInTopLevelUncategorized(nestedFolder.id, named: "Artists"))
+ XCTAssertFalse(hierarchy.isInTopLevelUncategorized(nil, named: "Artists"))
+ }
+}