public void DecodeMemberAccessExpressionOfShouldReturnMemberOfRequiredClass() { var mi1 = TypeExtensions.DecodeMemberAccessExpressionOf <MyClass>(mc => mc.BaseProperty); Assert.That(mi1.DeclaringType, Is.EqualTo(typeof(MyBaseClass))); Assert.That(mi1.ReflectedType, Is.EqualTo(typeof(MyClass))); var mi2 = TypeExtensions.DecodeMemberAccessExpressionOf <MyClass>(mc => mc.BaseBool); Assert.That(mi2.DeclaringType, Is.EqualTo(typeof(MyBaseClass))); Assert.That(mi2.ReflectedType, Is.EqualTo(typeof(MyClass))); }
public void GenericDecodeMemberAccessExpressionShouldReturnMemberOfDeclaringClass() { var mi1 = TypeExtensions.DecodeMemberAccessExpression <MyClass, string>(mc => mc.BaseProperty); Assert.That(mi1.DeclaringType, Is.EqualTo(typeof(MyBaseClass))); Assert.That(mi1.ReflectedType, Is.EqualTo(typeof(MyBaseClass))); var mi2 = TypeExtensions.DecodeMemberAccessExpression <MyClass, bool>(mc => mc.BaseBool); Assert.That(mi2.DeclaringType, Is.EqualTo(typeof(MyBaseClass))); Assert.That(mi2.ReflectedType, Is.EqualTo(typeof(MyBaseClass))); }
public void DecodeMemberAccessExpressionOfWithGenericShouldReturnMemberOfRequiredClass() { var mi1 = TypeExtensions.DecodeMemberAccessExpressionOf <MyEntity>(mc => mc.Id); Assert.That(mi1.DeclaringType, Is.EqualTo(typeof(BaseEntity))); Assert.That(mi1.ReflectedType, Is.EqualTo(typeof(MyEntity))); var mi2 = TypeExtensions.DecodeMemberAccessExpressionOf <MyEntity>(mc => mc.BaseBool); Assert.That(mi2.DeclaringType, Is.EqualTo(typeof(BaseEntity))); Assert.That(mi2.ReflectedType, Is.EqualTo(typeof(MyEntity))); }
public void WhenDecodeMemberAccessExpressionOfOnInheritedEntityInterfaceThenDecodeMember() { Assert.That(TypeExtensions.DecodeMemberAccessExpressionOf <IMyEntity>(m => m.Id), Is.Not.Null); Assert.That(TypeExtensions.DecodeMemberAccessExpressionOf <IMyEntity, Guid>(m => m.Id), Is.Not.Null); }
public static IGeneratorDef Foreign <TEntity>(Expression <Func <TEntity, object> > property) { return(new ForeignGeneratorDef(TypeExtensions.DecodeMemberAccessExpression(property))); }