Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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());
        }