/**
  * Test visitEqual.
  */
 public function testVisitEqual()
 {
     $this->visitTest(Criteria::property('foo')->eq(10), function () {
         return $this->createQueryBuilder()->field('foo')->equals(10);
     });
     $this->visitTest(Criteria::property('foo')->count()->eq(10), function () {
         return $this->createQueryBuilder()->field('foo')->size(10);
     });
     $user = new User(UserId::next(), 'user', 20);
     $this->visitTest(Criteria::eq($user), function () use($user) {
         return $this->createQueryBuilder()->field('id')->equals($user->id()->toNative());
     });
     $this->visitTest(Criteria::property('id')->eq($user->id()), function () use($user) {
         return $this->createQueryBuilder()->field('id')->equals($user->id()->toNative());
     });
     $this->logicExceptionTest(Criteria::callback(function () {
     })->eq(10));
     $this->logicExceptionTest(Criteria::property('foo')->eq(Criteria::property('bar')));
 }
Example #2
0
 /**
  * @param QueryBuilder $queryBuilder1
  * @param QueryBuilder $queryBuilder2
  *
  * @return bool
  */
 protected function hasSameOperator(QueryBuilder $queryBuilder1, QueryBuilder $queryBuilder2)
 {
     $intersection = new ArrayHashMap(\array_intersect_key($queryBuilder1->getQueryArray(), $queryBuilder2->getQueryArray()));
     return $intersection->keys()->findOne(Criteria::callback(function ($value) {
         return \strpos($value, '$') === 0;
     })) !== null;
 }
Example #3
0
 /**
  * Test callback.
  */
 public function testCallback()
 {
     $this->given($criteria = Criteria::callback(function () {
     }))->then()->object($criteria)->isInstanceOf(Selector::class)->object($criteria->selector())->isInstanceOf(Callback::class);
 }