public function testAddJoin() { $this->_datatable->setEntity('Ali\\DatatableBundle\\Tests\\TestBundle\\Entity\\Feature', 'f')->setFields(array("Category" => 'c.name', "Product" => 'p.name', "Feature" => 'f.name', "_identifier_" => 'f.id'))->addJoin('f.product', 'p')->addJoin('p.category', 'c'); $r = $this->_datatable->execute(); /* @var $r \Symfony\Component\HttpFoundation\JsonResponse */ $this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\JsonResponse', $r); $data = json_decode($r->getContent(), true); $this->assertArrayHasKey('sEcho', $data); $this->assertArrayHasKey('iTotalRecords', $data); $this->assertArrayHasKey('iTotalDisplayRecords', $data); $this->assertArrayHasKey('aaData', $data); $this->assertEquals(0, $data['sEcho']); $this->assertEquals('3', $data['iTotalRecords']); $this->assertEquals('3', $data['iTotalDisplayRecords']); $this->assertEquals(array(array('CatA', 'Laptop', 'CPU I7 Generation', 1), array('CatA', 'Laptop', 'SolidState drive', 2), array('CatA', 'Laptop', 'SLI graphic card ', 3)), $data['aaData']); }