From 7ee027f44d515a8940858cbe5de20104a77e892a Mon Sep 17 00:00:00 2001 From: John Estropia Date: Thu, 9 Feb 2017 10:49:50 +0900 Subject: [PATCH] Test mainContext fetching directly from PSC. Needs benchmarking esp. with merging --- CoreStoreTests/FetchTests.swift | 2 +- CoreStoreTests/SetupTests.swift | 3 ++- Sources/Internal/NSManagedObjectContext+Setup.swift | 2 +- Sources/Setup/DataStack.swift | 1 + 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CoreStoreTests/FetchTests.swift b/CoreStoreTests/FetchTests.swift index 7963785..b2f017a 100644 --- a/CoreStoreTests/FetchTests.swift +++ b/CoreStoreTests/FetchTests.swift @@ -394,7 +394,7 @@ final class FetchTests: BaseTestDataTestCase { ] let object = stack.fetchOne(from, fetchClauses) XCTAssertNotNil(object) - XCTAssertEqual(object?.testNumber, 3) // configuration + XCTAssertEqual(object?.testNumber, 3) // configuration ambiguous let objectID = stack.fetchObjectID(from, fetchClauses) XCTAssertNotNil(objectID) diff --git a/CoreStoreTests/SetupTests.swift b/CoreStoreTests/SetupTests.swift index 4be0452..5a93aac 100644 --- a/CoreStoreTests/SetupTests.swift +++ b/CoreStoreTests/SetupTests.swift @@ -44,7 +44,8 @@ class SetupTests: BaseTestDataTestCase { XCTAssertNil(stack.rootSavingContext.parent) XCTAssertFalse(stack.rootSavingContext.isDataStackContext) XCTAssertFalse(stack.rootSavingContext.isTransactionContext) - XCTAssertEqual(stack.mainContext.parent, stack.rootSavingContext) + XCTAssertNil(stack.mainContext.parent) + XCTAssertEqual(stack.mainContext.persistentStoreCoordinator, stack.coordinator) XCTAssertTrue(stack.mainContext.isDataStackContext) XCTAssertFalse(stack.mainContext.isTransactionContext) XCTAssertEqual(stack.model, model) diff --git a/Sources/Internal/NSManagedObjectContext+Setup.swift b/Sources/Internal/NSManagedObjectContext+Setup.swift index d178976..c624cab 100644 --- a/Sources/Internal/NSManagedObjectContext+Setup.swift +++ b/Sources/Internal/NSManagedObjectContext+Setup.swift @@ -99,7 +99,7 @@ internal extension NSManagedObjectContext { internal static func mainContextForRootContext(_ rootContext: NSManagedObjectContext) -> NSManagedObjectContext { let context = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType) - context.parent = rootContext + context.persistentStoreCoordinator = rootContext.persistentStoreCoordinator! context.mergePolicy = NSRollbackMergePolicy context.undoManager = nil context.setupForCoreStoreWithContextName("com.corestore.maincontext") diff --git a/Sources/Setup/DataStack.swift b/Sources/Setup/DataStack.swift index e4fc2f9..5b4cc4e 100644 --- a/Sources/Setup/DataStack.swift +++ b/Sources/Setup/DataStack.swift @@ -73,6 +73,7 @@ public final class DataStack: Equatable { self.migrationChain = migrationChain self.rootSavingContext.parentStack = self + self.mainContext.parentStack = self self.mainContext.isDataStackContext = true }