diff options
Diffstat (limited to 'SoraTests/FolderHierarchyTests.swift')
| -rw-r--r-- | SoraTests/FolderHierarchyTests.swift | 41 |
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")) + } +} |