Skip to content

Commit 14dca7e

Browse files
committed
Add migration test for Model 79 to 80
1 parent 1348f4c commit 14dca7e

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

Storage/StorageTests/CoreData/MigrationTests.swift

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1552,6 +1552,30 @@ final class MigrationTests: XCTestCase {
15521552
let newViewsCount = try XCTUnwrap(migratedSiteVisitStatsItem.value(forKey: "views") as? Int)
15531553
XCTAssertEqual(newViewsCount, viewsCount)
15541554
}
1555+
1556+
func test_migrating_from_79_to_80_enables_creating_new_SiteSummaryStats_entity() throws {
1557+
// Given
1558+
let sourceContainer = try startPersistentContainer("Model 79")
1559+
let sourceContext = sourceContainer.viewContext
1560+
1561+
try sourceContext.save()
1562+
1563+
// Confidence Check. This entity should not exist in Model 79
1564+
XCTAssertNil(NSEntityDescription.entity(forEntityName: "SiteSummaryStats", in: sourceContext))
1565+
1566+
// When
1567+
let targetContainer = try migrate(sourceContainer, to: "Model 80")
1568+
let targetContext = targetContainer.viewContext
1569+
1570+
// Then
1571+
XCTAssertEqual(try targetContext.count(entityName: "SiteSummaryStats"), 0)
1572+
1573+
let summaryStats = insertSiteSummaryStats(to: targetContext)
1574+
let insertedStats = try XCTUnwrap(targetContext.firstObject(ofType: SiteSummaryStats.self))
1575+
1576+
XCTAssertEqual(try targetContext.count(entityName: "SiteSummaryStats"), 1)
1577+
XCTAssertEqual(insertedStats, summaryStats)
1578+
}
15551579
}
15561580

15571581
// MARK: - Persistent Store Setup and Migrations
@@ -1963,6 +1987,16 @@ private extension MigrationTests {
19631987
])
19641988
}
19651989

1990+
@discardableResult
1991+
func insertSiteSummaryStats(to context: NSManagedObjectContext) -> NSManagedObject {
1992+
context.insert(entityName: "SiteSummaryStats", properties: [
1993+
"date": "2022-12-15",
1994+
"period": "day",
1995+
"visitors": 3,
1996+
"views": 9
1997+
])
1998+
}
1999+
19662000
@discardableResult
19672001
func insertSiteVisitStats(to context: NSManagedObjectContext) -> NSManagedObject {
19682002
context.insert(entityName: "SiteVisitStats", properties: [

0 commit comments

Comments
 (0)