support transformable values

This commit is contained in:
John Estropia
2017-04-21 19:35:29 +09:00
parent 274a54451a
commit e6aa72fb5f
13 changed files with 495 additions and 117 deletions

View File

@@ -45,7 +45,13 @@ class Dog: Animal {
class Person: CoreStoreObject {
let name = Value.Required<String>("name")
let name = Value.Required<String>(
"name",
customGetter: { (`self`, getValue) in
return "Mr. \(getValue())"
}
)
let pet = Relationship.ToOne<Animal>("pet", inverse: { $0.master })
}
@@ -108,6 +114,9 @@ class DynamicModelTests: BaseTestDataTestCase {
let person = transaction.create(Into<Person>())
XCTAssertNil(person.pet.value)
person.name .= "John"
XCTAssertEqual(person.name.value, "Mr. John") // Custom getter
person.pet .= dog
XCTAssertEqual(person.pet.value, dog)
XCTAssertEqual(person.pet.value?.master.value, person)

View File

@@ -213,7 +213,6 @@ class SetupTests: BaseTestDataTestCase {
self.prepareTestDataForStack(stack)
}
XCTAssertTrue(fileManager.fileExists(atPath: sqliteStore.fileURL.path))
XCTAssertTrue(fileManager.fileExists(atPath: sqliteStore.fileURL.path.appending("-wal")))
XCTAssertTrue(fileManager.fileExists(atPath: sqliteStore.fileURL.path.appending("-shm")))
return try NSPersistentStoreCoordinator.metadataForPersistentStore(
@@ -334,7 +333,6 @@ class SetupTests: BaseTestDataTestCase {
self.prepareTestDataForStack(stack)
}
XCTAssertTrue(fileManager.fileExists(atPath: sqliteStore.fileURL.path))
XCTAssertTrue(fileManager.fileExists(atPath: sqliteStore.fileURL.path.appending("-wal")))
XCTAssertTrue(fileManager.fileExists(atPath: sqliteStore.fileURL.path.appending("-shm")))
return try NSPersistentStoreCoordinator.metadataForPersistentStore(