mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-03-30 06:11:50 +02:00
unit test for scalar IDs for ImportableUniqueObject
This commit is contained in:
@@ -1083,42 +1083,25 @@ extension TestEntity1: ImportableUniqueObject {
|
|||||||
|
|
||||||
// MARK: ImportableUniqueObject
|
// MARK: ImportableUniqueObject
|
||||||
|
|
||||||
typealias UniqueIDType = NSNumber
|
typealias UniqueIDType = Int64
|
||||||
|
|
||||||
static var uniqueIDKeyPath: String {
|
static var uniqueIDKeyPath: String {
|
||||||
|
|
||||||
return #keyPath(TestEntity1.testEntityID)
|
return #keyPath(TestEntity1.testEntityID)
|
||||||
}
|
}
|
||||||
|
|
||||||
var uniqueIDValue: NSNumber {
|
|
||||||
|
|
||||||
get {
|
|
||||||
|
|
||||||
guard let ID = self.testEntityID else {
|
|
||||||
|
|
||||||
XCTFail()
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
return ID
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
|
|
||||||
self.testEntityID = newValue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static func shouldUpdate(from source: ImportSource, in transaction: BaseDataTransaction) -> Bool {
|
static func shouldUpdate(from source: ImportSource, in transaction: BaseDataTransaction) -> Bool {
|
||||||
|
|
||||||
return source["skip_update"] == nil
|
return source["skip_update"] == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
static func uniqueID(from source: ImportSource, in transaction: BaseDataTransaction) throws -> NSNumber? {
|
static func uniqueID(from source: ImportSource, in transaction: BaseDataTransaction) throws -> Int64? {
|
||||||
|
|
||||||
if let _ = source["throw_on_id"] {
|
if let _ = source["throw_on_id"] {
|
||||||
|
|
||||||
throw TestIDError()
|
throw TestIDError()
|
||||||
}
|
}
|
||||||
return source[(#keyPath(TestEntity1.testEntityID))] as? NSNumber
|
return source[(#keyPath(TestEntity1.testEntityID))] as? Int64
|
||||||
}
|
}
|
||||||
|
|
||||||
func update(from source: ImportSource, in transaction: BaseDataTransaction) throws {
|
func update(from source: ImportSource, in transaction: BaseDataTransaction) throws {
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<model userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="10174" systemVersion="15F34" minimumToolsVersion="Xcode 4.3">
|
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="11759" systemVersion="16C67" minimumToolsVersion="Xcode 4.3" sourceLanguage="Objective-C" userDefinedModelVersionIdentifier="">
|
||||||
<entity name="TestEntity1AAA" representedClassName="CoreStoreTests.TestEntity1" syncable="YES">
|
<entity name="TestEntity1AAA" representedClassName="CoreStoreTests.TestEntity1" syncable="YES">
|
||||||
<attribute name="testBoolean" optional="YES" attributeType="Boolean" syncable="YES"/>
|
<attribute name="testBoolean" optional="YES" attributeType="Boolean" usesScalarValueType="NO" syncable="YES"/>
|
||||||
<attribute name="testData" optional="YES" attributeType="Binary" syncable="YES"/>
|
<attribute name="testData" optional="YES" attributeType="Binary" syncable="YES"/>
|
||||||
<attribute name="testDate" optional="YES" attributeType="Date" syncable="YES"/>
|
<attribute name="testDate" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
|
||||||
<attribute name="testDecimal" optional="YES" attributeType="Decimal" syncable="YES"/>
|
<attribute name="testDecimal" optional="YES" attributeType="Decimal" syncable="YES"/>
|
||||||
<attribute name="testEntityID" optional="YES" attributeType="Integer 64" syncable="YES"/>
|
<attribute name="testEntityID" optional="YES" attributeType="Integer 64" usesScalarValueType="NO" syncable="YES"/>
|
||||||
<attribute name="testNil" optional="YES" attributeType="String" syncable="YES"/>
|
<attribute name="testNil" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
<attribute name="testNumber" optional="YES" attributeType="Integer 32" syncable="YES"/>
|
<attribute name="testNumber" optional="YES" attributeType="Integer 32" usesScalarValueType="NO" syncable="YES"/>
|
||||||
<attribute name="testString" optional="YES" attributeType="String" syncable="YES"/>
|
<attribute name="testString" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
</entity>
|
</entity>
|
||||||
<entity name="TestEntity2" representedClassName="CoreStoreTests.TestEntity2" syncable="YES">
|
<entity name="TestEntity2" representedClassName="CoreStoreTests.TestEntity2" syncable="YES">
|
||||||
<attribute name="testBoolean" optional="YES" attributeType="Boolean" syncable="YES"/>
|
<attribute name="testBoolean" optional="YES" attributeType="Boolean" usesScalarValueType="NO" syncable="YES"/>
|
||||||
<attribute name="testData" optional="YES" attributeType="Binary" syncable="YES"/>
|
<attribute name="testData" optional="YES" attributeType="Binary" syncable="YES"/>
|
||||||
<attribute name="testDate" optional="YES" attributeType="Date" syncable="YES"/>
|
<attribute name="testDate" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
|
||||||
<attribute name="testDecimal" optional="YES" attributeType="Decimal" syncable="YES"/>
|
<attribute name="testDecimal" optional="YES" attributeType="Decimal" syncable="YES"/>
|
||||||
<attribute name="testEntityID" optional="YES" attributeType="Integer 64" syncable="YES"/>
|
<attribute name="testEntityID" optional="YES" attributeType="Integer 64" usesScalarValueType="NO" syncable="YES"/>
|
||||||
<attribute name="testNil" optional="YES" attributeType="String" syncable="YES"/>
|
<attribute name="testNil" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
<attribute name="testNumber" optional="YES" attributeType="Integer 32" syncable="YES"/>
|
<attribute name="testNumber" optional="YES" attributeType="Integer 32" usesScalarValueType="NO" syncable="YES"/>
|
||||||
<attribute name="testString" optional="YES" attributeType="String" syncable="YES"/>
|
<attribute name="testString" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
</entity>
|
</entity>
|
||||||
<configuration name="Config1">
|
<configuration name="Config1">
|
||||||
|
|||||||
@@ -519,7 +519,7 @@ are created from `beginSynchronous(...)`. While the syntax is similar to its asy
|
|||||||
```swift
|
```swift
|
||||||
CoreStore.beginSynchronous { (transaction) -> Void in
|
CoreStore.beginSynchronous { (transaction) -> Void in
|
||||||
// make changes
|
// make changes
|
||||||
transaction.commit()
|
_ = transaction.commit()
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
`transaction` above is a `SynchronousDataTransaction` instance.
|
`transaction` above is a `SynchronousDataTransaction` instance.
|
||||||
|
|||||||
Reference in New Issue
Block a user