…lines 1–81 unchanged (81 lines)
82
83// MARK: - NSError tests
84
85extension ExitCodeTests {
86 func testNSErrorIsHandled() {
87 struct NSErrorCommand: ParsableCommand {
88 static let message =
89 "The file “foo/bar” couldn’t be opened because there is no such file"
90
91 static let fileNotFoundNSError = NSError(
92 domain: "TestError",
93 code: 1,
94 userInfo: [NSLocalizedDescriptionKey: Self.message])
95 }
96 XCTAssertEqual(
97 NSErrorCommand.exitCode(for: NSErrorCommand.fileNotFoundNSError),
98 ExitCode(rawValue: 1))
99
100 #if canImport(FoundationEssentials)
101 let prefix = "Error Domain=TestError Code=1 \"(null)\""
102 #if compiler(<6.1)
103 XCTAssertEqual(
104 NSErrorCommand.message(for: NSErrorCommand.fileNotFoundNSError),
105 "\(prefix)")
106 #else
107 XCTAssertEqual(
108 NSErrorCommand.message(for: NSErrorCommand.fileNotFoundNSError),
109 "\(prefix)UserInfo={NSLocalizedDescription=\(NSErrorCommand.message)}"
110 )
111 #endif
112 #else
113 XCTAssertEqual(
114 NSErrorCommand.message(for: NSErrorCommand.fileNotFoundNSError),
115 NSErrorCommand.message)
116 #endif
117 }
118}
119