36 lines
1.5 KiB
Swift
36 lines
1.5 KiB
Swift
import Foundation
|
|
|
|
@main
|
|
struct FolderImportSourceTests {
|
|
static func rejects(_ sources: [URL]) {
|
|
do {
|
|
_ = try FolderImportSource.validate(sources)
|
|
preconditionFailure("Unexpectedly accepted \(sources)")
|
|
} catch {
|
|
precondition(!error.localizedDescription.isEmpty)
|
|
}
|
|
}
|
|
|
|
static func main() throws {
|
|
let root = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString, isDirectory: true)
|
|
try FileManager.default.createDirectory(at: root, withIntermediateDirectories: true)
|
|
defer { try? FileManager.default.removeItem(at: root) }
|
|
let folder = root.appendingPathComponent("报销 材料", isDirectory: true)
|
|
try FileManager.default.createDirectory(at: folder, withIntermediateDirectories: true)
|
|
let validated = try FolderImportSource.validate([folder])
|
|
precondition(validated == folder)
|
|
let file = root.appendingPathComponent("发票.pdf")
|
|
try Data().write(to: file)
|
|
let application = root.appendingPathComponent("测试.app", isDirectory: true)
|
|
try FileManager.default.createDirectory(at: application, withIntermediateDirectories: true)
|
|
rejects([])
|
|
rejects([folder, folder])
|
|
rejects([folder, file])
|
|
rejects([file])
|
|
rejects([application])
|
|
rejects([URL(string: "https://example.invalid/materials")!])
|
|
rejects([root.appendingPathComponent("不存在")])
|
|
print("Folder import validation tests passed")
|
|
}
|
|
}
|