fixed internal errors getting thrown as .Unknown instead of .InternalError (fixes #84)

This commit is contained in:
John Estropia
2016-07-21 11:51:49 +09:00
parent 7fc3ad2890
commit e4b6c06401
2 changed files with 20 additions and 7 deletions

View File

@@ -147,7 +147,7 @@ final class ErrorTests: XCTestCase {
"key3": NSDate() "key3": NSDate()
] ]
) )
let error = CoreStoreError.InternalError(NSError: internalError) let error = CoreStoreError(internalError)
XCTAssertEqual((error as NSError).domain, CoreStoreErrorDomain) XCTAssertEqual((error as NSError).domain, CoreStoreErrorDomain)
XCTAssertEqual((error as NSError).code, CoreStoreErrorCode.InternalError.rawValue) XCTAssertEqual((error as NSError).code, CoreStoreErrorCode.InternalError.rawValue)

View File

@@ -248,9 +248,17 @@ internal extension ErrorType {
switch self { switch self {
case let error as CoreStoreError: return error case let error as CoreStoreError:
case let error as CSError: return error.bridgeToSwift return error
default: return .Unknown
case let error as CSError:
return error.bridgeToSwift
case let error as NSError where self.dynamicType is NSError.Type:
return .InternalError(NSError: error)
default:
return .Unknown
} }
} }
@@ -258,9 +266,14 @@ internal extension ErrorType {
switch self { switch self {
case let error as CoreStoreError: return error.bridgeToObjectiveC case let error as CoreStoreError:
case let error as CSError: return error return error.bridgeToObjectiveC
default: return self as NSError
case let error as CSError:
return error
default:
return self as NSError
} }
} }
} }