public function testDomainExpressions() { $c1 = new Customer(); $c1->setPremium(true); $c2 = new Customer(); $c2->setBookings(array('booking1', 'booking2')); $c3 = new Customer(); $c3->setPremium(true); $c3->setBookings(array('booking1')); $customers = array($c1, $c2, $c3); $this->assertEquals(array($c1, 2 => $c3), Expr::filter($customers, new IsPremium())); $this->assertEquals(array(1 => $c2, 2 => $c3), Expr::filter($customers, new HasPreviousBookings())); $this->assertEquals(array(2 => $c3), Expr::filter($customers, Expr::andX(array(new HasPreviousBookings(), new IsPremium())))); }
public function testAndX() { $andX = new AndX(array(new GreaterThan(5), new LessThan(10))); $this->assertEquals($andX, Expr::andX(array(Expr::greaterThan(5), Expr::lessThan(10)))); }