public void GivenConstructorWhenCtorExprCreatedThenShouldSetProperties( ConstructorInfo info, Expression arg, MemberInfo member) { NewExpression expr; if (arg == null) { expr = Expression.New(info); } else if (member == null) { expr = Expression.New(info, new[] { arg }); } else { expr = Expression.New(info, new[] { arg }, new[] { member }); } var ctor = new CtorExpr(expr); Assert.NotNull(ctor.CtorInfo); if (member != null) { Assert.Contains(member.Name, ctor.MemberKeys[0]); } }
public void WhenCtorExprCreatedThenShouldInitializeLists() { var target = new CtorExpr(); Assert.NotNull(target.Arguments); Assert.NotNull(target.MemberKeys); }
public void GivenMixedFieldsAndPropertiesWhenCtorExprCreatedThenShouldMapAppropriately() { var expr = Expression.New( typeof(FieldsAndProps).GetConstructors().Single(), new[] { 1.AsConstantExpression(), nameof(SerializableExpressionTests).AsConstantExpression(), 2.AsConstantExpression(), nameof(GivenMixedFieldsAndPropertiesWhenCtorExprCreatedThenShouldMapAppropriately) .AsConstantExpression() }, new MemberInfo[] { typeof(FieldsAndProps).GetField(nameof(FieldsAndProps.field)), typeof(FieldsAndProps).GetProperty(nameof(FieldsAndProps.ValueStr)), typeof(FieldsAndProps).GetProperty(nameof(FieldsAndProps.Value)), typeof(FieldsAndProps).GetField(nameof(FieldsAndProps.fieldStr)), }); var ctor = new CtorExpr(expr); Assert.Equal(2, ctor.MemberKeys.Count(m => m.StartsWith("P:"))); Assert.Equal(2, ctor.MemberKeys.Count(m => m.StartsWith("F:"))); }