WIP: broken generics

This commit is contained in:
John Estropia
2016-09-06 20:16:46 +09:00
parent b502895d63
commit 82de482191
95 changed files with 610 additions and 677 deletions

View File

@@ -37,11 +37,11 @@ class BaseTestCase: XCTestCase {
@nonobjc
@discardableResult
func prepareStack<T>(configurations: [String?] = [nil], _ closure: @noescape (dataStack: DataStack) -> T) -> T {
func prepareStack<T>(configurations: [String?] = [nil], _ closure: (_ dataStack: DataStack) -> T) -> T {
let stack = DataStack(
modelName: "Model",
bundle: Bundle(for: self.dynamicType)
bundle: Bundle(for: type(of: self))
)
do {
@@ -49,9 +49,9 @@ class BaseTestCase: XCTestCase {
try stack.addStorageAndWait(
SQLiteStore(
fileURL: try SQLiteStore.defaultRootDirectory
fileURL: SQLiteStore.defaultRootDirectory
.appendingPathComponent(UUID().uuidString)
.appendingPathComponent("\(self.dynamicType)_\(($0 ?? "-null-")).sqlite"),
.appendingPathComponent("\(type(of: self))_\(($0 ?? "-null-")).sqlite"),
configuration: $0,
localStorageOptions: .recreateStoreOnModelMismatch
)
@@ -62,11 +62,11 @@ class BaseTestCase: XCTestCase {
XCTFail(error.coreStoreDumpString)
}
return closure(dataStack: stack)
return closure(stack)
}
@nonobjc
func expectLogger<T>(_ expectations: [TestLogger.Expectation], closure: @noescape () -> T) -> T {
func expectLogger<T>(_ expectations: [TestLogger.Expectation], closure: () -> T) -> T {
CoreStore.logger = TestLogger(self.prepareLoggerExpectations(expectations))
defer {
@@ -89,7 +89,7 @@ class BaseTestCase: XCTestCase {
var testExpectations: [TestLogger.Expectation: XCTestExpectation] = [:]
for expectation in expectations {
testExpectations[expectation] = self.expectation(withDescription: "Logger Expectation: \(expectation)")
testExpectations[expectation] = self.expectation(description: "Logger Expectation: \(expectation)")
}
return testExpectations
}
@@ -97,13 +97,13 @@ class BaseTestCase: XCTestCase {
@nonobjc
func checkExpectationsImmediately() {
self.waitForExpectations(withTimeout: 0, handler: nil)
self.waitForExpectations(timeout: 0, handler: nil)
}
@nonobjc
func waitAndCheckExpectations() {
self.waitForExpectations(withTimeout: 10, handler: nil)
self.waitForExpectations(timeout: 10, handler: nil)
}
// MARK: XCTestCase

View File

@@ -20,8 +20,8 @@ class BaseTestDataTestCase: BaseTestCase {
let dateFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.locale = Locale(localeIdentifier: "en_US_POSIX")
formatter.timeZone = TimeZone(name: "UTC")
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.timeZone = TimeZone(identifier: "UTC")
formatter.calendar = Calendar(identifier: Calendar.Identifier.gregorian)
formatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ssZ"
return formatter
@@ -42,9 +42,9 @@ class BaseTestDataTestCase: BaseTestCase {
let object = transaction.create(Into<TestEntity1>(configuration))
object.testEntityID = NSNumber(value: (configurationOrdinal * 100) + idIndex)
object.testNumber = idIndex
object.testNumber = NSNumber(value: idIndex)
object.testDate = self.dateFormatter.date(from: "2000-\(configurationOrdinal)-\(idIndex)T00:00:00Z")
object.testBoolean = (idIndex % 2) == 1
object.testBoolean = NSNumber(value: (idIndex % 2) == 1)
object.testDecimal = NSDecimalNumber(string: "\(idIndex)")
let string = "\(configuration ?? "nil"):TestEntity1:\(idIndex)"
@@ -59,9 +59,9 @@ class BaseTestDataTestCase: BaseTestCase {
let object = transaction.create(Into<TestEntity2>(configuration))
object.testEntityID = NSNumber(value: (configurationOrdinal * 200) + idIndex)
object.testNumber = idIndex
object.testNumber = NSNumber(value: idIndex)
object.testDate = self.dateFormatter.date(from: "2000-\(configurationOrdinal)-\(idIndex)T00:00:00Z")
object.testBoolean = (idIndex % 2) == 1
object.testBoolean = NSNumber(value: (idIndex % 2) == 1)
object.testDecimal = NSDecimalNumber(string: "\(idIndex)")
let string = "\(configuration ?? "nil"):TestEntity2:\(idIndex)"
@@ -70,7 +70,7 @@ class BaseTestDataTestCase: BaseTestCase {
}
}
}
transaction.commitAndWait()
_ = transaction.commitAndWait()
}
}
}

View File

@@ -46,13 +46,13 @@ final class ErrorTests: XCTestCase {
XCTAssertEqual(error, objcError.bridgeToSwift)
XCTAssertEqual(objcError.domain, CoreStoreErrorDomain)
XCTAssertEqual(objcError.code, CoreStoreErrorCode.unknownError.rawValue)
XCTAssertEqual(objcError.userInfo, userInfo)
XCTAssertEqual(objcError.userInfo as NSDictionary, userInfo)
let objcError2 = objcError.bridgeToSwift.bridgeToObjectiveC
XCTAssertEqual(error, objcError2.bridgeToSwift)
XCTAssertEqual(objcError2.domain, CoreStoreErrorDomain)
XCTAssertEqual(objcError2.code, CoreStoreErrorCode.unknownError.rawValue)
XCTAssertEqual(objcError2.userInfo, userInfo)
XCTAssertEqual(objcError2.userInfo as NSDictionary, userInfo)
}
@objc
@@ -71,13 +71,13 @@ final class ErrorTests: XCTestCase {
XCTAssertEqual(error, objcError.bridgeToSwift)
XCTAssertEqual(objcError.domain, CoreStoreErrorDomain)
XCTAssertEqual(objcError.code, CoreStoreErrorCode.differentStorageExistsAtURL.rawValue)
XCTAssertEqual(objcError.userInfo, userInfo)
XCTAssertEqual(objcError.userInfo as NSDictionary, userInfo)
let objcError2 = objcError.bridgeToSwift.bridgeToObjectiveC
XCTAssertEqual(error, objcError2.bridgeToSwift)
XCTAssertEqual(objcError2.domain, CoreStoreErrorDomain)
XCTAssertEqual(objcError2.code, CoreStoreErrorCode.differentStorageExistsAtURL.rawValue)
XCTAssertEqual(objcError2.userInfo, userInfo)
XCTAssertEqual(objcError2.userInfo as NSDictionary, userInfo)
}
@objc
@@ -85,7 +85,7 @@ final class ErrorTests: XCTestCase {
let dummyURL = URL(string: "file:///test1/test2.sqlite")!
let model = NSManagedObjectModel.fromBundle(Bundle(for: self.dynamicType), modelName: "Model")
let model = NSManagedObjectModel.fromBundle(Bundle(for: type(of: self)), modelName: "Model")
let version = "1.0.0"
let error = CoreStoreError.mappingModelNotFound(localStoreURL: dummyURL, targetModel: model, targetModelVersion: version)
@@ -101,13 +101,13 @@ final class ErrorTests: XCTestCase {
XCTAssertEqual(error, objcError.bridgeToSwift)
XCTAssertEqual(objcError.domain, CoreStoreErrorDomain)
XCTAssertEqual(objcError.code, CoreStoreErrorCode.mappingModelNotFound.rawValue)
XCTAssertEqual(objcError.userInfo, userInfo)
XCTAssertEqual(objcError.userInfo as NSDictionary, userInfo)
let objcError2 = objcError.bridgeToSwift.bridgeToObjectiveC
XCTAssertEqual(error, objcError2.bridgeToSwift)
XCTAssertEqual(objcError2.domain, CoreStoreErrorDomain)
XCTAssertEqual(objcError2.code, CoreStoreErrorCode.mappingModelNotFound.rawValue)
XCTAssertEqual(objcError2.userInfo, userInfo)
XCTAssertEqual(objcError2.userInfo as NSDictionary, userInfo)
}
@objc
@@ -126,13 +126,13 @@ final class ErrorTests: XCTestCase {
XCTAssertEqual(error, objcError.bridgeToSwift)
XCTAssertEqual(objcError.domain, CoreStoreErrorDomain)
XCTAssertEqual(objcError.code, CoreStoreErrorCode.progressiveMigrationRequired.rawValue)
XCTAssertEqual(objcError.userInfo, userInfo)
XCTAssertEqual(objcError.userInfo as NSDictionary, userInfo)
let objcError2 = objcError.bridgeToSwift.bridgeToObjectiveC
XCTAssertEqual(error, objcError2.bridgeToSwift)
XCTAssertEqual(objcError2.domain, CoreStoreErrorDomain)
XCTAssertEqual(objcError2.code, CoreStoreErrorCode.progressiveMigrationRequired.rawValue)
XCTAssertEqual(objcError2.userInfo, userInfo)
XCTAssertEqual(objcError2.userInfo as NSDictionary, userInfo)
}
@objc
@@ -158,12 +158,12 @@ final class ErrorTests: XCTestCase {
XCTAssertEqual(error, objcError.bridgeToSwift)
XCTAssertEqual(objcError.domain, CoreStoreErrorDomain)
XCTAssertEqual(objcError.code, CoreStoreErrorCode.internalError.rawValue)
XCTAssertEqual(objcError.userInfo, userInfo)
XCTAssertEqual(objcError.userInfo as NSDictionary, userInfo)
let objcError2 = objcError.bridgeToSwift.bridgeToObjectiveC
XCTAssertEqual(error, objcError2.bridgeToSwift)
XCTAssertEqual(objcError2.domain, CoreStoreErrorDomain)
XCTAssertEqual(objcError2.code, CoreStoreErrorCode.internalError.rawValue)
XCTAssertEqual(objcError2.userInfo, userInfo)
XCTAssertEqual(objcError2.userInfo as NSDictionary, userInfo)
}
}

View File

@@ -69,7 +69,7 @@ final class FetchTests: BaseTestDataTestCase {
}
do {
let fetchExpectation = self.expectation(withDescription: "fetch")
let fetchExpectation = self.expectation(description: "fetch")
var existing1: TestEntity1?
stack.beginSynchronous { (transaction) in
@@ -88,7 +88,7 @@ final class FetchTests: BaseTestDataTestCase {
}
do {
let fetchExpectation = self.expectation(withDescription: "fetch")
let fetchExpectation = self.expectation(description: "fetch")
stack.beginAsynchronous { (transaction) in
let existing1 = transaction.fetchExisting(object)
@@ -162,7 +162,7 @@ final class FetchTests: BaseTestDataTestCase {
}
do {
let fetchExpectation = self.expectation(withDescription: "fetch")
let fetchExpectation = self.expectation(description: "fetch")
var existing1 = [TestEntity1]()
stack.beginSynchronous { (transaction) in
@@ -191,7 +191,7 @@ final class FetchTests: BaseTestDataTestCase {
}
do {
let fetchExpectation = self.expectation(withDescription: "fetch")
let fetchExpectation = self.expectation(description: "fetch")
stack.beginAsynchronous { (transaction) in
let existing1 = transaction.fetchExisting(objects)

View File

@@ -72,7 +72,7 @@ class ImportTests: BaseTestDataTestCase {
stack.beginSynchronous { (transaction) in
let errorExpectation = self.expectation(withDescription: "error")
let errorExpectation = self.expectation(description: "error")
do {
let _ = try transaction.importObject(
@@ -215,8 +215,8 @@ class ImportTests: BaseTestDataTestCase {
XCTAssertEqual(object.testNumber, dictionary["testNumber"] as? NSNumber)
XCTAssertEqual(object.testDecimal, dictionary["testDecimal"] as? NSDecimalNumber)
XCTAssertEqual(object.testString, dictionary["testString"] as? String)
XCTAssertEqual(object.testData, dictionary["testData"] as? NSData)
XCTAssertEqual(object.testDate, dictionary["testDate"] as? NSDate)
XCTAssertEqual(object.testData, dictionary["testData"] as? Data)
XCTAssertEqual(object.testDate, dictionary["testDate"] as? Date)
}
catch {
@@ -234,7 +234,7 @@ class ImportTests: BaseTestDataTestCase {
stack.beginSynchronous { (transaction) in
let errorExpectation = self.expectation(withDescription: "error")
let errorExpectation = self.expectation(description: "error")
do {
let sourceArray: [TestEntity1.ImportSource] = [
@@ -331,8 +331,8 @@ class ImportTests: BaseTestDataTestCase {
XCTAssertEqual(object.testNumber, dictionary["testNumber"] as? NSNumber)
XCTAssertEqual(object.testDecimal, dictionary["testDecimal"] as? NSDecimalNumber)
XCTAssertEqual(object.testString, dictionary["testString"] as? String)
XCTAssertEqual(object.testData, dictionary["testData"] as? NSData)
XCTAssertEqual(object.testDate, dictionary["testDate"] as? NSDate)
XCTAssertEqual(object.testData, dictionary["testData"] as? Data)
XCTAssertEqual(object.testDate, dictionary["testDate"] as? Date)
}
}
catch {
@@ -425,7 +425,7 @@ class ImportTests: BaseTestDataTestCase {
do {
let errorExpectation = self.expectation(withDescription: "error")
let errorExpectation = self.expectation(description: "error")
do {
let _ = try transaction.importUniqueObject(
@@ -466,7 +466,7 @@ class ImportTests: BaseTestDataTestCase {
}
do {
let errorExpectation = self.expectation(withDescription: "error")
let errorExpectation = self.expectation(description: "error")
do {
let _ = try transaction.importUniqueObject(
@@ -639,8 +639,8 @@ class ImportTests: BaseTestDataTestCase {
XCTAssertEqual(object.testNumber, dictionary["testNumber"] as? NSNumber)
XCTAssertEqual(object.testDecimal, dictionary["testDecimal"] as? NSDecimalNumber)
XCTAssertEqual(object.testString, dictionary["testString"] as? String)
XCTAssertEqual(object.testData, dictionary["testData"] as? NSData)
XCTAssertEqual(object.testDate, dictionary["testDate"] as? NSDate)
XCTAssertEqual(object.testData, dictionary["testData"] as? Data)
XCTAssertEqual(object.testDate, dictionary["testDate"] as? Date)
}
catch {
@@ -660,7 +660,7 @@ class ImportTests: BaseTestDataTestCase {
stack.beginSynchronous { (transaction) in
let errorExpectation = self.expectation(withDescription: "error")
let errorExpectation = self.expectation(description: "error")
do {
let sourceArray: [TestEntity1.ImportSource] = [
@@ -707,7 +707,7 @@ class ImportTests: BaseTestDataTestCase {
}
stack.beginSynchronous { (transaction) in
let errorExpectation = self.expectation(withDescription: "error")
let errorExpectation = self.expectation(description: "error")
do {
let sourceArray: [TestEntity1.ImportSource] = [
@@ -760,7 +760,7 @@ class ImportTests: BaseTestDataTestCase {
}
stack.beginSynchronous { (transaction) in
let errorExpectation = self.expectation(withDescription: "error")
let errorExpectation = self.expectation(description: "error")
do {
let sourceArray: [TestEntity1.ImportSource] = [
@@ -860,8 +860,8 @@ class ImportTests: BaseTestDataTestCase {
XCTAssertEqual(object.testNumber, dictionary["testNumber"] as? NSNumber)
XCTAssertEqual(object.testDecimal, dictionary["testDecimal"] as? NSDecimalNumber)
XCTAssertEqual(object.testString, dictionary["testString"] as? String)
XCTAssertEqual(object.testData, dictionary["testData"] as? NSData)
XCTAssertEqual(object.testDate, dictionary["testDate"] as? NSDate)
XCTAssertEqual(object.testData, dictionary["testData"] as? Data)
XCTAssertEqual(object.testDate, dictionary["testDate"] as? Date)
}
let existingObjects = transaction.fetchAll(From<TestEntity1>(), Where("testEntityID", isEqualTo: 105))
XCTAssertNotNil(existingObjects)
@@ -883,17 +883,17 @@ class ImportTests: BaseTestDataTestCase {
// MARK: - TestInsertError
private struct TestInsertError: ErrorProtocol {}
private struct TestInsertError: Error {}
// MARK: - TestUpdateError
private struct TestUpdateError: ErrorProtocol {}
private struct TestUpdateError: Error {}
// MARK: - TestIDError
private struct TestIDError: ErrorProtocol {}
private struct TestIDError: Error {}
// MARK: - TestEntity1
@@ -902,14 +902,14 @@ extension TestEntity1: ImportableUniqueObject {
// MARK: ImportableObject
typealias ImportSource = [String: AnyObject]
typealias ImportSource = [String: Any]
static func shouldInsertFromImportSource(_ source: [String: AnyObject], inTransaction transaction: BaseDataTransaction) -> Bool {
static func shouldInsertFromImportSource(_ source: ImportSource, inTransaction transaction: BaseDataTransaction) -> Bool {
return source["skip_insert"] == nil
}
func didInsertFromImportSource(_ source: [String: AnyObject], inTransaction transaction: BaseDataTransaction) throws {
func didInsertFromImportSource(_ source: ImportSource, inTransaction transaction: BaseDataTransaction) throws {
if let _ = source["throw_on_insert"] {
@@ -951,12 +951,12 @@ extension TestEntity1: ImportableUniqueObject {
}
}
static func shouldUpdateFromImportSource(_ source: [String: AnyObject], inTransaction transaction: BaseDataTransaction) -> Bool {
static func shouldUpdateFromImportSource(_ source: ImportSource, inTransaction transaction: BaseDataTransaction) -> Bool {
return source["skip_update"] == nil
}
static func uniqueIDFromImportSource(_ source: [String: AnyObject], inTransaction transaction: BaseDataTransaction) throws -> NSNumber? {
static func uniqueIDFromImportSource(_ source: ImportSource, inTransaction transaction: BaseDataTransaction) throws -> NSNumber? {
if let _ = source["throw_on_id"] {
@@ -965,7 +965,7 @@ extension TestEntity1: ImportableUniqueObject {
return source["testEntityID"] as? NSNumber
}
func updateFromImportSource(_ source: [String: AnyObject], inTransaction transaction: BaseDataTransaction) throws {
func updateFromImportSource(_ source: ImportSource, inTransaction transaction: BaseDataTransaction) throws {
if let _ = source["throw_on_update"] {

View File

@@ -60,7 +60,7 @@ class ListObserverTests: BaseTestDataTestCase {
handler: { (note) -> Bool in
XCTAssertEqual(events, 0)
XCTAssertEqual(((note as NSNotification).userInfo ?? [:]), NSDictionary())
XCTAssertEqual((note.userInfo as NSDictionary?) ?? [:], NSDictionary())
defer {
events += 1
@@ -75,7 +75,7 @@ class ListObserverTests: BaseTestDataTestCase {
XCTAssertEqual(events, 1)
XCTAssertEqual(
((note as NSNotification).userInfo ?? [:]),
((note.userInfo as NSDictionary?) ?? [:]),
[
"sectionInfo": monitor.sectionInfoAtIndex(0),
"sectionIndex": 0
@@ -95,10 +95,10 @@ class ListObserverTests: BaseTestDataTestCase {
XCTAssertEqual(events, 2)
let userInfo = (note as NSNotification).userInfo
let userInfo = note.userInfo
XCTAssertNotNil(userInfo)
XCTAssertEqual(
Set(((userInfo as? [String: AnyObject]) ?? [:]).keys),
Set(userInfo?.keys.map({ $0 as! String }) ?? []),
["indexPath", "object"]
)
@@ -125,7 +125,7 @@ class ListObserverTests: BaseTestDataTestCase {
object: observer,
handler: { (note) -> Bool in
XCTAssertEqual(((note as NSNotification).userInfo ?? [:]), NSDictionary())
XCTAssertEqual((note.userInfo as NSDictionary?) ?? [:], NSDictionary())
defer {
events += 1
@@ -133,7 +133,7 @@ class ListObserverTests: BaseTestDataTestCase {
return events == 3
}
)
let saveExpectation = self.expectation(withDescription: "save")
let saveExpectation = self.expectation(description: "save")
stack.beginAsynchronous { (transaction) in
let object = transaction.create(Into<TestEntity1>())
@@ -191,7 +191,7 @@ class ListObserverTests: BaseTestDataTestCase {
handler: { (note) -> Bool in
XCTAssertEqual(events, 0)
XCTAssertEqual(((note as NSNotification).userInfo ?? [:]), NSDictionary())
XCTAssertEqual((note.userInfo as NSDictionary?) ?? [:], NSDictionary())
defer {
events += 1
@@ -208,10 +208,10 @@ class ListObserverTests: BaseTestDataTestCase {
XCTAssert(events == 1 || events == 2)
let userInfo = (note as NSNotification).userInfo
let userInfo = note.userInfo
XCTAssertNotNil(userInfo)
XCTAssertEqual(
Set(((userInfo as? [String: AnyObject]) ?? [:]).keys),
Set(userInfo?.keys.map({ $0 as! String }) ?? []),
["indexPath", "object"]
)
@@ -259,7 +259,7 @@ class ListObserverTests: BaseTestDataTestCase {
handler: { (note) -> Bool in
XCTAssertEqual(events, 3)
XCTAssertEqual(((note as NSNotification).userInfo ?? [:]), NSDictionary())
XCTAssertEqual((note.userInfo as NSDictionary?) ?? [:], NSDictionary())
defer {
events += 1
@@ -267,7 +267,7 @@ class ListObserverTests: BaseTestDataTestCase {
return events == 3
}
)
let saveExpectation = self.expectation(withDescription: "save")
let saveExpectation = self.expectation(description: "save")
stack.beginAsynchronous { (transaction) in
if let object = transaction.fetchOne(
@@ -338,7 +338,7 @@ class ListObserverTests: BaseTestDataTestCase {
handler: { (note) -> Bool in
XCTAssertEqual(events, 0)
XCTAssertEqual(((note as NSNotification).userInfo ?? [:]), NSDictionary())
XCTAssertEqual((note.userInfo as NSDictionary?) ?? [:], NSDictionary())
defer {
events += 1
@@ -353,10 +353,10 @@ class ListObserverTests: BaseTestDataTestCase {
XCTAssertEqual(events, 1)
let userInfo = (note as NSNotification).userInfo
let userInfo = note.userInfo
XCTAssertNotNil(userInfo)
XCTAssertEqual(
Set(((userInfo as? [String: AnyObject]) ?? [:]).keys),
Set(userInfo?.keys.map({ $0 as! String }) ?? []),
["fromIndexPath", "toIndexPath", "object"]
)
@@ -385,7 +385,7 @@ class ListObserverTests: BaseTestDataTestCase {
handler: { (note) -> Bool in
XCTAssertEqual(events, 2)
XCTAssertEqual(((note as NSNotification).userInfo ?? [:]), NSDictionary())
XCTAssertEqual((note.userInfo as NSDictionary?) ?? [:], NSDictionary())
defer {
events += 1
@@ -393,7 +393,7 @@ class ListObserverTests: BaseTestDataTestCase {
return events == 2
}
)
let saveExpectation = self.expectation(withDescription: "save")
let saveExpectation = self.expectation(description: "save")
stack.beginAsynchronous { (transaction) in
if let object = transaction.fetchOne(
@@ -446,7 +446,7 @@ class ListObserverTests: BaseTestDataTestCase {
handler: { (note) -> Bool in
XCTAssertEqual(events, 0)
XCTAssertEqual(((note as NSNotification).userInfo ?? [:]), NSDictionary())
XCTAssertEqual((note.userInfo as NSDictionary?) ?? [:], NSDictionary())
defer {
events += 1
@@ -463,10 +463,10 @@ class ListObserverTests: BaseTestDataTestCase {
XCTAssert(events == 1 || events == 2)
let userInfo = (note as NSNotification).userInfo
let userInfo = note.userInfo
XCTAssertNotNil(userInfo)
XCTAssertEqual(
Set(((userInfo as? [String: AnyObject]) ?? [:]).keys),
Set(userInfo?.keys.map({ $0 as! String }) ?? []),
["indexPath", "object"]
)
@@ -493,14 +493,14 @@ class ListObserverTests: BaseTestDataTestCase {
XCTAssertEqual(events, 3)
let userInfo = (note as NSNotification).userInfo
let userInfo = note.userInfo
XCTAssertNotNil(userInfo)
XCTAssertEqual(
Set(((userInfo as? [String: AnyObject]) ?? [:]).keys),
Set(userInfo?.keys.map({ $0 as! String }) ?? []),
["sectionInfo", "sectionIndex"]
)
let sectionInfo = userInfo?["sectionInfo"]
let sectionInfo = userInfo?["sectionInfo"] as? NSFetchedResultsSectionInfo
XCTAssertNotNil(sectionInfo)
XCTAssertEqual(sectionInfo?.name, "0")
@@ -520,7 +520,7 @@ class ListObserverTests: BaseTestDataTestCase {
handler: { (note) -> Bool in
XCTAssertEqual(events, 4)
XCTAssertEqual(((note as NSNotification).userInfo ?? [:]), NSDictionary())
XCTAssertEqual((note.userInfo as NSDictionary?) ?? [:], NSDictionary())
defer {
events += 1
@@ -528,7 +528,7 @@ class ListObserverTests: BaseTestDataTestCase {
return events == 4
}
)
let saveExpectation = self.expectation(withDescription: "save")
let saveExpectation = self.expectation(description: "save")
stack.beginAsynchronous { (transaction) in
transaction.deleteAll(

View File

@@ -65,7 +65,7 @@ class ObjectObserverTests: BaseTestDataTestCase {
XCTAssertEqual(events, 0)
XCTAssertEqual(
((note as NSNotification).userInfo ?? [:]),
((note.userInfo as NSDictionary?) ?? [:]),
["object": object] as NSDictionary
)
defer {
@@ -82,7 +82,7 @@ class ObjectObserverTests: BaseTestDataTestCase {
XCTAssertEqual(events, 1)
XCTAssertEqual(
((note as NSNotification).userInfo ?? [:]),
((note.userInfo as NSDictionary?) ?? [:]),
[
"object": object,
"changedPersistentKeys": Set(
@@ -104,7 +104,7 @@ class ObjectObserverTests: BaseTestDataTestCase {
return events == 1
}
)
let saveExpectation = self.expectation(withDescription: "save")
let saveExpectation = self.expectation(description: "save")
stack.beginAsynchronous { (transaction) in
guard let object = transaction.edit(object) else {
@@ -162,7 +162,7 @@ class ObjectObserverTests: BaseTestDataTestCase {
XCTAssertEqual(events, 0)
XCTAssertEqual(
((note as NSNotification).userInfo ?? [:]),
((note.userInfo as NSDictionary?) ?? [:]),
["object": object] as NSDictionary
)
defer {
@@ -172,7 +172,7 @@ class ObjectObserverTests: BaseTestDataTestCase {
return events == 0
}
)
let saveExpectation = self.expectation(withDescription: "save")
let saveExpectation = self.expectation(description: "save")
stack.beginAsynchronous { (transaction) in
guard let object = transaction.edit(object) else {

View File

@@ -39,27 +39,27 @@ final class OrderByTests: XCTestCase {
do {
let orderBy = OrderBy()
XCTAssertEqual(orderBy, OrderBy([SortDescriptor]()))
XCTAssertNotEqual(orderBy, OrderBy(SortDescriptor(key: "key", ascending: false)))
XCTAssertEqual(orderBy, OrderBy([NSSortDescriptor]()))
XCTAssertNotEqual(orderBy, OrderBy(NSSortDescriptor(key: "key", ascending: false)))
XCTAssertTrue(orderBy.sortDescriptors.isEmpty)
}
do {
let sortDescriptor = SortDescriptor(key: "key1", ascending: true)
let sortDescriptor = NSSortDescriptor(key: "key1", ascending: true)
let orderBy = OrderBy(sortDescriptor)
XCTAssertEqual(orderBy, OrderBy(sortDescriptor))
XCTAssertEqual(orderBy, OrderBy(.ascending("key1")))
XCTAssertNotEqual(orderBy, OrderBy(.ascending("key2")))
XCTAssertNotEqual(orderBy, OrderBy(.descending("key1")))
XCTAssertNotEqual(orderBy, OrderBy(SortDescriptor(key: "key1", ascending: false)))
XCTAssertNotEqual(orderBy, OrderBy(NSSortDescriptor(key: "key1", ascending: false)))
XCTAssertEqual(orderBy, OrderBy([sortDescriptor]))
XCTAssertEqual(orderBy.sortDescriptors, [sortDescriptor])
}
do {
let sortDescriptors = [
SortDescriptor(key: "key1", ascending: true),
SortDescriptor(key: "key2", ascending: false)
NSSortDescriptor(key: "key1", ascending: true),
NSSortDescriptor(key: "key2", ascending: false)
]
let orderBy = OrderBy(sortDescriptors)
XCTAssertEqual(orderBy, OrderBy(sortDescriptors))
@@ -68,8 +68,8 @@ final class OrderByTests: XCTestCase {
orderBy,
OrderBy(
[
SortDescriptor(key: "key1", ascending: false),
SortDescriptor(key: "key2", ascending: false)
NSSortDescriptor(key: "key1", ascending: false),
NSSortDescriptor(key: "key2", ascending: false)
]
)
)
@@ -80,7 +80,7 @@ final class OrderByTests: XCTestCase {
do {
let orderBy = OrderBy(.ascending("key1"))
let sortDescriptor = SortDescriptor(key: "key1", ascending: true)
let sortDescriptor = NSSortDescriptor(key: "key1", ascending: true)
XCTAssertEqual(orderBy, OrderBy(sortDescriptor))
XCTAssertEqual(orderBy, OrderBy(.ascending("key1")))
XCTAssertNotEqual(orderBy, OrderBy(.descending("key1")))
@@ -92,8 +92,8 @@ final class OrderByTests: XCTestCase {
let orderBy = OrderBy(.ascending("key1"), .descending("key2"))
let sortDescriptors = [
SortDescriptor(key: "key1", ascending: true),
SortDescriptor(key: "key2", ascending: false)
NSSortDescriptor(key: "key1", ascending: true),
NSSortDescriptor(key: "key2", ascending: false)
]
XCTAssertEqual(orderBy, OrderBy(sortDescriptors))
XCTAssertEqual(orderBy, OrderBy(.ascending("key1"), .descending("key2")))
@@ -101,8 +101,8 @@ final class OrderByTests: XCTestCase {
orderBy,
OrderBy(
[
SortDescriptor(key: "key1", ascending: false),
SortDescriptor(key: "key2", ascending: false)
NSSortDescriptor(key: "key1", ascending: false),
NSSortDescriptor(key: "key2", ascending: false)
]
)
)
@@ -115,8 +115,8 @@ final class OrderByTests: XCTestCase {
let sortKeys: [SortKey] = [.ascending("key1"), .descending("key2")]
let orderBy = OrderBy(sortKeys)
let sortDescriptors = [
SortDescriptor(key: "key1", ascending: true),
SortDescriptor(key: "key2", ascending: false)
NSSortDescriptor(key: "key1", ascending: true),
NSSortDescriptor(key: "key2", ascending: false)
]
XCTAssertEqual(orderBy, OrderBy(sortDescriptors))
XCTAssertEqual(orderBy, OrderBy(.ascending("key1"), .descending("key2")))
@@ -124,8 +124,8 @@ final class OrderByTests: XCTestCase {
orderBy,
OrderBy(
[
SortDescriptor(key: "key1", ascending: false),
SortDescriptor(key: "key2", ascending: false)
NSSortDescriptor(key: "key1", ascending: false),
NSSortDescriptor(key: "key2", ascending: false)
]
)
)

View File

@@ -173,7 +173,7 @@ class QueryTests: BaseTestDataTestCase {
queryClauses
)
XCTAssertNotNil(value)
XCTAssertEqual(value, ("nil:TestEntity1:1" as NSString).data(using: String.Encoding.utf8.rawValue))
XCTAssertEqual(value as Data?, "nil:TestEntity1:1".data(using: .utf8))
}
do {
@@ -183,7 +183,7 @@ class QueryTests: BaseTestDataTestCase {
queryClauses
)
XCTAssertNotNil(value)
XCTAssertEqual(value, self.dateFormatter.date(from: "2000-01-01T00:00:00Z"))
XCTAssertEqual(value as Date?, self.dateFormatter.date(from: "2000-01-01T00:00:00Z"))
}
do {
@@ -657,7 +657,7 @@ class QueryTests: BaseTestDataTestCase {
queryClauses
)
XCTAssertNotNil(value)
XCTAssertEqual(value, ("nil:TestEntity1:5" as NSString).data(using: String.Encoding.utf8.rawValue))
XCTAssertEqual(value as Data?, "nil:TestEntity1:5".data(using: .utf8))
}
do {
@@ -667,7 +667,7 @@ class QueryTests: BaseTestDataTestCase {
queryClauses
)
XCTAssertNotNil(value)
XCTAssertEqual(value, self.dateFormatter.date(from: "2000-01-05T00:00:00Z"))
XCTAssertEqual(value as Date?, self.dateFormatter.date(from: "2000-01-05T00:00:00Z"))
}
do {
@@ -821,7 +821,7 @@ class QueryTests: BaseTestDataTestCase {
queryClauses
)
XCTAssertNotNil(value)
XCTAssertEqual(value, ("nil:TestEntity1:2" as NSString).data(using: String.Encoding.utf8.rawValue))
XCTAssertEqual(value as Data?, "nil:TestEntity1:2".data(using: .utf8))
}
do {
@@ -831,7 +831,7 @@ class QueryTests: BaseTestDataTestCase {
queryClauses
)
XCTAssertNotNil(value)
XCTAssertEqual(value, self.dateFormatter.date(from: "2000-01-02T00:00:00Z"))
XCTAssertEqual(value as Date?, self.dateFormatter.date(from: "2000-01-02T00:00:00Z"))
}
do {
@@ -1170,7 +1170,7 @@ class QueryTests: BaseTestDataTestCase {
]
do {
let values = stack.queryAttributes(
let values: [NSDictionary]? = stack.queryAttributes(
from,
Select(
"testBoolean",
@@ -1203,7 +1203,7 @@ class QueryTests: BaseTestDataTestCase {
"testData": ("nil:TestEntity1:5" as NSString).data(using: String.Encoding.utf8.rawValue)!,
"testDate": self.dateFormatter.date(from: "2000-01-05T00:00:00Z")!
]
]
] as [NSDictionary]
)
}
}
@@ -1221,7 +1221,7 @@ class QueryTests: BaseTestDataTestCase {
let queryClauses: [QueryClause] = []
do {
let values = stack.queryAttributes(
let values: [NSDictionary]? = stack.queryAttributes(
from,
Select(
.sum("testBoolean"),
@@ -1243,19 +1243,19 @@ class QueryTests: BaseTestDataTestCase {
"min(testNumber)": 1,
"average(testDecimal)": 3,
]
]
] as [NSDictionary]
)
}
do {
let values = stack.queryAttributes(
let values: [NSDictionary]? = stack.queryAttributes(
from,
Select(
.sum("testBoolean", As: "testSum"),
.count("testNumber", As: "testCount"),
.maximum("testNumber", As: "testMaximum"),
.minimum("testNumber", As: "testMinimum"),
.average("testDecimal", As: "testAverage")
.sum("testBoolean", as: "testSum"),
.count("testNumber", as: "testCount"),
.maximum("testNumber", as: "testMaximum"),
.minimum("testNumber", as: "testMinimum"),
.average("testDecimal", as: "testAverage")
),
queryClauses
)
@@ -1270,7 +1270,7 @@ class QueryTests: BaseTestDataTestCase {
"testMinimum": 1,
"testAverage": 3,
]
]
] as [NSDictionary]
)
}
}

View File

@@ -42,14 +42,14 @@ final class SectionByTests: XCTestCase {
let sectionBy = SectionBy("key")
XCTAssertEqual(sectionBy.sectionKeyPath, "key")
XCTAssertEqual(sectionBy.sectionIndexTransformer(sectionName: "key"), "key")
XCTAssertEqual(sectionBy.sectionIndexTransformer("key"), "key")
}
do {
let sectionBy = SectionBy("key") { $0.flatMap { "\($0):suffix" } }
XCTAssertEqual(sectionBy.sectionKeyPath, "key")
XCTAssertEqual(sectionBy.sectionIndexTransformer(sectionName: "key"), "key:suffix")
XCTAssertNil(sectionBy.sectionIndexTransformer(sectionName: nil))
XCTAssertEqual(sectionBy.sectionIndexTransformer("key"), "key:suffix")
XCTAssertNil(sectionBy.sectionIndexTransformer(nil))
}
}
}

View File

@@ -84,7 +84,7 @@ final class SelectTests: XCTestCase {
let term = SelectTerm.average("attribute")
XCTAssertEqual(term, SelectTerm.average("attribute"))
XCTAssertNotEqual(term, SelectTerm.average("attribute", As: "alias"))
XCTAssertNotEqual(term, SelectTerm.average("attribute", as: "alias"))
XCTAssertNotEqual(term, SelectTerm.average("attribute2"))
XCTAssertNotEqual(term, SelectTerm.attribute("attribute"))
XCTAssertNotEqual(term, SelectTerm.count("attribute"))
@@ -106,9 +106,9 @@ final class SelectTests: XCTestCase {
}
do {
let term = SelectTerm.average("attribute", As: "alias")
XCTAssertEqual(term, SelectTerm.average("attribute", As: "alias"))
XCTAssertNotEqual(term, SelectTerm.average("attribute", As: "alias2"))
let term = SelectTerm.average("attribute", as: "alias")
XCTAssertEqual(term, SelectTerm.average("attribute", as: "alias"))
XCTAssertNotEqual(term, SelectTerm.average("attribute", as: "alias2"))
XCTAssertNotEqual(term, SelectTerm.average("attribute2"))
XCTAssertNotEqual(term, SelectTerm.attribute("attribute"))
XCTAssertNotEqual(term, SelectTerm.count("attribute"))
@@ -137,7 +137,7 @@ final class SelectTests: XCTestCase {
let term = SelectTerm.count("attribute")
XCTAssertEqual(term, SelectTerm.count("attribute"))
XCTAssertNotEqual(term, SelectTerm.count("attribute", As: "alias"))
XCTAssertNotEqual(term, SelectTerm.count("attribute", as: "alias"))
XCTAssertNotEqual(term, SelectTerm.count("attribute2"))
XCTAssertNotEqual(term, SelectTerm.attribute("attribute"))
XCTAssertNotEqual(term, SelectTerm.average("attribute"))
@@ -159,9 +159,9 @@ final class SelectTests: XCTestCase {
}
do {
let term = SelectTerm.count("attribute", As: "alias")
XCTAssertEqual(term, SelectTerm.count("attribute", As: "alias"))
XCTAssertNotEqual(term, SelectTerm.count("attribute", As: "alias2"))
let term = SelectTerm.count("attribute", as: "alias")
XCTAssertEqual(term, SelectTerm.count("attribute", as: "alias"))
XCTAssertNotEqual(term, SelectTerm.count("attribute", as: "alias2"))
XCTAssertNotEqual(term, SelectTerm.count("attribute2"))
XCTAssertNotEqual(term, SelectTerm.attribute("attribute"))
XCTAssertNotEqual(term, SelectTerm.average("attribute"))
@@ -190,7 +190,7 @@ final class SelectTests: XCTestCase {
let term = SelectTerm.maximum("attribute")
XCTAssertEqual(term, SelectTerm.maximum("attribute"))
XCTAssertNotEqual(term, SelectTerm.maximum("attribute", As: "alias"))
XCTAssertNotEqual(term, SelectTerm.maximum("attribute", as: "alias"))
XCTAssertNotEqual(term, SelectTerm.maximum("attribute2"))
XCTAssertNotEqual(term, SelectTerm.attribute("attribute"))
XCTAssertNotEqual(term, SelectTerm.average("attribute"))
@@ -212,9 +212,9 @@ final class SelectTests: XCTestCase {
}
do {
let term = SelectTerm.maximum("attribute", As: "alias")
XCTAssertEqual(term, SelectTerm.maximum("attribute", As: "alias"))
XCTAssertNotEqual(term, SelectTerm.maximum("attribute", As: "alias2"))
let term = SelectTerm.maximum("attribute", as: "alias")
XCTAssertEqual(term, SelectTerm.maximum("attribute", as: "alias"))
XCTAssertNotEqual(term, SelectTerm.maximum("attribute", as: "alias2"))
XCTAssertNotEqual(term, SelectTerm.maximum("attribute2"))
XCTAssertNotEqual(term, SelectTerm.attribute("attribute"))
XCTAssertNotEqual(term, SelectTerm.average("attribute"))
@@ -243,7 +243,7 @@ final class SelectTests: XCTestCase {
let term = SelectTerm.minimum("attribute")
XCTAssertEqual(term, SelectTerm.minimum("attribute"))
XCTAssertNotEqual(term, SelectTerm.minimum("attribute", As: "alias"))
XCTAssertNotEqual(term, SelectTerm.minimum("attribute", as: "alias"))
XCTAssertNotEqual(term, SelectTerm.minimum("attribute2"))
XCTAssertNotEqual(term, SelectTerm.attribute("attribute"))
XCTAssertNotEqual(term, SelectTerm.average("attribute"))
@@ -265,9 +265,9 @@ final class SelectTests: XCTestCase {
}
do {
let term = SelectTerm.minimum("attribute", As: "alias")
XCTAssertEqual(term, SelectTerm.minimum("attribute", As: "alias"))
XCTAssertNotEqual(term, SelectTerm.minimum("attribute", As: "alias2"))
let term = SelectTerm.minimum("attribute", as: "alias")
XCTAssertEqual(term, SelectTerm.minimum("attribute", as: "alias"))
XCTAssertNotEqual(term, SelectTerm.minimum("attribute", as: "alias2"))
XCTAssertNotEqual(term, SelectTerm.minimum("attribute2"))
XCTAssertNotEqual(term, SelectTerm.attribute("attribute"))
XCTAssertNotEqual(term, SelectTerm.average("attribute"))
@@ -296,7 +296,7 @@ final class SelectTests: XCTestCase {
let term = SelectTerm.sum("attribute")
XCTAssertEqual(term, SelectTerm.sum("attribute"))
XCTAssertNotEqual(term, SelectTerm.sum("attribute", As: "alias"))
XCTAssertNotEqual(term, SelectTerm.sum("attribute", as: "alias"))
XCTAssertNotEqual(term, SelectTerm.sum("attribute2"))
XCTAssertNotEqual(term, SelectTerm.attribute("attribute"))
XCTAssertNotEqual(term, SelectTerm.average("attribute"))
@@ -318,9 +318,9 @@ final class SelectTests: XCTestCase {
}
do {
let term = SelectTerm.sum("attribute", As: "alias")
XCTAssertEqual(term, SelectTerm.sum("attribute", As: "alias"))
XCTAssertNotEqual(term, SelectTerm.sum("attribute", As: "alias2"))
let term = SelectTerm.sum("attribute", as: "alias")
XCTAssertEqual(term, SelectTerm.sum("attribute", as: "alias"))
XCTAssertNotEqual(term, SelectTerm.sum("attribute", as: "alias2"))
XCTAssertNotEqual(term, SelectTerm.sum("attribute2"))
XCTAssertNotEqual(term, SelectTerm.attribute("attribute"))
XCTAssertNotEqual(term, SelectTerm.average("attribute"))
@@ -349,7 +349,7 @@ final class SelectTests: XCTestCase {
let term = SelectTerm.objectID()
XCTAssertEqual(term, SelectTerm.objectID())
XCTAssertNotEqual(term, SelectTerm.objectID(As: "alias"))
XCTAssertNotEqual(term, SelectTerm.objectID(as: "alias"))
XCTAssertNotEqual(term, SelectTerm.attribute("attribute"))
XCTAssertNotEqual(term, SelectTerm.average("attribute"))
XCTAssertNotEqual(term, SelectTerm.count("attribute"))
@@ -368,9 +368,9 @@ final class SelectTests: XCTestCase {
}
do {
let term = SelectTerm.objectID(As: "alias")
XCTAssertEqual(term, SelectTerm.objectID(As: "alias"))
XCTAssertNotEqual(term, SelectTerm.objectID(As: "alias2"))
let term = SelectTerm.objectID(as: "alias")
XCTAssertEqual(term, SelectTerm.objectID(as: "alias"))
XCTAssertNotEqual(term, SelectTerm.objectID(as: "alias2"))
XCTAssertNotEqual(term, SelectTerm.objectID())
XCTAssertNotEqual(term, SelectTerm.attribute("attribute"))
XCTAssertNotEqual(term, SelectTerm.average("attribute"))

View File

@@ -36,7 +36,7 @@ class SetupTests: BaseTestCase {
do {
let model = NSManagedObjectModel.mergedModel(from: [Bundle(for: self.dynamicType)])!
let model = NSManagedObjectModel.mergedModel(from: [Bundle(for: type(of: self))])!
let stack = DataStack(model: model, migrationChain: nil)
XCTAssertEqual(stack.coordinator.managedObjectModel, model)
@@ -60,7 +60,7 @@ class SetupTests: BaseTestCase {
DataStack(
modelName: "Model",
bundle: Bundle(for: self.dynamicType),
bundle: Bundle(for: type(of: self)),
migrationChain: migrationChain
)
}
@@ -77,7 +77,7 @@ class SetupTests: BaseTestCase {
let stack = DataStack(
modelName: "Model",
bundle: Bundle(for: self.dynamicType)
bundle: Bundle(for: type(of: self))
)
do {
@@ -132,7 +132,7 @@ class SetupTests: BaseTestCase {
let stack = DataStack(
modelName: "Model",
bundle: Bundle(for: self.dynamicType)
bundle: Bundle(for: type(of: self))
)
do {
@@ -194,7 +194,7 @@ class SetupTests: BaseTestCase {
let stack = DataStack(
modelName: "Model",
bundle: Bundle(for: self.dynamicType)
bundle: Bundle(for: type(of: self))
)
do {

View File

@@ -37,7 +37,7 @@ final class StorageInterfaceTests: XCTestCase {
dynamic func test_ThatDefaultInMemoryStores_ConfigureCorrectly() {
let store = InMemoryStore()
XCTAssertEqual(store.dynamicType.storeType, NSInMemoryStoreType)
XCTAssertEqual(type(of: store).storeType, NSInMemoryStoreType)
XCTAssertNil(store.configuration)
XCTAssertNil(store.storeOptions)
}
@@ -46,7 +46,7 @@ final class StorageInterfaceTests: XCTestCase {
dynamic func test_ThatCustomInMemoryStores_ConfigureCorrectly() {
let store = InMemoryStore(configuration: "config1")
XCTAssertEqual(store.dynamicType.storeType, NSInMemoryStoreType)
XCTAssertEqual(type(of: store).storeType, NSInMemoryStoreType)
XCTAssertEqual(store.configuration, "config1")
XCTAssertNil(store.storeOptions)
}
@@ -61,15 +61,15 @@ final class StorageInterfaceTests: XCTestCase {
#endif
let defaultSystemDirectory = FileManager.default
.urlsForDirectory(systemDirectorySearchPath, inDomains: .userDomainMask).first!
.urls(for: systemDirectorySearchPath, in: .userDomainMask).first!
let defaultRootDirectory = try! defaultSystemDirectory.appendingPathComponent(
let defaultRootDirectory = defaultSystemDirectory.appendingPathComponent(
Bundle.main.bundleIdentifier ?? "com.CoreStore.DataStack",
isDirectory: true
)
let applicationName = (Bundle.main.objectForInfoDictionaryKey("CFBundleName") as? String) ?? "CoreData"
let applicationName = (Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String) ?? "CoreData"
let defaultFileURL = try! defaultRootDirectory
let defaultFileURL = defaultRootDirectory
.appendingPathComponent(applicationName, isDirectory: false)
.appendingPathExtension("sqlite")
@@ -81,9 +81,9 @@ final class StorageInterfaceTests: XCTestCase {
dynamic func test_ThatDefaultSQLiteStores_ConfigureCorrectly() {
let store = SQLiteStore()
XCTAssertEqual(store.dynamicType.storeType, NSSQLiteStoreType)
XCTAssertEqual(type(of: store).storeType, NSSQLiteStoreType)
XCTAssertNil(store.configuration)
XCTAssertEqual(store.storeOptions, [NSSQLitePragmasOption: ["journal_mode": "WAL"]] as NSDictionary)
XCTAssertEqual(store.storeOptions as NSDictionary?, [NSSQLitePragmasOption: ["journal_mode": "WAL"]] as NSDictionary)
XCTAssertEqual(store.fileURL, SQLiteStore.defaultFileURL)
XCTAssertEqual(store.mappingModelBundles, Bundle.allBundles)
@@ -93,10 +93,10 @@ final class StorageInterfaceTests: XCTestCase {
@objc
dynamic func test_ThatFileURLSQLiteStores_ConfigureCorrectly() {
let fileURL = try! URL(fileURLWithPath: NSTemporaryDirectory())
let fileURL = URL(fileURLWithPath: NSTemporaryDirectory())
.appendingPathComponent(UUID().uuidString, isDirectory: false)
.appendingPathExtension("db")
let bundles = [Bundle(for: self.dynamicType)]
let bundles = [Bundle(for: type(of: self))]
let store = SQLiteStore(
fileURL: fileURL,
@@ -104,9 +104,9 @@ final class StorageInterfaceTests: XCTestCase {
mappingModelBundles: bundles,
localStorageOptions: .recreateStoreOnModelMismatch
)
XCTAssertEqual(store.dynamicType.storeType, NSSQLiteStoreType)
XCTAssertEqual(type(of: store).storeType, NSSQLiteStoreType)
XCTAssertEqual(store.configuration, "config1")
XCTAssertEqual(store.storeOptions, [NSSQLitePragmasOption: ["journal_mode": "WAL"]] as NSDictionary)
XCTAssertEqual(store.storeOptions as NSDictionary?, [NSSQLitePragmasOption: ["journal_mode": "WAL"]] as NSDictionary)
XCTAssertEqual(store.fileURL, fileURL)
XCTAssertEqual(store.mappingModelBundles, bundles)
@@ -117,7 +117,7 @@ final class StorageInterfaceTests: XCTestCase {
dynamic func test_ThatFileNameSQLiteStores_ConfigureCorrectly() {
let fileName = UUID().uuidString + ".db"
let bundles = [Bundle(for: self.dynamicType)]
let bundles = [Bundle(for: type(of: self))]
let store = SQLiteStore(
fileName: fileName,
@@ -125,11 +125,11 @@ final class StorageInterfaceTests: XCTestCase {
mappingModelBundles: bundles,
localStorageOptions: .recreateStoreOnModelMismatch
)
XCTAssertEqual(store.dynamicType.storeType, NSSQLiteStoreType)
XCTAssertEqual(type(of: store).storeType, NSSQLiteStoreType)
XCTAssertEqual(store.configuration, "config1")
XCTAssertEqual(store.storeOptions, [NSSQLitePragmasOption: ["journal_mode": "WAL"]] as NSDictionary)
XCTAssertEqual(store.storeOptions as NSDictionary?, [NSSQLitePragmasOption: ["journal_mode": "WAL"]] as NSDictionary)
XCTAssertEqual(try! store.fileURL.deletingLastPathComponent(), SQLiteStore.defaultRootDirectory)
XCTAssertEqual(store.fileURL.deletingLastPathComponent(), SQLiteStore.defaultRootDirectory)
XCTAssertEqual(store.fileURL.lastPathComponent, fileName)
XCTAssertEqual(store.mappingModelBundles, bundles)
XCTAssertEqual(store.localStorageOptions, [.recreateStoreOnModelMismatch])
@@ -144,12 +144,11 @@ final class StorageInterfaceTests: XCTestCase {
let systemDirectorySearchPath = FileManager.SearchPathDirectory.applicationSupportDirectory
#endif
let legacyDefaultRootDirectory = FileManager.default.urlsForDirectory(
systemDirectorySearchPath,
inDomains: .userDomainMask
).first!
let legacyDefaultRootDirectory = FileManager.default.urls(
for: systemDirectorySearchPath,
in: .userDomainMask).first!
let legacyDefaultFileURL = try! legacyDefaultRootDirectory
let legacyDefaultFileURL = legacyDefaultRootDirectory
.appendingPathComponent(DataStack.applicationName, isDirectory: false)
.appendingPathExtension("sqlite")
@@ -161,9 +160,9 @@ final class StorageInterfaceTests: XCTestCase {
dynamic func test_ThatDefaultLegacySQLiteStores_ConfigureCorrectly() {
let store = LegacySQLiteStore()
XCTAssertEqual(store.dynamicType.storeType, NSSQLiteStoreType)
XCTAssertEqual(type(of: store).storeType, NSSQLiteStoreType)
XCTAssertNil(store.configuration)
XCTAssertEqual(store.storeOptions, [NSSQLitePragmasOption: ["journal_mode": "WAL"]] as NSDictionary)
XCTAssertEqual(store.storeOptions as NSDictionary?, [NSSQLitePragmasOption: ["journal_mode": "WAL"]] as NSDictionary)
XCTAssertEqual(store.fileURL, LegacySQLiteStore.defaultFileURL)
XCTAssertEqual(store.mappingModelBundles, Bundle.allBundles)
@@ -173,10 +172,10 @@ final class StorageInterfaceTests: XCTestCase {
@objc
dynamic func test_ThatFileURLLegacySQLiteStores_ConfigureCorrectly() {
let fileURL = try! URL(fileURLWithPath: NSTemporaryDirectory())
let fileURL = URL(fileURLWithPath: NSTemporaryDirectory())
.appendingPathComponent(UUID().uuidString, isDirectory: false)
.appendingPathExtension("db")
let bundles = [Bundle(for: self.dynamicType)]
let bundles = [Bundle(for: type(of: self))]
let store = LegacySQLiteStore(
fileURL: fileURL,
@@ -184,9 +183,9 @@ final class StorageInterfaceTests: XCTestCase {
mappingModelBundles: bundles,
localStorageOptions: .recreateStoreOnModelMismatch
)
XCTAssertEqual(store.dynamicType.storeType, NSSQLiteStoreType)
XCTAssertEqual(type(of: store).storeType, NSSQLiteStoreType)
XCTAssertEqual(store.configuration, "config1")
XCTAssertEqual(store.storeOptions, [NSSQLitePragmasOption: ["journal_mode": "WAL"]] as NSDictionary)
XCTAssertEqual(store.storeOptions as NSDictionary?, [NSSQLitePragmasOption: ["journal_mode": "WAL"]] as NSDictionary)
XCTAssertEqual(store.fileURL, fileURL)
XCTAssertEqual(store.mappingModelBundles, bundles)
@@ -197,7 +196,7 @@ final class StorageInterfaceTests: XCTestCase {
dynamic func test_ThatFileNameLegacySQLiteStores_ConfigureCorrectly() {
let fileName = UUID().uuidString + ".db"
let bundles = [Bundle(for: self.dynamicType)]
let bundles = [Bundle(for: type(of: self))]
let store = LegacySQLiteStore(
fileName: fileName,
@@ -205,11 +204,11 @@ final class StorageInterfaceTests: XCTestCase {
mappingModelBundles: bundles,
localStorageOptions: .recreateStoreOnModelMismatch
)
XCTAssertEqual(store.dynamicType.storeType, NSSQLiteStoreType)
XCTAssertEqual(type(of: store).storeType, NSSQLiteStoreType)
XCTAssertEqual(store.configuration, "config1")
XCTAssertEqual(store.storeOptions, [NSSQLitePragmasOption: ["journal_mode": "WAL"]] as NSDictionary)
XCTAssertEqual(store.storeOptions as NSDictionary?, [NSSQLitePragmasOption: ["journal_mode": "WAL"]] as NSDictionary)
XCTAssertEqual(try! store.fileURL.deletingLastPathComponent(), LegacySQLiteStore.defaultRootDirectory)
XCTAssertEqual(store.fileURL.deletingLastPathComponent(), LegacySQLiteStore.defaultRootDirectory)
XCTAssertEqual(store.fileURL.lastPathComponent, fileName)
XCTAssertEqual(store.mappingModelBundles, bundles)
XCTAssertEqual(store.localStorageOptions, [.recreateStoreOnModelMismatch])

View File

@@ -41,7 +41,7 @@ final class TransactionTests: BaseTestCase {
let testDate = Date()
do {
let createExpectation = self.expectation(withDescription: "create")
let createExpectation = self.expectation(description: "create")
stack.beginSynchronous { (transaction) in
let object = transaction.create(Into<TestEntity1>())
@@ -73,7 +73,7 @@ final class TransactionTests: BaseTestCase {
}
do {
let updateExpectation = self.expectation(withDescription: "update")
let updateExpectation = self.expectation(description: "update")
stack.beginSynchronous { (transaction) in
guard let object = transaction.fetchOne(From<TestEntity1>()) else {
@@ -108,7 +108,7 @@ final class TransactionTests: BaseTestCase {
}
do {
let deleteExpectation = self.expectation(withDescription: "delete")
let deleteExpectation = self.expectation(description: "delete")
stack.beginSynchronous { (transaction) in
let object = transaction.fetchOne(From<TestEntity1>())
@@ -142,7 +142,7 @@ final class TransactionTests: BaseTestCase {
let testDate = Date()
do {
let createExpectation = self.expectation(withDescription: "create")
let createExpectation = self.expectation(description: "create")
stack.beginSynchronous { (transaction) in
let object = transaction.create(Into<TestEntity1>("Config1"))
@@ -175,7 +175,7 @@ final class TransactionTests: BaseTestCase {
}
do {
let updateExpectation = self.expectation(withDescription: "update")
let updateExpectation = self.expectation(description: "update")
stack.beginSynchronous { (transaction) in
guard let object = transaction.fetchOne(From<TestEntity1>("Config1")) else {
@@ -211,7 +211,7 @@ final class TransactionTests: BaseTestCase {
}
do {
let deleteExpectation = self.expectation(withDescription: "delete")
let deleteExpectation = self.expectation(description: "delete")
stack.beginSynchronous { (transaction) in
let object = transaction.fetchOne(From<TestEntity1>("Config1"))
@@ -242,7 +242,7 @@ final class TransactionTests: BaseTestCase {
do {
let createDiscardExpectation = self.expectation(withDescription: "create-discard")
let createDiscardExpectation = self.expectation(description: "create-discard")
let loggerExpectations = self.prepareLoggerExpectations([.logWarning])
stack.beginSynchronous { (transaction) in
@@ -265,7 +265,7 @@ final class TransactionTests: BaseTestCase {
let testDate = Date()
do {
let createExpectation = self.expectation(withDescription: "create")
let createExpectation = self.expectation(description: "create")
stack.beginSynchronous { (transaction) in
let object = transaction.create(Into<TestEntity1>())
@@ -287,7 +287,7 @@ final class TransactionTests: BaseTestCase {
}
do {
let updateDiscardExpectation = self.expectation(withDescription: "update-discard")
let updateDiscardExpectation = self.expectation(description: "update-discard")
let loggerExpectations = self.prepareLoggerExpectations([.logWarning])
stack.beginSynchronous { (transaction) in
@@ -316,7 +316,7 @@ final class TransactionTests: BaseTestCase {
}
do {
let deleteDiscardExpectation = self.expectation(withDescription: "delete-discard")
let deleteDiscardExpectation = self.expectation(description: "delete-discard")
let loggerExpectations = self.prepareLoggerExpectations([.logWarning])
stack.beginSynchronous { (transaction) in
@@ -352,7 +352,7 @@ final class TransactionTests: BaseTestCase {
let testDate = Date()
do {
let createExpectation = self.expectation(withDescription: "create")
let createExpectation = self.expectation(description: "create")
stack.beginAsynchronous { (transaction) in
let object = transaction.create(Into<TestEntity1>())
@@ -386,7 +386,7 @@ final class TransactionTests: BaseTestCase {
}
do {
let updateExpectation = self.expectation(withDescription: "update")
let updateExpectation = self.expectation(description: "update")
stack.beginAsynchronous { (transaction) in
guard let object = transaction.fetchOne(From<TestEntity1>()) else {
@@ -423,7 +423,7 @@ final class TransactionTests: BaseTestCase {
}
do {
let deleteExpectation = self.expectation(withDescription: "delete")
let deleteExpectation = self.expectation(description: "delete")
stack.beginAsynchronous { (transaction) in
let object = transaction.fetchOne(From<TestEntity1>())
@@ -460,7 +460,7 @@ final class TransactionTests: BaseTestCase {
let testDate = Date()
do {
let createExpectation = self.expectation(withDescription: "create")
let createExpectation = self.expectation(description: "create")
stack.beginAsynchronous { (transaction) in
let object = transaction.create(Into<TestEntity1>("Config1"))
@@ -495,7 +495,7 @@ final class TransactionTests: BaseTestCase {
}
do {
let updateExpectation = self.expectation(withDescription: "update")
let updateExpectation = self.expectation(description: "update")
stack.beginAsynchronous { (transaction) in
guard let object = transaction.fetchOne(From<TestEntity1>("Config1")) else {
@@ -533,7 +533,7 @@ final class TransactionTests: BaseTestCase {
}
do {
let deleteExpectation = self.expectation(withDescription: "delete")
let deleteExpectation = self.expectation(description: "delete")
stack.beginAsynchronous { (transaction) in
let object = transaction.fetchOne(From<TestEntity1>("Config1"))
@@ -568,7 +568,7 @@ final class TransactionTests: BaseTestCase {
do {
let createDiscardExpectation = self.expectation(withDescription: "create-discard")
let createDiscardExpectation = self.expectation(description: "create-discard")
let loggerExpectations = self.prepareLoggerExpectations([.logWarning])
stack.beginAsynchronous { (transaction) in
@@ -585,7 +585,7 @@ final class TransactionTests: BaseTestCase {
let testDate = Date()
do {
let createExpectation = self.expectation(withDescription: "create")
let createExpectation = self.expectation(description: "create")
stack.beginAsynchronous { (transaction) in
XCTAssertEqual(transaction.fetchCount(From<TestEntity1>()), 0)
@@ -612,7 +612,7 @@ final class TransactionTests: BaseTestCase {
}
do {
let updateDiscardExpectation = self.expectation(withDescription: "update-discard")
let updateDiscardExpectation = self.expectation(description: "update-discard")
let loggerExpectations = self.prepareLoggerExpectations([.logWarning])
stack.beginAsynchronous { (transaction) in
@@ -631,7 +631,7 @@ final class TransactionTests: BaseTestCase {
}
do {
let deleteDiscardExpectation = self.expectation(withDescription: "delete-discard")
let deleteDiscardExpectation = self.expectation(description: "delete-discard")
let loggerExpectations = self.prepareLoggerExpectations([.logWarning])
stack.beginAsynchronous { (transaction) in

View File

@@ -36,7 +36,7 @@ final class TweakTests: XCTestCase {
@objc
dynamic func test_ThatTweakClauses_ApplyToFetchRequestsCorrectly() {
let predicate = Predicate(format: "%K == %@", "key", "value")
let predicate = NSPredicate(format: "%K == %@", "key", "value")
let tweak = Tweak {
$0.fetchOffset = 100

View File

@@ -41,18 +41,18 @@ final class WhereTests: XCTestCase {
let whereClause = Where()
XCTAssertEqual(whereClause, Where(true))
XCTAssertNotEqual(whereClause, Where(false))
XCTAssertEqual(whereClause.predicate, Predicate(value: true))
XCTAssertEqual(whereClause.predicate, NSPredicate(value: true))
}
do {
let whereClause = Where(true)
XCTAssertEqual(whereClause, Where())
XCTAssertNotEqual(whereClause, Where(false))
XCTAssertEqual(whereClause.predicate, Predicate(value: true))
XCTAssertEqual(whereClause.predicate, NSPredicate(value: true))
}
do {
let predicate = Predicate(format: "%K == %@", "key", "value")
let predicate = NSPredicate(format: "%K == %@", "key", "value")
let whereClause = Where(predicate)
XCTAssertEqual(whereClause, Where(predicate))
XCTAssertEqual(whereClause.predicate, predicate)
@@ -60,28 +60,28 @@ final class WhereTests: XCTestCase {
do {
let whereClause = Where("%K == %@", "key", "value")
let predicate = Predicate(format: "%K == %@", "key", "value")
let predicate = NSPredicate(format: "%K == %@", "key", "value")
XCTAssertEqual(whereClause, Where(predicate))
XCTAssertEqual(whereClause.predicate, predicate)
}
do {
let whereClause = Where("%K == %@", argumentArray: ["key", "value"])
let predicate = Predicate(format: "%K == %@", "key", "value")
let predicate = NSPredicate(format: "%K == %@", "key", "value")
XCTAssertEqual(whereClause, Where(predicate))
XCTAssertEqual(whereClause.predicate, predicate)
}
do {
let whereClause = Where("key", isEqualTo: "value")
let predicate = Predicate(format: "%K == %@", "key", "value")
let predicate = NSPredicate(format: "%K == %@", "key", "value")
XCTAssertEqual(whereClause, Where(predicate))
XCTAssertEqual(whereClause.predicate, predicate)
}
do {
let whereClause = Where("key", isMemberOf: ["value1", "value2", "value3"])
let predicate = Predicate(format: "%K IN %@", "key", ["value1", "value2", "value3"])
let predicate = NSPredicate(format: "%K IN %@", "key", ["value1", "value2", "value3"])
XCTAssertEqual(whereClause, Where(predicate))
XCTAssertEqual(whereClause.predicate, predicate)
}
@@ -97,7 +97,7 @@ final class WhereTests: XCTestCase {
do {
let notWhere = !whereClause1
let notPredicate = CompoundPredicate(
let notPredicate = NSCompoundPredicate(
type: .not,
subpredicates: [whereClause1.predicate]
)
@@ -107,10 +107,10 @@ final class WhereTests: XCTestCase {
do {
let andWhere = whereClause1 && whereClause2 && whereClause3
let andPredicate = CompoundPredicate(
let andPredicate = NSCompoundPredicate(
type: .and,
subpredicates: [
CompoundPredicate(
NSCompoundPredicate(
type: .and,
subpredicates: [whereClause1.predicate, whereClause2.predicate]
),
@@ -123,10 +123,10 @@ final class WhereTests: XCTestCase {
do {
let orWhere = whereClause1 || whereClause2 || whereClause3
let orPredicate = CompoundPredicate(
let orPredicate = NSCompoundPredicate(
type: .or,
subpredicates: [
CompoundPredicate(
NSCompoundPredicate(
type: .or,
subpredicates: [whereClause1.predicate, whereClause2.predicate]
),