mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-03-29 05:41:50 +02:00
Swift 3 master candidate
This commit is contained in:
@@ -364,21 +364,21 @@ final class TransactionTests: BaseTestCase {
|
|||||||
|
|
||||||
let observer = TestListObserver()
|
let observer = TestListObserver()
|
||||||
let monitor = stack.monitorList(
|
let monitor = stack.monitorList(
|
||||||
From(TestEntity1),
|
From<TestEntity1>(),
|
||||||
OrderBy(.Ascending("testEntityID"))
|
OrderBy(.ascending("testEntityID"))
|
||||||
)
|
)
|
||||||
monitor.addObserver(observer)
|
monitor.addObserver(observer)
|
||||||
|
|
||||||
XCTAssertFalse(monitor.hasObjects())
|
XCTAssertFalse(monitor.hasObjects())
|
||||||
|
|
||||||
var events = 0
|
var events = 0
|
||||||
let willChangeExpectation = self.expectationForNotification(
|
let willChangeExpectation = self.expectation(
|
||||||
"listMonitorWillChange:",
|
forNotification: "listMonitorWillChange:",
|
||||||
object: observer,
|
object: observer,
|
||||||
handler: { (note) -> Bool in
|
handler: { (note) -> Bool in
|
||||||
|
|
||||||
XCTAssertEqual(events, 0)
|
XCTAssertEqual(events, 0)
|
||||||
XCTAssertEqual((note.userInfo ?? [:]), NSDictionary())
|
XCTAssertTrue(note.userInfo?.isEmpty != false)
|
||||||
defer {
|
defer {
|
||||||
|
|
||||||
events += 1
|
events += 1
|
||||||
@@ -386,8 +386,8 @@ final class TransactionTests: BaseTestCase {
|
|||||||
return events == 0
|
return events == 0
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
let didInsertObjectExpectation = self.expectationForNotification(
|
let didInsertObjectExpectation = self.expectation(
|
||||||
"listMonitor:didInsertObject:toIndexPath:",
|
forNotification: "listMonitor:didInsertObject:toIndexPath:",
|
||||||
object: observer,
|
object: observer,
|
||||||
handler: { (note) -> Bool in
|
handler: { (note) -> Bool in
|
||||||
|
|
||||||
@@ -405,8 +405,8 @@ final class TransactionTests: BaseTestCase {
|
|||||||
XCTAssertEqual(indexPath?.row, 0)
|
XCTAssertEqual(indexPath?.row, 0)
|
||||||
|
|
||||||
let object = userInfo?["object"] as? TestEntity1
|
let object = userInfo?["object"] as? TestEntity1
|
||||||
XCTAssertEqual(object?.testBoolean, NSNumber(bool: true))
|
XCTAssertEqual(object?.testBoolean, NSNumber(value: true))
|
||||||
XCTAssertEqual(object?.testNumber, NSNumber(integer: 1))
|
XCTAssertEqual(object?.testNumber, NSNumber(value: 1))
|
||||||
XCTAssertEqual(object?.testDecimal, NSDecimalNumber(string: "1"))
|
XCTAssertEqual(object?.testDecimal, NSDecimalNumber(string: "1"))
|
||||||
XCTAssertEqual(object?.testString, "nil:TestEntity1:1")
|
XCTAssertEqual(object?.testString, "nil:TestEntity1:1")
|
||||||
defer {
|
defer {
|
||||||
@@ -416,12 +416,12 @@ final class TransactionTests: BaseTestCase {
|
|||||||
return events == 1
|
return events == 1
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
let didChangeExpectation = self.expectationForNotification(
|
let didChangeExpectation = self.expectation(
|
||||||
"listMonitorDidChange:",
|
forNotification: "listMonitorDidChange:",
|
||||||
object: observer,
|
object: observer,
|
||||||
handler: { (note) -> Bool in
|
handler: { (note) -> Bool in
|
||||||
|
|
||||||
XCTAssertEqual((note.userInfo ?? [:]), NSDictionary())
|
XCTAssertTrue(note.userInfo?.isEmpty != false)
|
||||||
defer {
|
defer {
|
||||||
|
|
||||||
events += 1
|
events += 1
|
||||||
@@ -429,22 +429,22 @@ final class TransactionTests: BaseTestCase {
|
|||||||
return events == 2
|
return events == 2
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
let saveExpectation = self.expectationWithDescription("save")
|
let saveExpectation = self.expectation(description: "save")
|
||||||
stack.beginSynchronous { (transaction) in
|
stack.beginSynchronous { (transaction) in
|
||||||
|
|
||||||
let object = transaction.create(Into(TestEntity1))
|
let object = transaction.create(Into<TestEntity1>())
|
||||||
object.testBoolean = NSNumber(bool: true)
|
object.testBoolean = NSNumber(value: true)
|
||||||
object.testNumber = NSNumber(integer: 1)
|
object.testNumber = NSNumber(value: 1)
|
||||||
object.testDecimal = NSDecimalNumber(string: "1")
|
object.testDecimal = NSDecimalNumber(string: "1")
|
||||||
object.testString = "nil:TestEntity1:1"
|
object.testString = "nil:TestEntity1:1"
|
||||||
|
|
||||||
switch transaction.commit() {
|
switch transaction.commit() {
|
||||||
|
|
||||||
case .Success(let hasChanges):
|
case .success(let hasChanges):
|
||||||
XCTAssertTrue(hasChanges)
|
XCTAssertTrue(hasChanges)
|
||||||
saveExpectation.fulfill()
|
saveExpectation.fulfill()
|
||||||
|
|
||||||
default:
|
case .failure:
|
||||||
XCTFail()
|
XCTFail()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,9 +20,7 @@ Unleashing the real power of Core Data with the elegance and safety of Swift
|
|||||||
|
|
||||||
* **Swift 3.0.1:** iOS 8+ / macOS 10.10+ / watchOS 2.0+ / tvOS 9.0+
|
* **Swift 3.0.1:** iOS 8+ / macOS 10.10+ / watchOS 2.0+ / tvOS 9.0+
|
||||||
|
|
||||||
* **New in CoreStore 2.0:** Objective-C support! All CoreStore types now have their corresponding Objective-C "bridging classes". Perfect for projects transitioning from Objective-C to Swift!
|
Upgrading from CoreStore 2.x to 3.x? Check out the [new features](#features) and make sure to read the [Migration guide](#upgrading-from-2xx-to-3xx).
|
||||||
|
|
||||||
Upgrading from CoreStore 2.x to 3.x? Check out the [new features](#new-in-corestore-20) and make sure to read the [Migration guide](#upgrading-from-2xx-to-3xx).
|
|
||||||
|
|
||||||
|
|
||||||
## Why use CoreStore?
|
## Why use CoreStore?
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ internal extension NSManagedObjectContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@nonobjc
|
@nonobjc
|
||||||
internal func saveSynchronously(waitForMerge waitForMerge: Bool) -> SaveResult {
|
internal func saveSynchronously(waitForMerge: Bool) -> SaveResult {
|
||||||
|
|
||||||
var result = SaveResult(hasChanges: false)
|
var result = SaveResult(hasChanges: false)
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public final class SynchronousDataTransaction: BaseDataTransaction {
|
|||||||
public func commit() -> SaveResult {
|
public func commit() -> SaveResult {
|
||||||
|
|
||||||
CoreStore.assert(
|
CoreStore.assert(
|
||||||
self.transactionQueue.isCurrentExecutionContext(),
|
self.transactionQueue.cs_isCurrentExecutionContext(),
|
||||||
"Attempted to commit a \(cs_typeName(self)) outside its designated queue."
|
"Attempted to commit a \(cs_typeName(self)) outside its designated queue."
|
||||||
)
|
)
|
||||||
CoreStore.assert(
|
CoreStore.assert(
|
||||||
|
|||||||
Reference in New Issue
Block a user