public void DetectChanges_is_called_for_all_tracked_entities_and_returns_true_if_any_changes_detected() { var contextServices = TestHelpers.CreateContextServices(BuildModel()); var stateManager = contextServices.GetRequiredService <StateManager>(); var entry1 = stateManager.GetOrCreateEntry(new Category { Id = 77, Name = "Beverages" }); var entry2 = stateManager.GetOrCreateEntry(new Category { Id = 78, Name = "Foods" }); var entry3 = stateManager.GetOrCreateEntry(new Category { Id = 79, Name = "Stuff" }); stateManager.StartTracking(entry1); stateManager.StartTracking(entry2); stateManager.StartTracking(entry3); var changeDetector = new FakeChangeDetector(); Assert.False(changeDetector.DetectChanges(stateManager)); Assert.Equal(new[] { 77, 78, 79 }, changeDetector.Entries.Select(e => ((Category)e.Entity).Id).ToArray()); ((Category)entry2.Entity).Name = "Snacks"; Assert.True(changeDetector.DetectChanges(stateManager)); Assert.Equal(new[] { 77, 78, 79, 77, 78, 79 }, changeDetector.Entries.Select(e => ((Category)e.Entity).Id).ToArray()); }
public void DetectChanges_is_called_for_all_tracked_entities_and_returns_true_if_any_changes_detected() { var model = BuildModel(); var services = new ServiceCollection(); services.AddEntityFramework().AddInMemoryStore(); var config = TestHelpers.CreateContextConfiguration(services.BuildServiceProvider(), model); var stateManager = config.Services.StateManager; var entry1 = stateManager.GetOrCreateEntry(new Category { Id = 77, Name = "Beverages" }); var entry2 = stateManager.GetOrCreateEntry(new Category { Id = 78, Name = "Foods" }); var entry3 = stateManager.GetOrCreateEntry(new Category { Id = 79, Name = "Stuff" }); stateManager.StartTracking(entry1); stateManager.StartTracking(entry2); stateManager.StartTracking(entry3); var changeDetector = new FakeChangeDetector(); Assert.False(changeDetector.DetectChanges(stateManager)); Assert.Equal(new[] { 77, 78, 79 }, changeDetector.Entries.Select(e => ((Category)e.Entity).Id).ToArray()); ((Category)entry2.Entity).Name = "Snacks"; Assert.True(changeDetector.DetectChanges(stateManager)); Assert.Equal(new[] { 77, 78, 79, 77, 78, 79 }, changeDetector.Entries.Select(e => ((Category)e.Entity).Id).ToArray()); }