public function testSearch() { /** * @type Domains */ $domainObj = $this->container->get('syseleven.pdns.workflow.domains')->getRepository()->findOneBy(array()); $query = new RecordsQuery(); $query->setId(1); $query->setType(array('PTR', 'A', 'AAAA')); $query->setName('1.1.1.1'); $query->setNameExact('www.example.com'); $query->setContent('1.1.1.1'); $query->setDomainId(1); $query->setDomain($domainObj); $query->setManaged(1); $query->setSearch('search'); $qb = $this->workflow->search($query->toArray()); $parameters = $qb->getParameters(); $p = array(); foreach ($parameters as $parameter) { /** * @type \Doctrine\ORM\Query\Parameter $parameter */ $p[$parameter->getName()] = $parameter->getValue(); } $this->assertArrayHasKey('id', $p); $this->assertArrayHasKey('type', $p); $this->assertArrayHasKey('name', $p); $this->assertArrayHasKey('name_exact', $p); $this->assertArrayHasKey('content', $p); $this->assertArrayHasKey('managed', $p); $this->assertArrayHasKey('search', $p); $this->assertArrayHasKey('domain_id', $p); try { $qb->getQuery()->getResult(); } catch (\Exception $e) { $this->fail('SQL did not validate: ' . $e->getMessage()); } }