RadrootsAppleDocumentScannerTests.swift (1320B)
1 import Foundation 2 import Testing 3 4 @testable import RadrootsKit 5 6 #if !(canImport(UIKit) && canImport(VisionKit)) 7 @Test func appleDocumentScannerReportsUnavailableWithoutVisionKitScanner() async throws { 8 let scanner = try RadrootsAppleDocumentScanner(fileAccess: documentScannerTestFileAccess()) 9 let support = try await scanner.currentSupport() 10 11 #expect(!support.interactiveScanAvailable) 12 #expect(!support.multiPageSupported) 13 #expect(support.supportedOutputKinds.isEmpty) 14 15 await #expect(throws: RadrootsCaptureIntakeError.unavailable) { 16 _ = try await scanner.scanDocument(RadrootsDocumentScanRequest()) 17 } 18 } 19 #endif 20 21 private func documentScannerTestFileAccess() throws -> RadrootsAppleFileAccess { 22 let root = FileManager.default.temporaryDirectory 23 .appendingPathComponent("radroots-document-scanner-\(UUID().uuidString)", isDirectory: true) 24 let roots = try RadrootsAppleFileRoots( 25 appIdentifier: "org.radroots.document-scanner-test", 26 dataRoot: root.appendingPathComponent("data", isDirectory: true), 27 cacheRoot: root.appendingPathComponent("cache", isDirectory: true), 28 temporaryRoot: root.appendingPathComponent("temporary", isDirectory: true) 29 ) 30 return RadrootsAppleFileAccess(roots: roots) 31 }