mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-01-15 13:43:43 +01:00
querying unit tests
This commit is contained in:
@@ -71,7 +71,7 @@ class BaseTestCase: XCTestCase {
|
||||
defer {
|
||||
|
||||
self.waitForExpectationsWithTimeout(0, handler: nil)
|
||||
CoreStore.logger = DefaultLogger()
|
||||
CoreStore.logger = TestLogger([:])
|
||||
}
|
||||
return closure()
|
||||
}
|
||||
|
||||
@@ -144,7 +144,10 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
}
|
||||
XCTAssertNil(object)
|
||||
|
||||
let objectID = stack.fetchObjectID(from, fetchClauses)
|
||||
let objectID = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchObjectID(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectID)
|
||||
}
|
||||
do {
|
||||
@@ -153,10 +156,16 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
Where("%K < %@", "testNumber", 4),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
]
|
||||
let object = stack.fetchOne(from, fetchClauses)
|
||||
let object = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchOne(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(object)
|
||||
|
||||
let objectID = stack.fetchObjectID(from, fetchClauses)
|
||||
let objectID = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchObjectID(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectID)
|
||||
}
|
||||
}
|
||||
@@ -318,7 +327,10 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
}
|
||||
XCTAssertNil(object)
|
||||
|
||||
let objectID = stack.fetchObjectID(from, fetchClauses)
|
||||
let objectID = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchObjectID(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectID)
|
||||
}
|
||||
do {
|
||||
@@ -327,10 +339,16 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
Where("%K < %@", "testNumber", 4),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
]
|
||||
let object = stack.fetchOne(from, fetchClauses)
|
||||
let object = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchOne(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(object)
|
||||
|
||||
let objectID = stack.fetchObjectID(from, fetchClauses)
|
||||
let objectID = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchObjectID(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectID)
|
||||
}
|
||||
}
|
||||
@@ -643,7 +661,10 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
}
|
||||
XCTAssertNil(objects)
|
||||
|
||||
let objectIDs = stack.fetchObjectIDs(from, fetchClauses)
|
||||
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchObjectIDs(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectIDs)
|
||||
}
|
||||
do {
|
||||
@@ -652,10 +673,16 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
Where("testNumber", isEqualTo: 0),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
]
|
||||
let objects = stack.fetchAll(from, fetchClauses)
|
||||
let objects = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchAll(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objects)
|
||||
|
||||
let objectIDs = stack.fetchObjectIDs(from, fetchClauses)
|
||||
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchObjectIDs(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectIDs)
|
||||
}
|
||||
}
|
||||
@@ -884,7 +911,10 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
}
|
||||
XCTAssertNil(objects)
|
||||
|
||||
let objectIDs = stack.fetchObjectIDs(from, fetchClauses)
|
||||
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchObjectIDs(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectIDs)
|
||||
}
|
||||
do {
|
||||
@@ -892,10 +922,16 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
let fetchClauses: [FetchClause] = [
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
]
|
||||
let objects = stack.fetchAll(from, fetchClauses)
|
||||
let objects = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchAll(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objects)
|
||||
|
||||
let objectIDs = stack.fetchObjectIDs(from, fetchClauses)
|
||||
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchObjectIDs(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectIDs)
|
||||
}
|
||||
}
|
||||
@@ -1210,11 +1246,14 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
}
|
||||
do {
|
||||
|
||||
let count = stack.fetchCount(
|
||||
from,
|
||||
Where("testNumber", isEqualTo: 0),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
)
|
||||
let count = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchCount(
|
||||
from,
|
||||
Where("testNumber", isEqualTo: 0),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
)
|
||||
}
|
||||
XCTAssertNil(count)
|
||||
}
|
||||
}
|
||||
@@ -1354,11 +1393,14 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
}
|
||||
do {
|
||||
|
||||
let count = stack.fetchCount(
|
||||
from,
|
||||
Where("testNumber", isEqualTo: 0),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
)
|
||||
let count = self.expectLogger([.LogWarning]) {
|
||||
|
||||
stack.fetchCount(
|
||||
from,
|
||||
Where("testNumber", isEqualTo: 0),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
)
|
||||
}
|
||||
XCTAssertNil(count)
|
||||
}
|
||||
}
|
||||
@@ -1595,7 +1637,10 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
}
|
||||
XCTAssertNil(object)
|
||||
|
||||
let objectID = transaction.fetchObjectID(from, fetchClauses)
|
||||
let objectID = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchObjectID(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectID)
|
||||
}
|
||||
do {
|
||||
@@ -1604,10 +1649,16 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
Where("%K < %@", "testNumber", 4),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
]
|
||||
let object = transaction.fetchOne(from, fetchClauses)
|
||||
let object = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchOne(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(object)
|
||||
|
||||
let objectID = transaction.fetchObjectID(from, fetchClauses)
|
||||
let objectID = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchObjectID(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectID)
|
||||
}
|
||||
}
|
||||
@@ -1769,7 +1820,10 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
}
|
||||
XCTAssertNil(object)
|
||||
|
||||
let objectID = transaction.fetchObjectID(from, fetchClauses)
|
||||
let objectID = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchObjectID(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectID)
|
||||
}
|
||||
do {
|
||||
@@ -1778,10 +1832,16 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
Where("%K < %@", "testNumber", 4),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
]
|
||||
let object = transaction.fetchOne(from, fetchClauses)
|
||||
let object = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchOne(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(object)
|
||||
|
||||
let objectID = transaction.fetchObjectID(from, fetchClauses)
|
||||
let objectID = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchObjectID(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectID)
|
||||
}
|
||||
}
|
||||
@@ -2094,7 +2154,10 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
}
|
||||
XCTAssertNil(objects)
|
||||
|
||||
let objectIDs = transaction.fetchObjectIDs(from, fetchClauses)
|
||||
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchObjectIDs(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectIDs)
|
||||
}
|
||||
do {
|
||||
@@ -2103,10 +2166,16 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
Where("testNumber", isEqualTo: 0),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
]
|
||||
let objects = transaction.fetchAll(from, fetchClauses)
|
||||
let objects = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchAll(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objects)
|
||||
|
||||
let objectIDs = transaction.fetchObjectIDs(from, fetchClauses)
|
||||
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchObjectIDs(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectIDs)
|
||||
}
|
||||
}
|
||||
@@ -2335,7 +2404,10 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
}
|
||||
XCTAssertNil(objects)
|
||||
|
||||
let objectIDs = transaction.fetchObjectIDs(from, fetchClauses)
|
||||
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchObjectIDs(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectIDs)
|
||||
}
|
||||
do {
|
||||
@@ -2343,10 +2415,16 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
let fetchClauses: [FetchClause] = [
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
]
|
||||
let objects = transaction.fetchAll(from, fetchClauses)
|
||||
let objects = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchAll(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objects)
|
||||
|
||||
let objectIDs = transaction.fetchObjectIDs(from, fetchClauses)
|
||||
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchObjectIDs(from, fetchClauses)
|
||||
}
|
||||
XCTAssertNil(objectIDs)
|
||||
}
|
||||
}
|
||||
@@ -2661,11 +2739,14 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
}
|
||||
do {
|
||||
|
||||
let count = transaction.fetchCount(
|
||||
from,
|
||||
Where("testNumber", isEqualTo: 0),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
)
|
||||
let count = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchCount(
|
||||
from,
|
||||
Where("testNumber", isEqualTo: 0),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
)
|
||||
}
|
||||
XCTAssertNil(count)
|
||||
}
|
||||
}
|
||||
@@ -2805,11 +2886,14 @@ final class FetchTests: BaseTestDataTestCase {
|
||||
}
|
||||
do {
|
||||
|
||||
let count = transaction.fetchCount(
|
||||
from,
|
||||
Where("testNumber", isEqualTo: 0),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
)
|
||||
let count = self.expectLogger([.LogWarning]) {
|
||||
|
||||
transaction.fetchCount(
|
||||
from,
|
||||
Where("testNumber", isEqualTo: 0),
|
||||
OrderBy(.Descending("testEntityID"))
|
||||
)
|
||||
}
|
||||
XCTAssertNil(count)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,7 +174,10 @@ final class FromTests: BaseTestCase {
|
||||
let from = From<TestEntity2>()
|
||||
|
||||
let request = NSFetchRequest()
|
||||
let storesFound = from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||
let storesFound = self.expectLogger([.LogWarning]) {
|
||||
|
||||
from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||
}
|
||||
XCTAssertFalse(storesFound)
|
||||
XCTAssertNotNil(request.entity)
|
||||
XCTAssertNotNil(request.affectedStores)
|
||||
@@ -189,7 +192,10 @@ final class FromTests: BaseTestCase {
|
||||
let from = From<TestEntity2>("Config1")
|
||||
|
||||
let request = NSFetchRequest()
|
||||
let storesFound = from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||
let storesFound = self.expectLogger([.LogWarning]) {
|
||||
|
||||
from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||
}
|
||||
XCTAssertFalse(storesFound)
|
||||
XCTAssertNotNil(request.entity)
|
||||
XCTAssertNotNil(request.affectedStores)
|
||||
@@ -204,7 +210,10 @@ final class FromTests: BaseTestCase {
|
||||
let from = From<TestEntity2>("Config2")
|
||||
|
||||
let request = NSFetchRequest()
|
||||
let storesFound = from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||
let storesFound = self.expectLogger([.LogWarning]) {
|
||||
|
||||
from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||
}
|
||||
XCTAssertFalse(storesFound)
|
||||
XCTAssertNotNil(request.entity)
|
||||
XCTAssertNotNil(request.affectedStores)
|
||||
@@ -290,7 +299,10 @@ final class FromTests: BaseTestCase {
|
||||
let from = From<TestEntity2>("Config1")
|
||||
|
||||
let request = NSFetchRequest()
|
||||
let storesFound = from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||
let storesFound = self.expectLogger([.LogWarning]) {
|
||||
|
||||
from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||
}
|
||||
XCTAssertFalse(storesFound)
|
||||
XCTAssertNotNil(request.entity)
|
||||
XCTAssertNotNil(request.affectedStores)
|
||||
@@ -305,7 +317,10 @@ final class FromTests: BaseTestCase {
|
||||
let from = From<TestEntity2>("Config2")
|
||||
|
||||
let request = NSFetchRequest()
|
||||
let storesFound = from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||
let storesFound = self.expectLogger([.LogWarning]) {
|
||||
|
||||
from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||
}
|
||||
XCTAssertFalse(storesFound)
|
||||
XCTAssertNotNil(request.entity)
|
||||
XCTAssertNotNil(request.affectedStores)
|
||||
@@ -391,7 +406,10 @@ final class FromTests: BaseTestCase {
|
||||
let from = From<TestEntity2>("Config1")
|
||||
|
||||
let request = NSFetchRequest()
|
||||
let storesFound = from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||
let storesFound = self.expectLogger([.LogWarning]) {
|
||||
|
||||
from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||
}
|
||||
XCTAssertFalse(storesFound)
|
||||
XCTAssertNotNil(request.entity)
|
||||
XCTAssertNotNil(request.affectedStores)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
<attribute name="testDate" optional="YES" attributeType="Date" syncable="YES"/>
|
||||
<attribute name="testDecimal" optional="YES" attributeType="Decimal" defaultValueString="0.0" syncable="YES"/>
|
||||
<attribute name="testEntityID" attributeType="Integer 64" syncable="YES"/>
|
||||
<attribute name="testNil" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="testNumber" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
|
||||
<attribute name="testString" optional="YES" attributeType="String" syncable="YES"/>
|
||||
</entity>
|
||||
@@ -15,6 +16,7 @@
|
||||
<attribute name="testDate" optional="YES" attributeType="Date" syncable="YES"/>
|
||||
<attribute name="testDecimal" optional="YES" attributeType="Decimal" defaultValueString="0.0" syncable="YES"/>
|
||||
<attribute name="testEntityID" attributeType="Integer 64" syncable="YES"/>
|
||||
<attribute name="testNil" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="testNumber" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
|
||||
<attribute name="testString" optional="YES" attributeType="String" syncable="YES"/>
|
||||
</entity>
|
||||
@@ -25,7 +27,7 @@
|
||||
<memberEntity name="TestEntity2"/>
|
||||
</configuration>
|
||||
<elements>
|
||||
<element name="TestEntity1AAA" positionX="-63" positionY="-18" width="128" height="150"/>
|
||||
<element name="TestEntity2" positionX="-63" positionY="9" width="128" height="150"/>
|
||||
<element name="TestEntity1AAA" positionX="-63" positionY="-18" width="128" height="165"/>
|
||||
<element name="TestEntity2" positionX="-63" positionY="9" width="128" height="165"/>
|
||||
</elements>
|
||||
</model>
|
||||
@@ -1153,4 +1153,125 @@ class QueryTests: BaseTestDataTestCase {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@objc
|
||||
dynamic func test_ThatDataStacks_CanQueryAttributes() {
|
||||
|
||||
let configurations: [String?] = [nil]
|
||||
self.prepareStack(configurations: configurations) { (stack) in
|
||||
|
||||
self.prepareTestDataForStack(stack, configurations: configurations)
|
||||
|
||||
let from = From<TestEntity1>(configurations)
|
||||
let queryClauses: [QueryClause] = [
|
||||
Where("%K > %@", "testNumber", 3),
|
||||
OrderBy(.Ascending("testEntityID"))
|
||||
]
|
||||
do {
|
||||
|
||||
let values = stack.queryAttributes(
|
||||
from,
|
||||
Select(
|
||||
"testBoolean",
|
||||
"testNumber",
|
||||
"testDecimal",
|
||||
"testString",
|
||||
"testData",
|
||||
"testDate",
|
||||
"testNil"
|
||||
),
|
||||
queryClauses
|
||||
)
|
||||
XCTAssertNotNil(values)
|
||||
XCTAssertEqual(
|
||||
values!,
|
||||
[
|
||||
[
|
||||
"testBoolean": NSNumber(bool: false),
|
||||
"testNumber": NSNumber(integer: 4),
|
||||
"testDecimal": NSDecimalNumber(string: "4"),
|
||||
"testString": "nil:TestEntity1:4",
|
||||
"testData": ("nil:TestEntity1:4" as NSString).dataUsingEncoding(NSUTF8StringEncoding)!,
|
||||
"testDate": self.dateFormatter.dateFromString("2000-01-04T00:00:00Z")!
|
||||
],
|
||||
[
|
||||
"testBoolean": NSNumber(bool: true),
|
||||
"testNumber": NSNumber(integer: 5),
|
||||
"testDecimal": NSDecimalNumber(string: "5"),
|
||||
"testString": "nil:TestEntity1:5",
|
||||
"testData": ("nil:TestEntity1:5" as NSString).dataUsingEncoding(NSUTF8StringEncoding)!,
|
||||
"testDate": self.dateFormatter.dateFromString("2000-01-05T00:00:00Z")!
|
||||
]
|
||||
]
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@objc
|
||||
dynamic func test_ThatDataStacks_CanQueryAggregates() {
|
||||
|
||||
let configurations: [String?] = [nil]
|
||||
self.prepareStack(configurations: configurations) { (stack) in
|
||||
|
||||
self.prepareTestDataForStack(stack, configurations: configurations)
|
||||
|
||||
let from = From<TestEntity1>(configurations)
|
||||
let queryClauses: [QueryClause] = []
|
||||
do {
|
||||
|
||||
let values = stack.queryAttributes(
|
||||
from,
|
||||
Select(
|
||||
.Sum("testBoolean"),
|
||||
.Count("testNumber"),
|
||||
.Maximum("testNumber"),
|
||||
.Minimum("testNumber"),
|
||||
.Average("testDecimal")
|
||||
),
|
||||
queryClauses
|
||||
)
|
||||
XCTAssertNotNil(values)
|
||||
XCTAssertEqual(
|
||||
values!,
|
||||
[
|
||||
[
|
||||
"sum(testBoolean)": 3,
|
||||
"count(testNumber)": 5,
|
||||
"max(testNumber)": 5,
|
||||
"min(testNumber)": 1,
|
||||
"average(testDecimal)": 3,
|
||||
]
|
||||
]
|
||||
)
|
||||
}
|
||||
do {
|
||||
|
||||
let values = stack.queryAttributes(
|
||||
from,
|
||||
Select(
|
||||
.Sum("testBoolean", As: "testSum"),
|
||||
.Count("testNumber", As: "testCount"),
|
||||
.Maximum("testNumber", As: "testMaximum"),
|
||||
.Minimum("testNumber", As: "testMinimum"),
|
||||
.Average("testDecimal", As: "testAverage")
|
||||
),
|
||||
queryClauses
|
||||
)
|
||||
XCTAssertNotNil(values)
|
||||
XCTAssertEqual(
|
||||
values!,
|
||||
[
|
||||
[
|
||||
"testSum": 3,
|
||||
"testCount": 5,
|
||||
"testMaximum": 5,
|
||||
"testMinimum": 1,
|
||||
"testAverage": 3,
|
||||
]
|
||||
]
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,4 +35,5 @@ class TestEntity1: NSManagedObject {
|
||||
@NSManaged var testBoolean: NSNumber?
|
||||
@NSManaged var testDecimal: NSDecimalNumber?
|
||||
@NSManaged var testData: NSData?
|
||||
@NSManaged var testNil: String?
|
||||
}
|
||||
|
||||
@@ -35,4 +35,5 @@ class TestEntity2: NSManagedObject {
|
||||
@NSManaged var testBoolean: NSNumber?
|
||||
@NSManaged var testDecimal: NSDecimalNumber?
|
||||
@NSManaged var testData: NSData?
|
||||
@NSManaged var testNil: String?
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user