Exemplo n.º 1
0
    public void Set_temporary_values_for_normal_properties()
    {
        using (var context = new DefaultValuesContext())
        {
            var entity = new EntityWithNonIndexers();
            context.Add(entity);

            Assert.Equal(0, entity.ValueProperty);
            Assert.Null(entity.NullableValueProperty);
            Assert.Null(entity.ReferenceValueProperty);

            Assert.True(context.Entry(entity).Property(e => e.ValueProperty).CurrentValue < 0);
            Assert.True(context.Entry(entity).Property(e => e.NullableValueProperty).CurrentValue < 0);
            Assert.NotNull(context.Entry(entity).Property(e => e.ReferenceValueProperty).CurrentValue);

            Assert.True(context.Entry(entity).Property(e => e.ValueProperty).IsTemporary);
            Assert.True(context.Entry(entity).Property(e => e.NullableValueProperty).IsTemporary);
            Assert.True(context.Entry(entity).Property(e => e.ReferenceValueProperty).IsTemporary);

            entity.ValueProperty          = 77;
            entity.NullableValueProperty  = 77;
            entity.ReferenceValueProperty = "Seventy Seven";

            context.ChangeTracker.DetectChanges();

            Assert.Equal(77, entity.ValueProperty);
            Assert.Equal(77, entity.NullableValueProperty);
            Assert.Equal("Seventy Seven", entity.ReferenceValueProperty);

            Assert.Equal(77, context.Entry(entity).Property(e => e.ValueProperty).CurrentValue);
            Assert.Equal(77, context.Entry(entity).Property(e => e.NullableValueProperty).CurrentValue);
            Assert.Equal("Seventy Seven", context.Entry(entity).Property(e => e.ReferenceValueProperty).CurrentValue);

            Assert.False(context.Entry(entity).Property(e => e.ValueProperty).IsTemporary);
            Assert.False(context.Entry(entity).Property(e => e.NullableValueProperty).IsTemporary);
            Assert.False(context.Entry(entity).Property(e => e.ReferenceValueProperty).IsTemporary);

            context.Entry(entity).Property(e => e.ValueProperty).IsTemporary          = true;
            context.Entry(entity).Property(e => e.NullableValueProperty).IsTemporary  = true;
            context.Entry(entity).Property(e => e.ReferenceValueProperty).IsTemporary = true;

            Assert.Equal(77, entity.ValueProperty);
            Assert.Equal(77, entity.NullableValueProperty);
            Assert.Equal("Seventy Seven", entity.ReferenceValueProperty);

            Assert.Equal(77, context.Entry(entity).Property(e => e.ValueProperty).CurrentValue);
            Assert.Equal(77, context.Entry(entity).Property(e => e.NullableValueProperty).CurrentValue);
            Assert.Equal("Seventy Seven", context.Entry(entity).Property(e => e.ReferenceValueProperty).CurrentValue);

            Assert.True(context.Entry(entity).Property(e => e.ValueProperty).IsTemporary);
            Assert.True(context.Entry(entity).Property(e => e.NullableValueProperty).IsTemporary);
            Assert.True(context.Entry(entity).Property(e => e.ReferenceValueProperty).IsTemporary);
        }
    }
Exemplo n.º 2
0
    public void Set_temporary_values_for_indexer_properties()
    {
        using (var context = new DefaultValuesContext())
        {
            var entity1 = new EntityWithIndexerValueProperty();
            var entity2 = new EntityWithIndexerNullableValueProperty();
            var entity3 = new EntityWithIndexerReferenceProperty();

            context.AddRange(entity1, entity2, entity3);

            Assert.Equal(0, entity1["ValueProperty"]);
            Assert.Null(entity2["NullableValueProperty"]);
            Assert.Null(entity3["ReferenceValueProperty"]);

            Assert.True(context.Entry(entity1).Property <int>("ValueProperty").CurrentValue < 0);
            Assert.True(context.Entry(entity2).Property <int?>("NullableValueProperty").CurrentValue < 0);
            Assert.NotNull(context.Entry(entity3).Property <string>("ReferenceValueProperty").CurrentValue);

            Assert.True(context.Entry(entity1).Property <int>("ValueProperty").IsTemporary);
            Assert.True(context.Entry(entity2).Property <int?>("NullableValueProperty").IsTemporary);
            Assert.True(context.Entry(entity3).Property <string>("ReferenceValueProperty").IsTemporary);

            entity1["ValueProperty"]          = 77;
            entity2["NullableValueProperty"]  = 77;
            entity3["ReferenceValueProperty"] = "Seventy Seven";

            Assert.Equal(77, entity1["ValueProperty"]);
            Assert.Equal(77, entity2["NullableValueProperty"]);
            Assert.Equal("Seventy Seven", entity3["ReferenceValueProperty"]);

            Assert.Equal(77, context.Entry(entity1).Property <int>("ValueProperty").CurrentValue);
            Assert.Equal(77, context.Entry(entity2).Property <int?>("NullableValueProperty").CurrentValue);
            Assert.Equal("Seventy Seven", context.Entry(entity3).Property <string>("ReferenceValueProperty").CurrentValue);

            Assert.False(context.Entry(entity1).Property <int>("ValueProperty").IsTemporary);
            Assert.False(context.Entry(entity2).Property <int?>("NullableValueProperty").IsTemporary);
            Assert.False(context.Entry(entity3).Property <string>("ReferenceValueProperty").IsTemporary);

            entity1["ValueProperty"]          = 78;
            entity2["NullableValueProperty"]  = 78;
            entity3["ReferenceValueProperty"] = "Seventy Eight";

            Assert.Equal(78, entity1["ValueProperty"]);
            Assert.Equal(78, entity2["NullableValueProperty"]);
            Assert.Equal("Seventy Eight", entity3["ReferenceValueProperty"]);

            Assert.Equal(78, context.Entry(entity1).Property <int>("ValueProperty").CurrentValue);
            Assert.Equal(78, context.Entry(entity2).Property <int?>("NullableValueProperty").CurrentValue);
            Assert.Equal("Seventy Eight", context.Entry(entity3).Property <string>("ReferenceValueProperty").CurrentValue);

            Assert.False(context.Entry(entity1).Property <int>("ValueProperty").IsTemporary);
            Assert.False(context.Entry(entity2).Property <int?>("NullableValueProperty").IsTemporary);
            Assert.False(context.Entry(entity3).Property <string>("ReferenceValueProperty").IsTemporary);

            context.Entry(entity1).Property <int>("ValueProperty").IsTemporary             = true;
            context.Entry(entity2).Property <int?>("NullableValueProperty").IsTemporary    = true;
            context.Entry(entity3).Property <string>("ReferenceValueProperty").IsTemporary = true;

            Assert.Equal(78, entity1["ValueProperty"]);
            Assert.Equal(78, entity2["NullableValueProperty"]);
            Assert.Equal("Seventy Eight", entity3["ReferenceValueProperty"]);

            Assert.Equal(78, context.Entry(entity1).Property <int>("ValueProperty").CurrentValue);
            Assert.Equal(78, context.Entry(entity2).Property <int?>("NullableValueProperty").CurrentValue);
            Assert.Equal("Seventy Eight", context.Entry(entity3).Property <string>("ReferenceValueProperty").CurrentValue);

            Assert.True(context.Entry(entity1).Property <int>("ValueProperty").IsTemporary);
            Assert.True(context.Entry(entity2).Property <int?>("NullableValueProperty").IsTemporary);
            Assert.True(context.Entry(entity3).Property <string>("ReferenceValueProperty").IsTemporary);
        }
    }
Exemplo n.º 3
0
    public void Set_temporary_values_for_indexer_properties_types_as_object()
    {
        using (var context = new DefaultValuesContext())
        {
            var entity = new EntityWithIndexersAsObject();

            context.Add(entity);

            Assert.Null(entity["ValueProperty"]);
            Assert.Null(entity["NullableValueProperty"]);
            Assert.Null(entity["ReferenceValueProperty"]);

            Assert.True(context.Entry(entity).Property <int>("ValueProperty").CurrentValue < 0);
            Assert.True(context.Entry(entity).Property <int?>("NullableValueProperty").CurrentValue < 0);
            Assert.NotNull(context.Entry(entity).Property <string>("ReferenceValueProperty").CurrentValue);

            Assert.True(context.Entry(entity).Property <int>("ValueProperty").IsTemporary);
            Assert.True(context.Entry(entity).Property <int?>("NullableValueProperty").IsTemporary);
            Assert.True(context.Entry(entity).Property <string>("ReferenceValueProperty").IsTemporary);

            entity["ValueProperty"]          = 77;
            entity["NullableValueProperty"]  = 77;
            entity["ReferenceValueProperty"] = "Seventy Seven";

            Assert.Equal(77, entity["ValueProperty"]);
            Assert.Equal(77, entity["NullableValueProperty"]);
            Assert.Equal("Seventy Seven", entity["ReferenceValueProperty"]);

            Assert.Equal(77, context.Entry(entity).Property <int>("ValueProperty").CurrentValue);
            Assert.Equal(77, context.Entry(entity).Property <int?>("NullableValueProperty").CurrentValue);
            Assert.Equal("Seventy Seven", context.Entry(entity).Property <string>("ReferenceValueProperty").CurrentValue);

            Assert.False(context.Entry(entity).Property <int>("ValueProperty").IsTemporary);
            Assert.False(context.Entry(entity).Property <int?>("NullableValueProperty").IsTemporary);
            Assert.False(context.Entry(entity).Property <string>("ReferenceValueProperty").IsTemporary);

            entity["ValueProperty"]          = 78;
            entity["NullableValueProperty"]  = 78;
            entity["ReferenceValueProperty"] = "Seventy Eight";

            Assert.Equal(78, entity["ValueProperty"]);
            Assert.Equal(78, entity["NullableValueProperty"]);
            Assert.Equal("Seventy Eight", entity["ReferenceValueProperty"]);

            Assert.Equal(78, context.Entry(entity).Property <int>("ValueProperty").CurrentValue);
            Assert.Equal(78, context.Entry(entity).Property <int?>("NullableValueProperty").CurrentValue);
            Assert.Equal("Seventy Eight", context.Entry(entity).Property <string>("ReferenceValueProperty").CurrentValue);

            Assert.False(context.Entry(entity).Property <int>("ValueProperty").IsTemporary);
            Assert.False(context.Entry(entity).Property <int?>("NullableValueProperty").IsTemporary);
            Assert.False(context.Entry(entity).Property <string>("ReferenceValueProperty").IsTemporary);

            context.Entry(entity).Property <int>("ValueProperty").IsTemporary             = true;
            context.Entry(entity).Property <int?>("NullableValueProperty").IsTemporary    = true;
            context.Entry(entity).Property <string>("ReferenceValueProperty").IsTemporary = true;

            Assert.Equal(78, entity["ValueProperty"]);
            Assert.Equal(78, entity["NullableValueProperty"]);
            Assert.Equal("Seventy Eight", entity["ReferenceValueProperty"]);

            Assert.Equal(78, context.Entry(entity).Property <int>("ValueProperty").CurrentValue);
            Assert.Equal(78, context.Entry(entity).Property <int?>("NullableValueProperty").CurrentValue);
            Assert.Equal("Seventy Eight", context.Entry(entity).Property <string>("ReferenceValueProperty").CurrentValue);

            Assert.True(context.Entry(entity).Property <int>("ValueProperty").IsTemporary);
            Assert.True(context.Entry(entity).Property <int?>("NullableValueProperty").IsTemporary);
            Assert.True(context.Entry(entity).Property <string>("ReferenceValueProperty").IsTemporary);
        }
    }