Пример #1
0
 /**
  * Test findOne.
  */
 public function testFindOne()
 {
     $this->given($emptyDataSource = $this->emptyDataSource())->when($findResult = $emptyDataSource->findOne())->then->variable($findResult)->isNull();
     $this->given($randomDataSource = $this->randomDataSource())->when($findResult = $randomDataSource->findOne())->then->variable($findResult)->isNotNull();
     $this->given($datasource = $this->randomDataSource(Criteria::method('value')->gt(2), null, 1, 3))->when($findResult = $datasource->findOne())->then->integer($findResult->value())->isGreaterThan(2);
     $this->given($comparator = new Comparator(), $sortCriteria = new CallbackComparator(function ($a, $b) use($comparator) {
         return -1 * $comparator->compare($a, $b);
     }), $datasource = $this->randomDataSource(Criteria::method('value')->lt(10), $sortCriteria))->when($findResult = $datasource->findOne())->then->integer($findResult->value())->isEqualTo(9);
 }
Пример #2
0
 /**
  * {@inheritdoc}
  */
 public function sort(ComparatorInterface $criteria = null)
 {
     $elements = $this->collection->toArray();
     if ($criteria === null) {
         $criteria = new Comparator();
     }
     usort($elements, function ($a, $b) use($criteria) {
         return $criteria->compare($a, $b);
     });
     $this->clear();
     foreach ($elements as $element) {
         $this->add($element);
     }
 }
Пример #3
0
 /**
  * {@inheritdoc}
  */
 public function sort(ComparatorInterface $criteria = null)
 {
     if ($criteria === null) {
         $criteria = new Comparator();
     }
     uksort($this->elements, function ($a, $b) use($criteria) {
         return $criteria->compare($a, $b);
     });
 }
Пример #4
0
 /**
  * {@inheritdoc}
  */
 public function compare($a, $b)
 {
     return $this->direction()->value() * parent::compare($this->selector->__invoke($a), $this->selector->__invoke($b));
 }