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); }
/** * @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; }