diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 1cf89b91b..5655e23c8 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -33,6 +33,8 @@ src/Bundle/ChillAsideActivityBundle/src/Tests/ + + src/Bundle/ChillCalendarBundle/Tests/ diff --git a/src/Bundle/ChillCalendarBundle/Tests/Controller/CalendarControllerTest.php b/src/Bundle/ChillCalendarBundle/Tests/Controller/CalendarControllerTest.php index c94238a51..00fca668a 100644 --- a/src/Bundle/ChillCalendarBundle/Tests/Controller/CalendarControllerTest.php +++ b/src/Bundle/ChillCalendarBundle/Tests/Controller/CalendarControllerTest.php @@ -2,65 +2,72 @@ namespace Chill\CalendarBundle\Tests\Controller; +use Chill\PersonBundle\Repository\AccompanyingPeriodRepository; +use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; use Symfony\Component\HttpFoundation\Request; use Chill\PersonBundle\Entity\AccompanyingPeriod; class CalendarControllerTest extends WebTestCase { - - /** - * Setup before the first test of this class (see phpunit doc) - */ - public static function setUpBeforeClass() - { - static::bootKernel(); - } /** * Setup before each test method (see phpunit doc) */ public function setUp() { + static::bootKernel(); $this->client = static::createClient(array(), array( 'PHP_AUTH_USER' => 'center a_social', 'PHP_AUTH_PW' => 'password', )); } - - private function getAccompanyingPeriodFromFixtures(): AccompanyingPeriod + + public function provideAccompanyingPeriod(): iterable { - $em = static::$kernel->getContainer() - ->get('doctrine.orm.entity_manager'); + static::bootKernel(); + $em= static::$container->get(EntityManagerInterface::class); - $accompanying_period = $em->getRepository('ChillPersonBundle:AccompanyingPeriod')->find(1); + $nb = $em->createQueryBuilder() + ->from(AccompanyingPeriod::class, 'ac') + ->select('COUNT(ac) AS nb') + ->getQuery() + ->getSingleScalarResult() + ; - if ($accompanying_period === NULL) { - throw new \RuntimeException("We need an accompanying course with id = 1. Did you add fixtures ?"); - } - - return $accompanying_period; + yield [ $em->createQueryBuilder() + ->from(AccompanyingPeriod::class, 'ac') + ->select('ac.id') + ->setFirstResult(\random_int(0, $nb)) + ->setMaxResults(1) + ->getQuery() + ->getSingleScalarResult() + ]; } - public function testList() + /** + * @dataProvider provideAccompanyingPeriod + */ + public function testList(int $accompanyingPeriodId) { $this->client->request( - Request::METHOD_GET, - sprintf('/fr/calendar/?accompanying_period_id=%d', $this->getAccompanyingPeriodFromFixtures()->getId()) + Request::METHOD_GET, + sprintf('/fr/calendar/calendar/?accompanying_period_id=%d', $accompanyingPeriodId) ); $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); } - - public function testNew() + /** + * @dataProvider provideAccompanyingPeriod + */ + public function testNew(int $accompanyingPeriodId) { $this->client->request( - Request::METHOD_GET, - sprintf('/fr/calendar/new?accompanying_period_id=%d', $this->getAccompanyingPeriodFromFixtures()->getId()) + Request::METHOD_GET, + sprintf('/fr/calendar/calendar/new?accompanying_period_id=%d', $accompanyingPeriodId) ); $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); } - } diff --git a/src/Bundle/ChillDocStoreBundle/config/services/controller.yaml b/src/Bundle/ChillDocStoreBundle/config/services/controller.yaml index 9899ffa2e..6675102d9 100644 --- a/src/Bundle/ChillDocStoreBundle/config/services/controller.yaml +++ b/src/Bundle/ChillDocStoreBundle/config/services/controller.yaml @@ -1,11 +1,9 @@ services: - Chill\DocStoreBundle\Controller\: - resource: '../../Controller' - tags: ['controller.service_arguments'] - - Chill\DocStoreBundle\Controller\DocumentPersonController: - arguments: - $translator: '@Symfony\Component\Translation\TranslatorInterface' - $eventDispatcher: '@Symfony\Component\EventDispatcher\EventDispatcherInterface' - $authorizationHelper: '@Chill\MainBundle\Security\Authorization\AuthorizationHelper' - tags: ['controller.service_arguments'] \ No newline at end of file + _defaults: + autowire: true + autoconfigure: true + + Chill\DocStoreBundle\Controller\: + resource: "../../Controller" + tags: ["controller.service_arguments"] +