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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }