Esempio n. 1
0
        public void Reduce_OrElseWithTrueAtEnd_RemovesRedundantTrue()
        {
            Expression <Func <BooleanReducerTest, bool> > expression1 = e => e.Property1 == DateTime.Now || true;
            Expression <Func <BooleanReducerTest, bool> > expression2 = e => true;

            var rewritten = new BooleanReducer().Reduce(expression1);

            expression2.ToString().Should().Be.EqualTo(rewritten.ToString());
        }
Esempio n. 2
0
        public void Reduce_OrElseWithLeftTrue_ReturnsTrue()
        {
            Expression <Func <BooleanReducerTest, bool> > expression1 = e => true || e.Property1 == DateTime.Now;
            Expression <Func <BooleanReducerTest, bool> > expression2 = e => true;

            var rewritten = new BooleanReducer().Reduce(expression1);

            expression2.ToString().Should().Be.EqualTo(rewritten.ToString());
        }
Esempio n. 3
0
        public void Reduce_ComplexAndAlsoWithIrreducableOrElseAtFront_ReturnsCorrectExpression()
        {
            Expression <Func <BooleanReducerTest, bool> > expression1 = e => (false || e.Property1 == DateTime.Now) && true && e.Property1 == DateTime.Now;
            Expression <Func <BooleanReducerTest, bool> > expression2 = e => e.Property1 == DateTime.Now && e.Property1 == DateTime.Now;

            var rewritten = new BooleanReducer().Reduce(expression1);

            expression2.ToString().Should().Be.EqualTo(rewritten.ToString());
        }
Esempio n. 4
0
        public void Reduce_BoolAtFrontAndEndWithFalseInMiddle_ReturnsFalse()
        {
            Expression <Func <BooleanReducerTest, bool> > expression1 = e => true && e.Property1 == DateTime.Now && false && true;
            Expression <Func <BooleanReducerTest, bool> > expression2 = e => false;

            var rewritten = new BooleanReducer().Reduce(expression1);

            expression2.ToString().Should().Be.EqualTo(rewritten.ToString());
        }
Esempio n. 5
0
        public void Reduce_MultipleOrElseTrueAtFront_ReturnsTrue()
        {
            Expression <Func <BooleanReducerTest, bool> > expression1 = e => true || false || false || true || true;
            Expression <Func <BooleanReducerTest, bool> > expression2 = e => true;

            var rewritten = new BooleanReducer().Reduce(expression1);

            expression2.ToString().Should().Be.EqualTo(rewritten.ToString());
        }
        public void Reduce_MultipleAndAlsoTrueAndNestedFalseAndAlso_ReturnsFalse()
        {
            Expression <Func <LdapUser, bool> > input    = e => true && true && (false && true);
            Expression <Func <LdapUser, bool> > expected = e => false;

            Expression rewritten = new BooleanReducer().Reduce(input);

            Assert.AreEqual(expected.ToString(), rewritten.ToString());
        }
        public void Reduce_MultipleOrElseFalseAtFront_ReturnsTrue()
        {
            Expression <Func <LdapUser, bool> > input    = e => false || false || false || false || true;
            Expression <Func <LdapUser, bool> > expected = e => true;

            Expression rewritten = new BooleanReducer().Reduce(input);

            Assert.AreEqual(expected.ToString(), rewritten.ToString());
        }
Esempio n. 8
0
        public void Reduce_MultipleAndAlsoTrueAndNestedAndAlso_ReturnsTrue()
        {
            Expression <Func <BooleanReducerTest, bool> > expression1 = e => true && true && (true && true);
            Expression <Func <BooleanReducerTest, bool> > expression2 = e => true;

            var rewritten = new BooleanReducer().Reduce(expression1);

            expression2.ToString().Should().Be.EqualTo(rewritten.ToString());
        }
        public void Reduce_OrElseWithTrueAtEnd_RemovesRedundantTrue()
        {
            Expression <Func <LdapUser, bool> > input    = e => e.CommonName == "gosho" || true;
            Expression <Func <LdapUser, bool> > expected = e => true;

            Expression rewritten = new BooleanReducer().Reduce(input);

            Assert.AreEqual(expected.ToString(), rewritten.ToString());
        }
Esempio n. 10
0
        public void Reduce_Duplicate_True_RemovesDuplicates()
        {
            Expression <Func <bool, bool> > input    = e => true && true;
            Expression <Func <bool, bool> > expected = e => true;

            Expression rewritten = new BooleanReducer().Reduce(input);

            Assert.AreEqual(expected.ToString(), rewritten.ToString());
        }
Esempio n. 11
0
        public void Reduce_OrElseWithLeftTrue_ReturnsTrue()
        {
            Expression <Func <LdapUser, bool> > input    = e => true || e.CommonName == "gosho";
            Expression <Func <LdapUser, bool> > expected = e => true;

            Expression rewritten = new BooleanReducer().Reduce(input);

            Assert.AreEqual(expected.ToString(), rewritten.ToString());
        }
Esempio n. 12
0
        public void Reduce_MultipleAndAlsoFalse_ReturnsFalse()
        {
            Expression <Func <BooleanReducerTest, bool> > expression1 = e => false && false && false && false;
            Expression <Func <BooleanReducerTest, bool> > expression2 = e => false;

            var rewritten = new BooleanReducer().Reduce(expression1);

            expression2.ToString().Should().Be.EqualTo(rewritten.ToString());
        }
Esempio n. 13
0
        public void Reduce_BoolAtEnd_RemovesDuplicates()
        {
            Expression <Func <LdapUser, bool> > input = e => e.CommonName == "gosho" && true && true;

            Expression <Func <LdapUser, bool> > expected = e => e.CommonName == "gosho";

            Expression rewritten = new BooleanReducer().Reduce(input);

            Assert.AreEqual(expected.ToString(), rewritten.ToString());
        }
Esempio n. 14
0
        public void Reduce_ComplexAndAlsoWithOrElseAtFront_ReturnsCorrectExpression()
        {
            Expression <Func <LdapUser, bool> > input = e =>
                                                        (true || e.CommonName == "gosho") && true && e.CommonName == "gosho";
            Expression <Func <LdapUser, bool> > expected = e => e.CommonName == "gosho";

            Expression rewritten = new BooleanReducer().Reduce(input);

            Assert.AreEqual(expected.ToString(), rewritten.ToString());
        }
Esempio n. 15
0
        public void Reduce_BoolAtFrontAndEndWithFalseInMiddle_ReturnsFalse()
        {
            Expression <Func <LdapUser, bool> > input = e =>
                                                        true && e.CommonName == "gosho" && false && true;
            Expression <Func <LdapUser, bool> > expected = e => false;

            Expression rewritten = new BooleanReducer().Reduce(input);

            Assert.AreEqual(expected.ToString(), rewritten.ToString());
        }
Esempio n. 16
0
        public void Reduce_BoolAtEnd_RemovesDuplicates()
        {
            //prepare
            _queryContext.Query <BooleanReducerTest>().Where(e => e.Property1 == DateTime.Now && true && true).Select(e => new { Prop2 = e.Property3 ? "test" : "go" });
            var expression1 = _queryContext.ActiveProvider.CurrentExpression;

            _queryContext.Query <BooleanReducerTest>().Where(e => e.Property1 == DateTime.Now).Select(e => new { Prop2 = e.Property3 ? "test" : "go" });
            var expression2 = _queryContext.ActiveProvider.CurrentExpression;

            //act
            var rewritten = new BooleanReducer().Reduce(expression1);

            //assert
            expression2.ToString().Should().Be.EqualTo(rewritten.ToString());
        }
Esempio n. 17
0
        public void Reduce_Duplicate_True_RemovesDuplicates()
        {
            //prepare
            _queryContext.Query <BooleanReducerTest>().Where(e => true && true);
            var expression1 = _queryContext.ActiveProvider.CurrentExpression;

            _queryContext.Query <BooleanReducerTest>().Where(e => true);
            var expression2 = _queryContext.ActiveProvider.CurrentExpression;

            //act
            var rewritten = new BooleanReducer().Reduce(expression1);

            //assert
            expression2.ToString().Should().Be.EqualTo(rewritten.ToString());
        }