public void TestAndContainingOrSetActive() { // Arrange var filter = new OrPredicate <string> { new Predicate <string> { Expression = (ev) => true }, new Predicate <string> { Expression = (ev) => true }, }; var filter2 = new OrPredicate <string> { new Predicate <string> { Expression = (ev) => true }, new Predicate <string> { Expression = (ev) => true }, }; var container = new AndPredicate <string> (); container.Add(filter); container.Add(filter2); // Act filter2.Active = false; // Assert Assert.IsFalse(filter2 [0].Active); Assert.IsFalse(filter2 [1].Active); Assert.IsTrue(container.Filter("")); }
public void TestAndContainingOr() { var filter = new OrPredicate <string> { new Predicate <string> { Expression = (ev) => true }, new Predicate <string> { Expression = (ev) => false }, }; var filter2 = new OrPredicate <string> { new Predicate <string> { Expression = (ev) => true }, new Predicate <string> { Expression = (ev) => false }, }; var container = new AndPredicate <string> (); container.Add(filter); container.Add(filter2); Assert.IsTrue(container.Filter("")); }
public void TestAndContainingInactiveOr() { var filter = new OrPredicate <string> { new Predicate <string> { Expression = (ev) => true }, new Predicate <string> { Expression = (ev) => false }, }; filter.Active = false; var filter2 = new OrPredicate <string> { new Predicate <string> { Expression = (ev) => true }, new Predicate <string> { Expression = (ev) => false }, }; var container = new AndPredicate <string> (); container.Add(filter); container.Add(filter2); Assert.IsFalse(filter.Elements [0].Active); Assert.IsFalse(filter.Elements [1].Active); Assert.IsFalse(filter.Filter("")); Assert.IsTrue(filter2.Filter("")); Assert.IsTrue(container.Filter("")); }
public void TestAndContainingEmptyOr() { var filter = new OrPredicate <string> { new Predicate <string> { Expression = PredicateBuilder.True <string>() }, }; // This OR doesn't have any active Predicate, thus it's ignored var filter2 = new OrPredicate <string> (); var container = new AndPredicate <string> (); container.Add(filter); container.Add(filter2); Assert.IsTrue(container.Filter("")); }
public void TestElementsEvents() { // Arrange string property = ""; int count = 0; int countElements = 0; var filter = new OrPredicate <string> { new Predicate <string> { Expression = (ev) => true }, new Predicate <string> { Expression = (ev) => false }, }; var filter2 = new OrPredicate <string> { new Predicate <string> { Expression = (ev) => true }, new Predicate <string> { Expression = (ev) => false }, }; var container = new AndPredicate <string> (); container.Elements.CollectionChanged += (sender, e) => { countElements++; }; container.PropertyChanged += (sender, e) => { property = e.PropertyName; count++; }; // Act container.Add(filter); container.Add(filter2); //Assert Assert.AreEqual("Collection_Elements", property); Assert.AreEqual(2, count); Assert.AreEqual(count, countElements); }
public void TestAndOrEmpty() { // Arrange var filter = new OrPredicate <string> (); var filter2 = new OrPredicate <string> (); var container = new AndPredicate <string> (); container.Add(filter); container.Add(filter2); // Act // Assert Assert.IsFalse(filter.Active); Assert.IsFalse(filter2.Active); Assert.IsFalse(container.Active); Assert.IsTrue(container.Filter("")); }
public void TestAndEvents() { // Arrange string property = ""; int count = 0; var filter = new AndPredicate <string> (); filter.PropertyChanged += (sender, e) => { property = e.PropertyName; count++; }; // Act filter.Add(new Predicate <string> { Expression = (ev) => true }); //Assert Assert.AreEqual("Collection_Elements", property); Assert.AreEqual(1, count); }