PowerAssert.Hints.StringEqualsHint.TryGetHint C# (CSharp) Метод

TryGetHint() публичный Метод

public TryGetHint ( ExpressionParser parser, Expression expression, string &hint ) : bool
parser PowerAssert.Infrastructure.ExpressionParser
expression System.Linq.Expressions.Expression
hint string
Результат bool
        public bool TryGetHint(ExpressionParser parser, Expression expression, out string hint)
        {
            var methE = expression as MethodCallExpression;
            if (methE != null)
            {
                if (StringEqualsMethodInfo.Any(x => x == methE.Method))
                {
                    var obj = parser.DynamicInvoke(methE.Object);
                    var arg = parser.DynamicInvoke(methE.Arguments.First());

                    var comparison = (StringComparison) (methE.Arguments.Select(parser.DynamicInvoke)
                        .FirstOrDefault(x => x is StringComparison) ?? StringComparison.CurrentCulture);

                    hint = HintUtils.GetStringDifferHint((string) obj, (string) arg, GetComparerFromComparison(comparison));
                    return hint != null;
                }
            }

            hint = null;
            return false;
        }
    }

Usage Example

        public void HintPicksUpDiff()
        {
            var hint = new StringEqualsHint();

            Expression<Func<bool>> x = () => "x".Equals("X");

            string description;
            Assert.IsTrue(hint.TryGetHint(x.Body, out description));
            Assert.IsNotNull(description);
        }
All Usage Examples Of PowerAssert.Hints.StringEqualsHint::TryGetHint