@@ -18,84 +18,35 @@ final class CoreDataTests: XCTestCase {
1818
1919 func testCoreData( ) async throws {
2020
21- let model = Model ( entities: [
22- EntityDescription ( entity: Person . self) ,
23- EntityDescription ( entity: Event . self)
24- ] )
21+ let model = Model ( entities: Person . self, Event . self)
2522
2623 let store = NSPersistentContainer (
2724 name: " Test \( UUID ( ) ) " ,
2825 managedObjectModel: NSManagedObjectModel ( model: model)
2926 )
3027
28+ for try await store in store. loadPersistentStores ( ) {
29+ print ( " Loaded store " , store. type, store. url? . absoluteString ?? " " )
30+ }
31+
3132 var person1 = Person (
3233 name: " John Appleseed " ,
3334 age: 22
3435 )
3536
36- // store.insert(person1)
37+ try await store. insert ( person1)
3738
3839 var event1 = Event (
3940 name: " WWDC " ,
40- date: Date ( timeIntervalSinceNow: 60 * 60 * 24 * 10 )
41+ date: Date ( timeIntervalSinceNow: 60 * 60 * 24 * 10 ) ,
42+ people: [ person1. id]
4143 )
4244
43- //store.insert(event1)
44-
45- /*
46- do {
47- let event1 = ModelInstance(
48- entity: "Event",
49- id: "1",
50- attributes: [:],
51- relationships: [:]
52- )
53- store.insert()
54- let event = try store("Event")
55- event.setAttribute(.string("Event 1"), for: "name")
56- event.setAttribute(.date(Date()), for: "date")
57-
58- let person1 = try store.create("Person")
59- person1.setAttribute(.string("Person1"), for: "name")
60-
61- let person2 = try store.create("Person")
62- person2.setAttribute(.string("Person2"), for: "name")
63-
64- person1.setRelationship(.toMany([event]), for: "events")
65- XCTAssertEqual(event.relationship(for: "people"), .toMany([person1]))
66- XCTAssertEqual(person1.relationship(for: "events"), .toMany([event]))
67- XCTAssertEqual(person2.relationship(for: "events"), .null)
68- XCTAssertNotEqual(person2.relationship(for: "events"), .toMany([]))
69-
70- event.setRelationship(.toMany([person1, person2]), for: "people")
71- XCTAssertEqual(event.relationship(for: "people"), .toMany([person1, person2]))
72- XCTAssertEqual(person1.relationship(for: "events"), .toMany([event]))
73- XCTAssertEqual(person2.relationship(for: "events"), .toMany([event]))
74-
75- event.setRelationship(.toMany([]), for: "people")
76- XCTAssertEqual(event.relationship(for: "people"), .toMany([]))
77- XCTAssertEqual(person1.relationship(for: "events"), .toMany([]))
78- XCTAssertEqual(person2.relationship(for: "events"), .toMany([]))
79-
80- event.setRelationship(.toMany([person1]), for: "people")
81- XCTAssertEqual(event.relationship(for: "people"), .toMany([person1]))
82- XCTAssertEqual(person1.relationship(for: "events"), .toMany([event]))
83- XCTAssertEqual(person2.relationship(for: "events"), .toMany([]))
84-
85- event.setRelationship(.toMany([person1, person2]), for: "people")
86- XCTAssertEqual(person1.relationship(for: "events"), .toMany([event]))
87- XCTAssertEqual(person2.relationship(for: "events"), .toMany([event]))
88- store.delete(event)
89-
90- XCTAssert(event.isDeleted)
91- XCTAssertFalse(person1.isDeleted)
92- XCTAssertFalse(person2.isDeleted)
93- XCTAssertEqual(person1.relationship(for: "events"), .toMany([]))
94- XCTAssertEqual(person2.relationship(for: "events"), .toMany([]))
95-
96- XCTAssertEqual(try store.fetch(FetchRequest(entity: "Person")), [person1, person2])
97- XCTAssertEqual(try store.fetch(FetchRequest(entity: "Event")), [event])
98- }*/
45+ try await store. insert ( event1)
46+ person1 = try await store. fetch ( Person . self, for: person1. id) !
47+ XCTAssertEqual ( person1. events, [ event1. id] )
48+ event1 = try await store. fetch ( Event . self, for: event1. id) !
49+ XCTAssertEqual ( event1. people, [ person1. id] )
9950 }
10051}
10152
0 commit comments