private void CheckEquals(TestEveryType entity)
 {
     Assert.Equal(DefaultTestEntity[nameof(TestEveryType.Integer)], entity.Integer);
     Assert.Equal(DefaultTestEntity[nameof(TestEveryType.IntegerNullable)], entity.IntegerNullable);
     Assert.Equal(DefaultTestEntity[nameof(TestEveryType.Double)], entity.Double);
     Assert.Equal(DefaultTestEntity[nameof(TestEveryType.DateTime)], entity.DateTime);
     Assert.Equal(DefaultTestEntity[nameof(TestEveryType.DateTimeNullable)], entity.DateTimeNullable);
     Assert.Equal(DefaultTestEntity[nameof(TestEveryType.DateTimeOffset)], entity.DateTimeOffset);
     Assert.Equal(DefaultTestEntity[nameof(TestEveryType.DateTimeOffsetNullable)], entity.DateTimeOffsetNullable);
     Assert.Equal(DefaultTestEntity[nameof(TestEveryType.TimeSpan)], entity.TimeSpan);
     Assert.Equal(DefaultTestEntity[nameof(TestEveryType.TimeSpanNullable)], entity.TimeSpanNullable);
     Assert.Equal(DefaultTestEntity[nameof(TestEveryType.String)], entity.String);
     Assert.Equal(DefaultTestEntity[nameof(TestEveryType.Object)], entity.Object);
 }
        public void CopyProperties2()
        {
            TestEveryType tnode = new TestEveryType()
            {
                Id = 1
            };

            PrepareEntity(tnode);

            using (ObjectExtensions.ConfigScope(new ObjectExtensionsConfiguration.DelegateILCachingConfiguration()))
            {
                CheckEquals(tnode);
            }
            using (ObjectExtensions.ConfigScope(new ObjectExtensionsConfiguration.DelegateCachingConfiguration()))
            {
                CheckEquals(tnode);
            }
        }
        private void PrepareEntity(TestEveryType entity)
        {
            entity.CopyProperties(DefaultTestEntity);

            entity.WriteonlyInt = 1;
        }