public void ResolveTypeCheck_ShouldReturnBinaryExpression_WhenInheritanceCode() { Expression contactExpression = Expression.Constant(new ContactWithInheritanceHierarchy()); Type desiredType = new ContactWithInheritanceHierarchy.CustomerContact().GetType(); var discriminatorDataMember = contactExpression.Type.GetProperty("ContactType"); Expression result = _mappingResolver.ResolveTypeCheck(contactExpression, desiredType); Expression expectedExpression = Expression.Equal( Expression.MakeMemberAccess(contactExpression, discriminatorDataMember), Expression.Constant("Customer") ); SqlExpressionTreeComparer.CheckAreEqualTrees(result, expectedExpression); }
public void ResolveTypeCheck_ShouldReturnBinaryExpression_WhenInheritanceCode() { Expression contactExpression = Expression.Constant (new ContactWithInheritanceHierarchy()); Type desiredType = new ContactWithInheritanceHierarchy.CustomerContact().GetType(); var discriminatorDataMember = contactExpression.Type.GetProperty ("ContactType"); Expression result = _mappingResolver.ResolveTypeCheck (contactExpression, desiredType); Expression expectedExpression = Expression.Equal ( Expression.MakeMemberAccess (contactExpression, discriminatorDataMember), Expression.Constant ("Customer") ); SqlExpressionTreeComparer.CheckAreEqualTrees (result, expectedExpression); }