[0.1.2] Context save
This commit is contained in:
parent
7960a923fa
commit
006e7606ba
|
@ -12,8 +12,7 @@ public protocol EntityMapping {
|
||||||
}
|
}
|
||||||
|
|
||||||
extension EntityMapping {
|
extension EntityMapping {
|
||||||
func map() throws -> NSManagedObject? {
|
func map(_ context: NSManagedObjectContext) throws -> NSManagedObject? {
|
||||||
guard let context = SLazeKit.newBackgroundContext() else { return nil }
|
|
||||||
var model: NSManagedObject? = nil
|
var model: NSManagedObject? = nil
|
||||||
var mapError: Error?
|
var mapError: Error?
|
||||||
context.performAndWait {
|
context.performAndWait {
|
||||||
|
@ -26,7 +25,6 @@ extension EntityMapping {
|
||||||
if let object = model {
|
if let object = model {
|
||||||
fillObject(with: object)
|
fillObject(with: object)
|
||||||
}
|
}
|
||||||
context.commit()
|
|
||||||
} catch {
|
} catch {
|
||||||
mapError = error
|
mapError = error
|
||||||
}
|
}
|
||||||
|
|
|
@ -186,12 +186,14 @@ public class SLazeKit {
|
||||||
}
|
}
|
||||||
|
|
||||||
private class func synchronize(_ obj: Any) throws {
|
private class func synchronize(_ obj: Any) throws {
|
||||||
|
guard let context = newBackgroundContext() else { return }
|
||||||
if let array = obj as? [EntityMapping] {
|
if let array = obj as? [EntityMapping] {
|
||||||
array.forEach({_ = try? $0.map()})
|
array.forEach({_ = try? $0.map(context)})
|
||||||
} else {
|
} else {
|
||||||
guard let mapper = obj as? EntityMapping else { return }
|
guard let mapper = obj as? EntityMapping else { return }
|
||||||
_ = try mapper.map()
|
_ = try mapper.map(context)
|
||||||
}
|
}
|
||||||
|
context.commit()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,36 @@
|
||||||
import XCTest
|
import XCTest
|
||||||
@testable import SLazeKit
|
@testable import SLazeKit
|
||||||
|
|
||||||
class SLazeKitTests: XCTestCase {
|
extension SLazeKit {
|
||||||
static var allTests = [
|
open class var basePath: String? { return "www.yourdomain.com" }
|
||||||
("testExample", testExample),
|
open class var basePort: Int? { return 8765 }
|
||||||
]
|
open class var decoder: JSONDecoder { return JSONDecoder() }
|
||||||
|
open class var urlSession: URLSession { return URLSession.shared }
|
||||||
|
|
||||||
func testExample() {
|
open class func setup(_ request: URLRequest) -> URLRequest {
|
||||||
|
var request: URLRequest = request
|
||||||
|
request.setValue("Your token", forHTTPHeaderField: "X-Access-Token")
|
||||||
|
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
|
||||||
|
return request
|
||||||
|
}
|
||||||
|
|
||||||
|
open class func handle(_ response: HTTPURLResponse?) {
|
||||||
|
if response?.statusCode == 401 {
|
||||||
|
print("unauthorised")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class SLazeKitTests: XCTestCase {
|
||||||
|
static var allTests = [
|
||||||
|
("testBasePort", testBasePort),
|
||||||
|
]
|
||||||
|
|
||||||
|
func testBasePath() {
|
||||||
|
XCTAssertTrue(SLazeKit.basePath == "www.yourdomain.com")
|
||||||
|
}
|
||||||
|
|
||||||
|
func testBasePort() {
|
||||||
|
XCTAssertTrue(SLazeKit.basePort == 8765)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue