public function testPaginatorGroupBy()
 {
     // create queryBuilder
     $em = $this->getEntityManager();
     $repository = $em->getRepository('Kitpages\\DataGridBundle\\Tests\\TestEntities\\Node');
     $queryBuilder = $repository->createQueryBuilder("node");
     $queryBuilder->select("node.user, count(node.id) as cnt");
     $queryBuilder->groupBy("node.user");
     // create EventDispatcher mock
     $service = $this->getMock('Symfony\\Component\\EventDispatcher\\EventDispatcher');
     // create Request mock (ok this is not a mock....)
     $request = new \Symfony\Component\HttpFoundation\Request();
     $_SERVER["REQUEST_URI"] = "/foo";
     // create gridManager instance
     $paginatorManager = $this->getPaginatorManager();
     // configure paginator
     $paginatorConfig = new PaginatorConfig();
     $paginatorConfig->setCountFieldName("node.user");
     $paginatorConfig->setItemCountInPage(3);
     // get paginator
     $paginatorConfig->setQueryBuilder($queryBuilder);
     $paginator = $paginatorManager->getPaginator($paginatorConfig, $request);
     // tests
     $this->assertEquals(6, $paginator->getTotalItemCount());
     $this->assertEquals(2, $paginator->getTotalPageCount());
     $this->assertEquals(array(1, 2), $paginator->getPageRange());
     $this->assertEquals(1, $paginator->getCurrentPage());
     $this->assertEquals(2, $paginator->getNextButtonPage());
 }
 public function initGridConfig()
 {
     // configure paginator
     $paginatorConfig = new PaginatorConfig();
     $paginatorConfig->setCountFieldName("node.id");
     $paginatorConfig->setItemCountInPage(3);
     $gridConfig = new GridConfig();
     $gridConfig->setPaginatorConfig($paginatorConfig);
     $gridConfig->setCountFieldName("node.id");
     $gridConfig->addField(new Field("node.id"))->addField(new Field("node.createdAt", array("sortable" => true, "formatValueCallback" => function ($value) {
         return $value->format("Y/m/d");
     })));
     $gridConfig->addField(new Field("node.content", array("formatValueCallback" => function ($value, $row) {
         return $value . ":" . $row["createdAt"]->format("Y");
     })));
     $gridConfig->addField(new Field("node.user", array("filterable" => true)));
     return $gridConfig;
 }