예제 #1
0
 public function testGetCount()
 {
     $qb = $this->getMockBuilder(QueryBuilder::class)->disableOriginalConstructor()->getMock();
     $mockStatement = $this->getMockBuilder(Statement::class)->disableOriginalConstructor()->getMock();
     $mockStatement->expects($this->once())->method('fetchColumn')->willReturn(9);
     $qb->expects($this->exactly(2))->method('select')->withConsecutive(['COUNT(main.id)'], [null])->will($this->returnSelf());
     $qb->expects($this->once())->method('execute')->willReturn($mockStatement);
     $count = $this->queryHelper->getCount($qb);
     $this->assertEquals(9, $count);
 }
예제 #2
0
 /**
  * @param QueryBuilder $qb
  * @param QueryHelperInterface $queryHelper
  * @param string $class Full class name
  * @param array $dependencies Object dependencies
  * @param int $pageSize
  */
 public function __construct(QueryBuilder $qb, QueryHelperInterface $queryHelper, $class, array $dependencies = [], $pageSize = self::DEFAULT_PAGE_SIZE)
 {
     if ($pageSize < 1) {
         throw new InvalidArgumentException('Page size must be greater than 0');
     }
     $this->qb = $qb;
     $this->class = $class;
     $this->pageSize = $pageSize;
     $this->resultCount = $queryHelper->getCount($qb);
     $this->pages = floor($this->resultCount / $this->pageSize) + 1;
     $this->dependencies = $dependencies;
 }