public function __construct(ScribbleCollection $scribbles, Filter $filter, Criteria $criteria, Paginator $paginator) { $this->paginator = $paginator; $this->criteria = $criteria; $this->scribbles = $scribbles; $this->relatedTags = $filter->getRelatedTags(); $this->relatedTagCounts = $filter->getRelatedTagCounts(); }
public function getOne(Criteria $criteria) { // overwrite config defaults? $mode = $criteria->getMode() ? $criteria->getMode() : $this->mode; // criteria $criteria->setMode($mode); // get all scribbles $allScribbles = $this->getDirectory()->load()->getScribbles(); // filter and paginate $filter = new Filter(); $scribbles = $filter->apply($allScribbles, $criteria)->getScribbles(); return $scribbles->first(); }
public function testDefaultMode() { $criteria = new Criteria(); $filter = new Filter(); $filter->apply($this->scribbles, $criteria); $this->assertSame(3, $filter->getScribbles()->count()); $criteria = new Criteria(); $criteria->setMode(Criteria::MODE_PUBLISHED); $filter = new Filter(); $filter->apply($this->scribbles, $criteria); $this->assertSame(3, $filter->getScribbles()->count()); $criteria = new Criteria(); $criteria->setMode(Criteria::MODE_UNPUBLISHED); $filter = new Filter(); $filter->apply($this->scribbles, $criteria); $this->assertSame(1, $filter->getScribbles()->count()); $criteria = new Criteria(); $criteria->setMode(Criteria::MODE_ALL); $filter = new Filter(); $filter->apply($this->scribbles, $criteria); $this->assertSame(4, $filter->getScribbles()->count()); }