public async Task Can_add_new_entities_to_context_with_key_generation(bool async)
        {
            using (var context = new EarlyLearningCenter())
            {
                var gu1 = new TheGu {
                    ShirtColor = "Red"
                };
                var gu2 = new TheGu {
                    ShirtColor = "Still Red"
                };

                if (async)
                {
                    Assert.Same(gu1, (await context.Gus.AddAsync(gu1)).Entity);
                    Assert.Same(gu2, (await context.Gus.AddAsync(gu2)).Entity);
                }
                else
                {
                    Assert.Same(gu1, context.Gus.Add(gu1).Entity);
                    Assert.Same(gu2, context.Gus.Add(gu2).Entity);
                }

                Assert.NotEqual(default(Guid), gu1.Id);
                Assert.NotEqual(default(Guid), gu2.Id);
                Assert.NotEqual(gu1.Id, gu2.Id);

                var categoryEntry = context.Entry(gu1);
                Assert.Same(gu1, categoryEntry.Entity);
                Assert.Equal(EntityState.Added, categoryEntry.State);

                categoryEntry = context.Entry(gu2);
                Assert.Same(gu2, categoryEntry.Entity);
                Assert.Equal(EntityState.Added, categoryEntry.State);
            }
        }
        private static void TrackEntitiesWithKeyGenerationTest(Func <DbContext, TheGu, TheGu> adder)
        {
            using (var context = new EarlyLearningCenter())
            {
                var gu1 = new TheGu {
                    ShirtColor = "Red"
                };
                var gu2 = new TheGu {
                    ShirtColor = "Still Red"
                };

                Assert.Same(gu1, adder(context, gu1));
                Assert.Same(gu2, adder(context, gu2));
                Assert.NotEqual(default(Guid), gu1.Id);
                Assert.NotEqual(default(Guid), gu2.Id);
                Assert.NotEqual(gu1.Id, gu2.Id);

                var categoryEntry = context.ChangeTracker.Entry(gu1);
                Assert.Same(gu1, categoryEntry.Entity);
                Assert.Equal(EntityState.Added, categoryEntry.State);

                categoryEntry = context.ChangeTracker.Entry(gu2);
                Assert.Same(gu2, categoryEntry.Entity);
                Assert.Equal(EntityState.Added, categoryEntry.State);
            }
        }
Example #3
0
        public async Task Can_add_new_entities_to_context_with_key_generation(bool async)
        {
            using var context = new EarlyLearningCenter();
            var gu1 = new TheGu {
                ShirtColor = "Red"
            };
            var gu2 = new TheGu {
                ShirtColor = "Still Red"
            };

            if (async)
            {
                Assert.Same(gu1, (await context.Gus.AddAsync(gu1)).Entity);
                Assert.Same(gu2, (await context.Gus.AddAsync(gu2)).Entity);
            }
            else
            {
                Assert.Same(gu1, context.Gus.Add(gu1).Entity);
                Assert.Same(gu2, context.Gus.Add(gu2).Entity);
            }

            Assert.NotEqual(default, gu1.Id);
        private static void TrackEntitiesWithKeyGenerationTest(Func<DbContext, TheGu, TheGu> adder)
        {
            using (var context = new EarlyLearningCenter(TestHelpers.Instance.CreateServiceProvider()))
            {
                var gu1 = new TheGu { ShirtColor = "Red" };
                var gu2 = new TheGu { ShirtColor = "Still Red" };

                Assert.Same(gu1, adder(context, gu1));
                Assert.Same(gu2, adder(context, gu2));
                Assert.NotEqual(default(Guid), gu1.Id);
                Assert.NotEqual(default(Guid), gu2.Id);
                Assert.NotEqual(gu1.Id, gu2.Id);

                var categoryEntry = context.Entry(gu1);
                Assert.Same(gu1, categoryEntry.Entity);
                Assert.Equal(EntityState.Added, categoryEntry.State);

                categoryEntry = context.Entry(gu2);
                Assert.Same(gu2, categoryEntry.Entity);
                Assert.Equal(EntityState.Added, categoryEntry.State);
            }
        }