mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-03-26 11:21:32 +01:00
querying unit tests
This commit is contained in:
@@ -71,7 +71,7 @@ class BaseTestCase: XCTestCase {
|
|||||||
defer {
|
defer {
|
||||||
|
|
||||||
self.waitForExpectationsWithTimeout(0, handler: nil)
|
self.waitForExpectationsWithTimeout(0, handler: nil)
|
||||||
CoreStore.logger = DefaultLogger()
|
CoreStore.logger = TestLogger([:])
|
||||||
}
|
}
|
||||||
return closure()
|
return closure()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -144,7 +144,10 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
}
|
}
|
||||||
XCTAssertNil(object)
|
XCTAssertNil(object)
|
||||||
|
|
||||||
let objectID = stack.fetchObjectID(from, fetchClauses)
|
let objectID = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
stack.fetchObjectID(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectID)
|
XCTAssertNil(objectID)
|
||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
@@ -153,10 +156,16 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
Where("%K < %@", "testNumber", 4),
|
Where("%K < %@", "testNumber", 4),
|
||||||
OrderBy(.Descending("testEntityID"))
|
OrderBy(.Descending("testEntityID"))
|
||||||
]
|
]
|
||||||
let object = stack.fetchOne(from, fetchClauses)
|
let object = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
stack.fetchOne(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(object)
|
XCTAssertNil(object)
|
||||||
|
|
||||||
let objectID = stack.fetchObjectID(from, fetchClauses)
|
let objectID = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
stack.fetchObjectID(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectID)
|
XCTAssertNil(objectID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -318,7 +327,10 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
}
|
}
|
||||||
XCTAssertNil(object)
|
XCTAssertNil(object)
|
||||||
|
|
||||||
let objectID = stack.fetchObjectID(from, fetchClauses)
|
let objectID = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
stack.fetchObjectID(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectID)
|
XCTAssertNil(objectID)
|
||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
@@ -327,10 +339,16 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
Where("%K < %@", "testNumber", 4),
|
Where("%K < %@", "testNumber", 4),
|
||||||
OrderBy(.Descending("testEntityID"))
|
OrderBy(.Descending("testEntityID"))
|
||||||
]
|
]
|
||||||
let object = stack.fetchOne(from, fetchClauses)
|
let object = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
stack.fetchOne(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(object)
|
XCTAssertNil(object)
|
||||||
|
|
||||||
let objectID = stack.fetchObjectID(from, fetchClauses)
|
let objectID = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
stack.fetchObjectID(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectID)
|
XCTAssertNil(objectID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -643,7 +661,10 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
}
|
}
|
||||||
XCTAssertNil(objects)
|
XCTAssertNil(objects)
|
||||||
|
|
||||||
let objectIDs = stack.fetchObjectIDs(from, fetchClauses)
|
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
stack.fetchObjectIDs(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectIDs)
|
XCTAssertNil(objectIDs)
|
||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
@@ -652,10 +673,16 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
Where("testNumber", isEqualTo: 0),
|
Where("testNumber", isEqualTo: 0),
|
||||||
OrderBy(.Descending("testEntityID"))
|
OrderBy(.Descending("testEntityID"))
|
||||||
]
|
]
|
||||||
let objects = stack.fetchAll(from, fetchClauses)
|
let objects = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
stack.fetchAll(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objects)
|
XCTAssertNil(objects)
|
||||||
|
|
||||||
let objectIDs = stack.fetchObjectIDs(from, fetchClauses)
|
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
stack.fetchObjectIDs(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectIDs)
|
XCTAssertNil(objectIDs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -884,7 +911,10 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
}
|
}
|
||||||
XCTAssertNil(objects)
|
XCTAssertNil(objects)
|
||||||
|
|
||||||
let objectIDs = stack.fetchObjectIDs(from, fetchClauses)
|
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
stack.fetchObjectIDs(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectIDs)
|
XCTAssertNil(objectIDs)
|
||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
@@ -892,10 +922,16 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
let fetchClauses: [FetchClause] = [
|
let fetchClauses: [FetchClause] = [
|
||||||
OrderBy(.Descending("testEntityID"))
|
OrderBy(.Descending("testEntityID"))
|
||||||
]
|
]
|
||||||
let objects = stack.fetchAll(from, fetchClauses)
|
let objects = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
stack.fetchAll(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objects)
|
XCTAssertNil(objects)
|
||||||
|
|
||||||
let objectIDs = stack.fetchObjectIDs(from, fetchClauses)
|
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
stack.fetchObjectIDs(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectIDs)
|
XCTAssertNil(objectIDs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1210,11 +1246,14 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
|
|
||||||
let count = stack.fetchCount(
|
let count = self.expectLogger([.LogWarning]) {
|
||||||
from,
|
|
||||||
Where("testNumber", isEqualTo: 0),
|
stack.fetchCount(
|
||||||
OrderBy(.Descending("testEntityID"))
|
from,
|
||||||
)
|
Where("testNumber", isEqualTo: 0),
|
||||||
|
OrderBy(.Descending("testEntityID"))
|
||||||
|
)
|
||||||
|
}
|
||||||
XCTAssertNil(count)
|
XCTAssertNil(count)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1354,11 +1393,14 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
|
|
||||||
let count = stack.fetchCount(
|
let count = self.expectLogger([.LogWarning]) {
|
||||||
from,
|
|
||||||
Where("testNumber", isEqualTo: 0),
|
stack.fetchCount(
|
||||||
OrderBy(.Descending("testEntityID"))
|
from,
|
||||||
)
|
Where("testNumber", isEqualTo: 0),
|
||||||
|
OrderBy(.Descending("testEntityID"))
|
||||||
|
)
|
||||||
|
}
|
||||||
XCTAssertNil(count)
|
XCTAssertNil(count)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1595,7 +1637,10 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
}
|
}
|
||||||
XCTAssertNil(object)
|
XCTAssertNil(object)
|
||||||
|
|
||||||
let objectID = transaction.fetchObjectID(from, fetchClauses)
|
let objectID = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
transaction.fetchObjectID(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectID)
|
XCTAssertNil(objectID)
|
||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
@@ -1604,10 +1649,16 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
Where("%K < %@", "testNumber", 4),
|
Where("%K < %@", "testNumber", 4),
|
||||||
OrderBy(.Descending("testEntityID"))
|
OrderBy(.Descending("testEntityID"))
|
||||||
]
|
]
|
||||||
let object = transaction.fetchOne(from, fetchClauses)
|
let object = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
transaction.fetchOne(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(object)
|
XCTAssertNil(object)
|
||||||
|
|
||||||
let objectID = transaction.fetchObjectID(from, fetchClauses)
|
let objectID = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
transaction.fetchObjectID(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectID)
|
XCTAssertNil(objectID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1769,7 +1820,10 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
}
|
}
|
||||||
XCTAssertNil(object)
|
XCTAssertNil(object)
|
||||||
|
|
||||||
let objectID = transaction.fetchObjectID(from, fetchClauses)
|
let objectID = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
transaction.fetchObjectID(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectID)
|
XCTAssertNil(objectID)
|
||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
@@ -1778,10 +1832,16 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
Where("%K < %@", "testNumber", 4),
|
Where("%K < %@", "testNumber", 4),
|
||||||
OrderBy(.Descending("testEntityID"))
|
OrderBy(.Descending("testEntityID"))
|
||||||
]
|
]
|
||||||
let object = transaction.fetchOne(from, fetchClauses)
|
let object = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
transaction.fetchOne(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(object)
|
XCTAssertNil(object)
|
||||||
|
|
||||||
let objectID = transaction.fetchObjectID(from, fetchClauses)
|
let objectID = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
transaction.fetchObjectID(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectID)
|
XCTAssertNil(objectID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2094,7 +2154,10 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
}
|
}
|
||||||
XCTAssertNil(objects)
|
XCTAssertNil(objects)
|
||||||
|
|
||||||
let objectIDs = transaction.fetchObjectIDs(from, fetchClauses)
|
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
transaction.fetchObjectIDs(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectIDs)
|
XCTAssertNil(objectIDs)
|
||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
@@ -2103,10 +2166,16 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
Where("testNumber", isEqualTo: 0),
|
Where("testNumber", isEqualTo: 0),
|
||||||
OrderBy(.Descending("testEntityID"))
|
OrderBy(.Descending("testEntityID"))
|
||||||
]
|
]
|
||||||
let objects = transaction.fetchAll(from, fetchClauses)
|
let objects = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
transaction.fetchAll(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objects)
|
XCTAssertNil(objects)
|
||||||
|
|
||||||
let objectIDs = transaction.fetchObjectIDs(from, fetchClauses)
|
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
transaction.fetchObjectIDs(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectIDs)
|
XCTAssertNil(objectIDs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2335,7 +2404,10 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
}
|
}
|
||||||
XCTAssertNil(objects)
|
XCTAssertNil(objects)
|
||||||
|
|
||||||
let objectIDs = transaction.fetchObjectIDs(from, fetchClauses)
|
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
transaction.fetchObjectIDs(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectIDs)
|
XCTAssertNil(objectIDs)
|
||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
@@ -2343,10 +2415,16 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
let fetchClauses: [FetchClause] = [
|
let fetchClauses: [FetchClause] = [
|
||||||
OrderBy(.Descending("testEntityID"))
|
OrderBy(.Descending("testEntityID"))
|
||||||
]
|
]
|
||||||
let objects = transaction.fetchAll(from, fetchClauses)
|
let objects = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
transaction.fetchAll(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objects)
|
XCTAssertNil(objects)
|
||||||
|
|
||||||
let objectIDs = transaction.fetchObjectIDs(from, fetchClauses)
|
let objectIDs = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
transaction.fetchObjectIDs(from, fetchClauses)
|
||||||
|
}
|
||||||
XCTAssertNil(objectIDs)
|
XCTAssertNil(objectIDs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2661,11 +2739,14 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
|
|
||||||
let count = transaction.fetchCount(
|
let count = self.expectLogger([.LogWarning]) {
|
||||||
from,
|
|
||||||
Where("testNumber", isEqualTo: 0),
|
transaction.fetchCount(
|
||||||
OrderBy(.Descending("testEntityID"))
|
from,
|
||||||
)
|
Where("testNumber", isEqualTo: 0),
|
||||||
|
OrderBy(.Descending("testEntityID"))
|
||||||
|
)
|
||||||
|
}
|
||||||
XCTAssertNil(count)
|
XCTAssertNil(count)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2805,11 +2886,14 @@ final class FetchTests: BaseTestDataTestCase {
|
|||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
|
|
||||||
let count = transaction.fetchCount(
|
let count = self.expectLogger([.LogWarning]) {
|
||||||
from,
|
|
||||||
Where("testNumber", isEqualTo: 0),
|
transaction.fetchCount(
|
||||||
OrderBy(.Descending("testEntityID"))
|
from,
|
||||||
)
|
Where("testNumber", isEqualTo: 0),
|
||||||
|
OrderBy(.Descending("testEntityID"))
|
||||||
|
)
|
||||||
|
}
|
||||||
XCTAssertNil(count)
|
XCTAssertNil(count)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -174,7 +174,10 @@ final class FromTests: BaseTestCase {
|
|||||||
let from = From<TestEntity2>()
|
let from = From<TestEntity2>()
|
||||||
|
|
||||||
let request = NSFetchRequest()
|
let request = NSFetchRequest()
|
||||||
let storesFound = from.applyToFetchRequest(request, context: dataStack.mainContext)
|
let storesFound = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||||
|
}
|
||||||
XCTAssertFalse(storesFound)
|
XCTAssertFalse(storesFound)
|
||||||
XCTAssertNotNil(request.entity)
|
XCTAssertNotNil(request.entity)
|
||||||
XCTAssertNotNil(request.affectedStores)
|
XCTAssertNotNil(request.affectedStores)
|
||||||
@@ -189,7 +192,10 @@ final class FromTests: BaseTestCase {
|
|||||||
let from = From<TestEntity2>("Config1")
|
let from = From<TestEntity2>("Config1")
|
||||||
|
|
||||||
let request = NSFetchRequest()
|
let request = NSFetchRequest()
|
||||||
let storesFound = from.applyToFetchRequest(request, context: dataStack.mainContext)
|
let storesFound = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||||
|
}
|
||||||
XCTAssertFalse(storesFound)
|
XCTAssertFalse(storesFound)
|
||||||
XCTAssertNotNil(request.entity)
|
XCTAssertNotNil(request.entity)
|
||||||
XCTAssertNotNil(request.affectedStores)
|
XCTAssertNotNil(request.affectedStores)
|
||||||
@@ -204,7 +210,10 @@ final class FromTests: BaseTestCase {
|
|||||||
let from = From<TestEntity2>("Config2")
|
let from = From<TestEntity2>("Config2")
|
||||||
|
|
||||||
let request = NSFetchRequest()
|
let request = NSFetchRequest()
|
||||||
let storesFound = from.applyToFetchRequest(request, context: dataStack.mainContext)
|
let storesFound = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||||
|
}
|
||||||
XCTAssertFalse(storesFound)
|
XCTAssertFalse(storesFound)
|
||||||
XCTAssertNotNil(request.entity)
|
XCTAssertNotNil(request.entity)
|
||||||
XCTAssertNotNil(request.affectedStores)
|
XCTAssertNotNil(request.affectedStores)
|
||||||
@@ -290,7 +299,10 @@ final class FromTests: BaseTestCase {
|
|||||||
let from = From<TestEntity2>("Config1")
|
let from = From<TestEntity2>("Config1")
|
||||||
|
|
||||||
let request = NSFetchRequest()
|
let request = NSFetchRequest()
|
||||||
let storesFound = from.applyToFetchRequest(request, context: dataStack.mainContext)
|
let storesFound = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||||
|
}
|
||||||
XCTAssertFalse(storesFound)
|
XCTAssertFalse(storesFound)
|
||||||
XCTAssertNotNil(request.entity)
|
XCTAssertNotNil(request.entity)
|
||||||
XCTAssertNotNil(request.affectedStores)
|
XCTAssertNotNil(request.affectedStores)
|
||||||
@@ -305,7 +317,10 @@ final class FromTests: BaseTestCase {
|
|||||||
let from = From<TestEntity2>("Config2")
|
let from = From<TestEntity2>("Config2")
|
||||||
|
|
||||||
let request = NSFetchRequest()
|
let request = NSFetchRequest()
|
||||||
let storesFound = from.applyToFetchRequest(request, context: dataStack.mainContext)
|
let storesFound = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||||
|
}
|
||||||
XCTAssertFalse(storesFound)
|
XCTAssertFalse(storesFound)
|
||||||
XCTAssertNotNil(request.entity)
|
XCTAssertNotNil(request.entity)
|
||||||
XCTAssertNotNil(request.affectedStores)
|
XCTAssertNotNil(request.affectedStores)
|
||||||
@@ -391,7 +406,10 @@ final class FromTests: BaseTestCase {
|
|||||||
let from = From<TestEntity2>("Config1")
|
let from = From<TestEntity2>("Config1")
|
||||||
|
|
||||||
let request = NSFetchRequest()
|
let request = NSFetchRequest()
|
||||||
let storesFound = from.applyToFetchRequest(request, context: dataStack.mainContext)
|
let storesFound = self.expectLogger([.LogWarning]) {
|
||||||
|
|
||||||
|
from.applyToFetchRequest(request, context: dataStack.mainContext)
|
||||||
|
}
|
||||||
XCTAssertFalse(storesFound)
|
XCTAssertFalse(storesFound)
|
||||||
XCTAssertNotNil(request.entity)
|
XCTAssertNotNil(request.entity)
|
||||||
XCTAssertNotNil(request.affectedStores)
|
XCTAssertNotNil(request.affectedStores)
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
<attribute name="testDate" optional="YES" attributeType="Date" syncable="YES"/>
|
<attribute name="testDate" optional="YES" attributeType="Date" syncable="YES"/>
|
||||||
<attribute name="testDecimal" optional="YES" attributeType="Decimal" defaultValueString="0.0" syncable="YES"/>
|
<attribute name="testDecimal" optional="YES" attributeType="Decimal" defaultValueString="0.0" syncable="YES"/>
|
||||||
<attribute name="testEntityID" attributeType="Integer 64" 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="testNumber" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
|
||||||
<attribute name="testString" optional="YES" attributeType="String" syncable="YES"/>
|
<attribute name="testString" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
</entity>
|
</entity>
|
||||||
@@ -15,6 +16,7 @@
|
|||||||
<attribute name="testDate" optional="YES" attributeType="Date" syncable="YES"/>
|
<attribute name="testDate" optional="YES" attributeType="Date" syncable="YES"/>
|
||||||
<attribute name="testDecimal" optional="YES" attributeType="Decimal" defaultValueString="0.0" syncable="YES"/>
|
<attribute name="testDecimal" optional="YES" attributeType="Decimal" defaultValueString="0.0" syncable="YES"/>
|
||||||
<attribute name="testEntityID" attributeType="Integer 64" 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="testNumber" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
|
||||||
<attribute name="testString" optional="YES" attributeType="String" syncable="YES"/>
|
<attribute name="testString" optional="YES" attributeType="String" syncable="YES"/>
|
||||||
</entity>
|
</entity>
|
||||||
@@ -25,7 +27,7 @@
|
|||||||
<memberEntity name="TestEntity2"/>
|
<memberEntity name="TestEntity2"/>
|
||||||
</configuration>
|
</configuration>
|
||||||
<elements>
|
<elements>
|
||||||
<element name="TestEntity1AAA" positionX="-63" positionY="-18" 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="150"/>
|
<element name="TestEntity2" positionX="-63" positionY="9" width="128" height="165"/>
|
||||||
</elements>
|
</elements>
|
||||||
</model>
|
</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 testBoolean: NSNumber?
|
||||||
@NSManaged var testDecimal: NSDecimalNumber?
|
@NSManaged var testDecimal: NSDecimalNumber?
|
||||||
@NSManaged var testData: NSData?
|
@NSManaged var testData: NSData?
|
||||||
|
@NSManaged var testNil: String?
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,4 +35,5 @@ class TestEntity2: NSManagedObject {
|
|||||||
@NSManaged var testBoolean: NSNumber?
|
@NSManaged var testBoolean: NSNumber?
|
||||||
@NSManaged var testDecimal: NSDecimalNumber?
|
@NSManaged var testDecimal: NSDecimalNumber?
|
||||||
@NSManaged var testData: NSData?
|
@NSManaged var testData: NSData?
|
||||||
|
@NSManaged var testNil: String?
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user