Inheritance: OperatorEqualsHintBase
        public void ShouldTriggerForDifferentEnumerables()
        {
            var hint = new EnumerableOperatorEqualsHint();

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

            Expression<Func<bool>> assertion = () => x == y;

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

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

            Expression<Func<bool>> assertion = () => x == y;

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

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

            Expression<Func<bool>> assertion = () => x.Equals(y);

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

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

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

            string message;
            Assert.IsFalse(hint.TryGetHint(p, assertion.Body, out message));
            Assert.IsNull(message);
        }