예제 #1
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;
 }
예제 #2
0
 /**
  * @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');
 }
예제 #3
0
 /**
  * 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;
 }