mirror of
https://github.com/modo-studio/SugarRecord.git
synced 2024-09-11 14:36:41 +03:00
Fixed broken tests after the API refactor
This commit is contained in:
parent
3899bdfcde
commit
67a29bfcaa
@ -26,13 +26,13 @@ extension NSManagedObjectContext: Context {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Adds the entity to the Storage without saving it.
|
Inserts the entity to the Storage without saving it.
|
||||||
|
|
||||||
- parameter entity: Entity to be added.
|
- parameter entity: Entity to be added.
|
||||||
|
|
||||||
- throws: Throws an Error.InvalidType or Internal Storage error in case the object couldn't be added.
|
- throws: Throws an Error.InvalidType or Internal Storage error in case the object couldn't be added.
|
||||||
*/
|
*/
|
||||||
public func add<T: Entity>(entity: T) throws {}
|
public func insert<T: Entity>(entity: T) throws {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Initializes an instance of type T and returns it.
|
Initializes an instance of type T and returns it.
|
||||||
|
@ -18,13 +18,13 @@ public protocol Context: Requestable, ReactiveContext {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Adds the entity to the Storage without saving it.
|
Inserts the entity to the Storage without saving it.
|
||||||
|
|
||||||
- parameter entity: Entity to be added.
|
- parameter entity: Entity to be added.
|
||||||
|
|
||||||
- throws: Throws an Error.InvalidType or Internal Storage error in case the object couldn't be added.
|
- throws: Throws an Error.InvalidType or Internal Storage error in case the object couldn't be added.
|
||||||
*/
|
*/
|
||||||
func add<T: Entity>(entity: T) throws
|
func insert<T: Entity>(entity: T) throws
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Initializes an instance of type T and returns it.
|
Initializes an instance of type T and returns it.
|
||||||
@ -76,7 +76,7 @@ public extension Context {
|
|||||||
*/
|
*/
|
||||||
public func create<T: Entity>() throws -> T {
|
public func create<T: Entity>() throws -> T {
|
||||||
let instance: T = try self.new()
|
let instance: T = try self.new()
|
||||||
try self.add(instance)
|
try self.insert(instance)
|
||||||
return instance
|
return instance
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,15 +25,15 @@ extension Realm: Context {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Adds the entity to the Storage without saving it.
|
Inserts the entity to the Storage without saving it.
|
||||||
|
|
||||||
- parameter entity: Entity to be added.
|
- parameter entity: Entity to be added.
|
||||||
|
|
||||||
- throws: Throws an Error.InvalidType or Internal Storage error in case the object couldn't be added.
|
- throws: Throws an Error.InvalidType or Internal Storage error in case the object couldn't be added.
|
||||||
*/
|
*/
|
||||||
public func add<T: Entity>(entity: T) throws {
|
public func insert<T: Entity>(entity: T) throws {
|
||||||
guard let _ = T.self as? Object.Type else { throw Error.InvalidType }
|
guard let _ = T.self as? Object.Type else { throw Error.InvalidType }
|
||||||
try self.add(entity)
|
self.add(entity as! Object)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -94,26 +94,25 @@ class CoreDataDefaultStorageTests: QuickSpec {
|
|||||||
it("shouldn't persist changes if we save the memory context") {
|
it("shouldn't persist changes if we save the memory context") {
|
||||||
waitUntil(action: { (done) -> Void in
|
waitUntil(action: { (done) -> Void in
|
||||||
let memoryContext = defaultStorage!.memoryContext as! NSManagedObjectContext!
|
let memoryContext = defaultStorage!.memoryContext as! NSManagedObjectContext!
|
||||||
let _: Track = memoryContext.insert().value!
|
let _: Track = try! memoryContext.create()
|
||||||
try! memoryContext.save()
|
try! memoryContext.save()
|
||||||
defaultStorage?.operation({ (context, save) -> Void in
|
defaultStorage?.operation({ (context, save) -> Void in
|
||||||
let resultsCount = context.request(Track.self).fetch().value!.count
|
let resultsCount = try! context.request(Track.self).fetch().count
|
||||||
expect(resultsCount) == 0
|
expect(resultsCount) == 0
|
||||||
done()
|
done()
|
||||||
}, completed: {})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
it("should persist the changes if it's save context") {
|
it("should persist the changes if it's save context") {
|
||||||
waitUntil(action: { (done) -> Void in
|
waitUntil(action: { (done) -> Void in
|
||||||
defaultStorage?.operation({ (context, save) -> Void in
|
defaultStorage?.operation({ (context, save) -> Void in
|
||||||
let _: Track = context.insert().value!
|
let _: Track = try! context.create()
|
||||||
save()
|
save()
|
||||||
}, completed: {
|
|
||||||
let tracksCount: Int = (defaultStorage?.mainContext.request(Track.self).fetch().value!.count)!
|
|
||||||
expect(tracksCount) == 1
|
|
||||||
done()
|
|
||||||
})
|
})
|
||||||
|
let tracksCount: Int? = try! defaultStorage?.mainContext.request(Track.self).fetch().count
|
||||||
|
expect(tracksCount) == 1
|
||||||
|
done()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,17 +10,6 @@ class RequestTests: QuickSpec {
|
|||||||
|
|
||||||
override func spec() {
|
override func spec() {
|
||||||
|
|
||||||
describe("fetching") {
|
|
||||||
|
|
||||||
it("should use the context for fetching passing itself") {
|
|
||||||
let context = MockContext()
|
|
||||||
let request: Request<Issue> = Request(context)
|
|
||||||
_ = request.fetch()
|
|
||||||
expect(context.fetched) == true
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
describe("builders") {
|
describe("builders") {
|
||||||
|
|
||||||
it("-filteredWithPredicate") {
|
it("-filteredWithPredicate") {
|
||||||
@ -60,25 +49,4 @@ class RequestTests: QuickSpec {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// MARK: - FetchContext
|
|
||||||
|
|
||||||
private class MockContext: Context {
|
|
||||||
|
|
||||||
var fetched: Bool = false
|
|
||||||
|
|
||||||
private func insert<T : Entity>() -> Result<T, Error> {
|
|
||||||
return Result(error: Error.Nothing)
|
|
||||||
}
|
|
||||||
|
|
||||||
private func remove<T : Entity>(objects: [T]) -> Result<Void, Error> {
|
|
||||||
return Result(error: Error.Nothing)
|
|
||||||
}
|
|
||||||
|
|
||||||
private func fetch<T : Entity>(request: Request<T>) -> Result<[T], Error> {
|
|
||||||
self.fetched = true
|
|
||||||
return Result(error: Error.Nothing)
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -28,18 +28,15 @@ class RealmTests: QuickSpec {
|
|||||||
subject?.beginWrite()
|
subject?.beginWrite()
|
||||||
subject?.add(issue)
|
subject?.add(issue)
|
||||||
_ = try? subject?.commitWrite()
|
_ = try? subject?.commitWrite()
|
||||||
// let fetched = storage?.mainContext.request(Issue.self).fetch().value
|
let fetched: [Issue] = try! subject!.request(Issue.self).fetch()
|
||||||
|
expect(fetched.count) == 1
|
||||||
|
|
||||||
let fetched: Result<[Issue], Error> = subject!.request(Issue.self).fetch()
|
|
||||||
expect(fetched.value?.count) == 1
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
describe("insert") {
|
describe("insert") {
|
||||||
it("should return the object inserted in the Realm") {
|
it("should return the object inserted in the Realm") {
|
||||||
subject!.beginWrite()
|
subject!.beginWrite()
|
||||||
let inserted: Result<Issue, Error> = subject!.insert()
|
let inserted: Issue = try! subject!.create()
|
||||||
_ = try? subject!.commitWrite()
|
_ = try? subject!.commitWrite()
|
||||||
_ = inserted
|
_ = inserted
|
||||||
expect(subject!.objects(Issue.self).count) == 1
|
expect(subject!.objects(Issue.self).count) == 1
|
||||||
@ -57,7 +54,7 @@ class RealmTests: QuickSpec {
|
|||||||
|
|
||||||
// Fetching
|
// Fetching
|
||||||
let _issue = subject!.objects(Issue.self).filter("name == %@", "test").first!
|
let _issue = subject!.objects(Issue.self).filter("name == %@", "test").first!
|
||||||
subject!.remove([_issue])
|
try! subject!.remove([_issue])
|
||||||
|
|
||||||
// Testing
|
// Testing
|
||||||
expect(subject!.objects(Issue.self).count) == 0
|
expect(subject!.objects(Issue.self).count) == 0
|
||||||
|
@ -64,27 +64,25 @@ class RealmDefaultStorageTests: QuickSpec {
|
|||||||
it("should save the changes if the save closure is called") {
|
it("should save the changes if the save closure is called") {
|
||||||
waitUntil(action: { (done) -> Void in
|
waitUntil(action: { (done) -> Void in
|
||||||
storage?.operation({ (context, save) -> Void in
|
storage?.operation({ (context, save) -> Void in
|
||||||
let issue: Issue = context.insert().value!
|
let issue: Issue = try! context.create()
|
||||||
issue.name = "test"
|
issue.name = "test"
|
||||||
save()
|
save()
|
||||||
}, completed: { () -> Void in
|
|
||||||
let fetched = storage?.mainContext.request(Issue.self).fetch().value
|
|
||||||
expect(fetched?.count) == 1
|
|
||||||
done()
|
|
||||||
})
|
})
|
||||||
|
let fetched = try! storage?.mainContext.request(Issue.self).fetch()
|
||||||
|
expect(fetched?.count) == 1
|
||||||
|
done()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
it("shouldn't persist the changes if the save closure is not called") {
|
it("shouldn't persist the changes if the save closure is not called") {
|
||||||
waitUntil(action: { (done) -> Void in
|
waitUntil(action: { (done) -> Void in
|
||||||
storage?.operation({ (context, save) -> Void in
|
storage?.operation({ (context, save) -> Void in
|
||||||
let issue: Issue = context.insert().value!
|
let issue: Issue = try! context.create()
|
||||||
issue.name = "test"
|
issue.name = "test"
|
||||||
}, completed: { () -> Void in
|
|
||||||
let fetched = storage?.mainContext.request(Issue.self).fetch().value
|
|
||||||
expect(fetched?.count) == 0
|
|
||||||
done()
|
|
||||||
})
|
})
|
||||||
|
let fetched = try! storage?.mainContext.request(Issue.self).fetch()
|
||||||
|
expect(fetched?.count) == 0
|
||||||
|
done()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user