@@ -16,6 +16,42 @@ final class StagedMigrationTest: XCTestCase {
1616 try await super. tearDown ( )
1717 }
1818
19+ func testStackModelChecks( ) throws {
20+ let oldName = " oldSchoolStore "
21+ let oldStack = try TestingStacks . oldModelStack ( uniqueName: oldName)
22+
23+ let oldStackUrl = try XCTUnwrap ( oldStack. container. persistentStoreDescriptions. first? . url)
24+ let oldStackVersions = ModelVersions . versionsForStore ( type: . sqlite, at: oldStackUrl)
25+ XCTAssertEqual ( oldStackVersions, [ . v1] )
26+
27+ let oldStackVersions2 = ModelVersions . versionsForStore ( coordinator: oldStack. container. persistentStoreCoordinator)
28+ XCTAssertEqual ( oldStackVersions2, [ . v1] )
29+
30+ let oldStackModel = oldStack. container. managedObjectModel
31+ XCTAssertEqual ( oldStackModel. versionChecksum, ModelVersions . v1. versionChecksum)
32+
33+ let oldCoordinatorModel = oldStack. container. persistentStoreCoordinator. managedObjectModel
34+ XCTAssertEqual ( oldCoordinatorModel, ModelVersions . v1. modelVersion)
35+ XCTAssertNotEqual ( oldCoordinatorModel, ModelVersions . v3. modelVersion)
36+
37+ let newName = " newStore "
38+ let newStack = try TestingStacks . temporaryStack ( uniqueName: newName)
39+
40+ let newStackUrl = try XCTUnwrap ( newStack. container. persistentStoreDescriptions. first? . url)
41+ let newStackVersions = ModelVersions . versionsForStore ( type: . sqlite, at: newStackUrl)
42+ XCTAssertEqual ( newStackVersions, [ . v4] )
43+
44+ let newStackVersions2 = ModelVersions . versionsForStore ( coordinator: newStack. container. persistentStoreCoordinator)
45+ XCTAssertEqual ( newStackVersions2, [ . v4] )
46+
47+ let newStackModel = newStack. container. managedObjectModel
48+ XCTAssertEqual ( newStackModel. versionChecksum, ModelVersions . v4. versionChecksum)
49+
50+ let newCoordinatorModel = newStack. container. persistentStoreCoordinator. managedObjectModel
51+ XCTAssertEqual ( newCoordinatorModel, ModelVersions . v4. modelVersion)
52+ XCTAssertNotEqual ( newCoordinatorModel, ModelVersions . v2. modelVersion)
53+ }
54+
1955 func testStackUsingOldModel( ) throws {
2056 let name = " oldSchoolStore "
2157 let stack = try TestingStacks . oldModelStack ( uniqueName: name)
0 commit comments