Example #1
0
    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);
    }
Example #2
0
    public async Task Entities_with_null_PK_can_be_added_with_normal_use_of_DbContext_methods_and_have_id_shadow_value_and_PK_created()
    {
        await using var testDatabase = CosmosTestStore.Create("IdentifierShadowValuePresenceTest");
        using var context            = new IdentifierShadowValuePresenceTestContext(testDatabase);

        var item = new GItem();

        Assert.Null(item.Id);

        var entry = context.Add(item);

        var id = entry.Property("__id").CurrentValue;

        Assert.NotNull(item.Id);
        Assert.NotNull(id);

        Assert.Equal($"GItem|{item.Id}", id);
        Assert.Equal(EntityState.Added, entry.State);
    }