@@ -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