import Nimble @testable import Sora import XCTest 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]) expect(hierarchy.isInTopLevelFolder(rootFolder.id, named: "Artists")) == true expect(hierarchy.isInTopLevelFolder(nestedFolder.id, named: "Artists")) == true expect(hierarchy.isInTopLevelFolder(unrelatedFolder.id, named: "Artists")) == false expect(hierarchy.isInTopLevelFolder(nil, named: "Artists")) == false } 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]) expect(hierarchy.isInTopLevelUncategorized(rootFolder.id, named: "Artists")) == true expect(hierarchy.isInTopLevelUncategorized(nestedFolder.id, named: "Artists")) == false expect(hierarchy.isInTopLevelUncategorized(nil, named: "Artists")) == false } }