public void InvokeLessThanOrEqualCandidate_ReturnFalse <T>(T candidate, T lessThan, IComparer <T> comparer)
            {
                candidate = candidate?.ToString() != "null" ? candidate : default;
                var sut = new LessThanOrEqualSpecification <T>(lessThan, comparer);

                var result = sut.GetNegationExpression().Compile().Invoke(candidate);

                Assert.False(result);
            }
            public void NotLessThanOrEqualCandidate_ReturnFalse <T>(T candidate, T lessThan, IComparer <T> comparer)
            {
                candidate = candidate?.ToString() != "null" ? candidate : default;
                var sut = new LessThanOrEqualSpecification <T>(lessThan, comparer);

                var result = sut.IsSatisfiedBy(candidate);

                Assert.False(result);
            }
            public void NonGenericILinqSpecification_ReturnExpressionAsAbstractExpression()
            {
                var sut = new LessThanOrEqualSpecification <string>(null);

                var expected      = sut.GetExpression().ToString();
                var sutExpression = ((ILinqSpecification)sut).GetExpression();
                var result        = sutExpression.ToString();

                Assert.Equal(expected, result);
            }
            public void CorrectNullableCandidate_ReturnExpectedResultObject(int?candidate, int?lessThan,
                                                                            SpecificationResult expected)
            {
                var sut = new LessThanOrEqualSpecification <int?>(lessThan);

                var overall = sut.IsNotSatisfiedBy(candidate, out var result);

                Assert.True(overall);
                Assert.Equal(expected, result, new SpecificationResultComparer());
            }
            public void LessThanOrEqualCandidate_ReturnExpectedResultObject <T>(T candidate, T lessThan,
                                                                                IComparer <T> comparer, SpecificationResult expected)
            {
                candidate = candidate?.ToString() != "null" ? candidate : default;
                var sut = new LessThanOrEqualSpecification <T>(lessThan, comparer);

                var overall = sut.IsNotSatisfiedBy(candidate, out var result);

                Assert.False(overall);
                Assert.Equal(expected, result, new SpecificationResultComparer(candidate));
            }