Пример #1
0
        public async Task Entities_can_be_tracked_with_normal_use_of_DbContext_methods_and_have_correct_resultant_state_and_id_shadow_value()
        {
            await using var testDatabase = CosmosTestStore.Create("IdentifierShadowValuePresenceTest");
            using var context            = new IdentifierShadowValuePresenceTestContext(testDatabase);

            var item = new Item {
                Id = 1337
            };
            var entry = context.Attach(item);

            Assert.Equal($"Item|{item.Id}", entry.Property("__id").CurrentValue);
            Assert.Equal(EntityState.Unchanged, entry.State);

            entry.State = EntityState.Detached;
            entry       = context.Update(item = new Item {
                Id = 71
            });

            Assert.Equal($"Item|{item.Id}", entry.Property("__id").CurrentValue);
            Assert.Equal(EntityState.Modified, entry.State);

            entry.State = EntityState.Detached;
            entry       = context.Remove(item = new Item {
                Id = 33
            });

            Assert.Equal($"Item|{item.Id}", entry.Property("__id").CurrentValue);
            Assert.Equal(EntityState.Deleted, entry.State);
        }