/** * @param callable $onBeforeIndex TODO Add typehint when migrating to 5.4+ * @param array $orderBys * * @return array */ protected function commonTestSearchActionOrderBysAction($onBeforeIndex, array $orderBys = array()) { $client = self::createClient(); $container = $client->getContainer(); $kernelRootDir = $container->getParameter('kernel.root_dir'); $this->executeCommand('php ' . $kernelRootDir . '/console doctrine:database:drop --env=test --force', false); $this->executeCommand('php ' . $kernelRootDir . '/console doctrine:database:create --env=test'); $this->executeCommand('php ' . $kernelRootDir . '/console doctrine:schema:create --env=test'); $this->executeCommand('php ' . $kernelRootDir . '/console redis:flushall --env=test -n'); $lock = $container->getParameter('kernel.cache_dir') . '/composer-indexer.lock'; $this->executeCommand('rm -f ' . $lock); $em = $container->get('doctrine')->getManager(); if (!empty($orderBys)) { $orderBysQryStrPart = '&' . http_build_query(array('orderBys' => $orderBys)); } else { $orderBysQryStrPart = ''; } $twigPackage = new Package(); $twigPackage->setName('twig/twig'); $twigPackage->setRepository('https://github.com/twig/twig'); $packagistPackage = new Package(); $packagistPackage->setName('composer/packagist'); $packagistPackage->setRepository('https://github.com/composer/packagist'); $symfonyPackage = new Package(); $symfonyPackage->setName('symfony/symfony'); $symfonyPackage->setRepository('https://github.com/symfony/symfony'); $em->persist($twigPackage); $em->persist($packagistPackage); $em->persist($symfonyPackage); $em->flush(); $onBeforeIndex($container, $twigPackage, $packagistPackage, $symfonyPackage); $this->executeCommand('php ' . $kernelRootDir . '/console packagist:index --env=test --force'); $client->request('GET', '/search.json?q=' . $orderBysQryStrPart); $response = $client->getResponse(); $content = $client->getResponse()->getContent(); $this->assertSame(200, $response->getStatusCode(), $content); return json_decode($content, true); }
protected function initializePackages(ContainerInterface $container) { $kernelRootDir = $container->getParameter('kernel.root_dir'); $this->executeCommand('php ' . $kernelRootDir . '/console doctrine:database:drop --env=test --force', false); $this->executeCommand('php ' . $kernelRootDir . '/console doctrine:database:create --env=test'); $this->executeCommand('php ' . $kernelRootDir . '/console doctrine:schema:create --env=test'); $this->executeCommand('php ' . $kernelRootDir . '/console redis:flushall --env=test -n'); $em = $container->get('doctrine')->getManager(); $twigPackage = new Package(); $twigPackage->setName('twig/twig'); $twigPackage->setRepository('https://github.com/twig/twig'); $packagistPackage = new Package(); $packagistPackage->setName('composer/packagist'); $packagistPackage->setRepository('https://github.com/composer/packagist'); $symfonyPackage = new Package(); $symfonyPackage->setName('symfony/symfony'); $symfonyPackage->setRepository('https://github.com/symfony/symfony'); $em->persist($twigPackage); $em->persist($packagistPackage); $em->persist($symfonyPackage); $em->flush(); return [$twigPackage, $packagistPackage, $symfonyPackage]; }