public void ShouldntTriggerOnEqualsMethod()
        {
            var hint = new EnumerableOperatorEqualsHint();

            var x = new[] { 3 };
            var y = new[] { 3 };

            Expression <Func <bool> > assertion = () => x.Equals(y);
            var p = new ExpressionParser(assertion.Body);

            string message;

            Assert.IsFalse(hint.TryGetHint(p, assertion.Body, out message));
            Assert.IsNull(message);
        }
        public void ShouldTriggerOnSequenceEqualEnumerables()
        {
            var hint = new EnumerableOperatorEqualsHint();

            var x = new[] { 3 };
            var y = new[] { 3 };

            Expression <Func <bool> > assertion = () => x == y;
            var p = new ExpressionParser(assertion.Body);

            string message;

            Assert.IsTrue(hint.TryGetHint(p, assertion.Body, out message));
            Assert.IsNotNull(message);
        }
        public void ShouldTriggerForDifferentEnumerables()
        {
            var hint = new EnumerableOperatorEqualsHint();

            object x = new[] { 3 };
            object y = new List <int> {
                3
            };

            Expression <Func <bool> > assertion = () => x == y;
            var p = new ExpressionParser(assertion.Body);

            string message;

            Assert.IsTrue(hint.TryGetHint(p, assertion.Body, out message));
            Assert.IsNotNull(message);
        }