/** * @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; }
/** * @expectedException \Corma\Exception\InvalidArgumentException */ public function testMissingTableException() { $this->connection->expects($this->once())->method('createQueryBuilder')->willReturn(new QueryBuilder($this->connection)); $mockStatement = $this->getMockBuilder(Statement::class)->disableOriginalConstructor()->getMock(); $mockStatement->expects($this->once())->method('fetchAll')->willReturn([]); $this->connection->expects($this->once())->method('executeQuery')->willReturn($mockStatement); $this->queryHelper->getDbColumns('asdf'); }
/** * Build parameters for insert or update * @param DataObjectInterface $object * @return array */ protected function buildQueryParams(DataObjectInterface $object) { $queryParams = []; $dbColumns = $this->queryHelper->getDbColumns($object->getTableName()); $data = $object->getData(); foreach ($dbColumns as $column => $acceptNull) { if ($column == 'id') { continue; } if (isset($data[$column])) { $queryParams[$this->db->quoteIdentifier($column)] = $data[$column]; } else { if ($acceptNull) { $queryParams[$this->db->quoteIdentifier($column)] = null; } } } return $queryParams; }