|
@@ -0,0 +1,136 @@
|
|
|
|
+<?php
|
|
|
|
+
|
|
|
|
+namespace App\Test\Controller;
|
|
|
|
+
|
|
|
|
+use App\Entity\Counter;
|
|
|
|
+use Doctrine\ORM\EntityManagerInterface;
|
|
|
|
+use Doctrine\ORM\EntityRepository;
|
|
|
|
+use Symfony\Bundle\FrameworkBundle\KernelBrowser;
|
|
|
|
+use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
|
|
|
|
+
|
|
|
|
+class CounterControllerTest extends WebTestCase
|
|
|
|
+{
|
|
|
|
+ private KernelBrowser $client;
|
|
|
|
+ private EntityManagerInterface $manager;
|
|
|
|
+ private EntityRepository $repository;
|
|
|
|
+ private string $path = '/admin/';
|
|
|
|
+
|
|
|
|
+ protected function setUp(): void
|
|
|
|
+ {
|
|
|
|
+ $this->client = static::createClient();
|
|
|
|
+ $this->manager = static::getContainer()->get('doctrine')->getManager();
|
|
|
|
+ $this->repository = $this->manager->getRepository(Counter::class);
|
|
|
|
+
|
|
|
|
+ foreach ($this->repository->findAll() as $object) {
|
|
|
|
+ $this->manager->remove($object);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $this->manager->flush();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function testIndex(): void
|
|
|
|
+ {
|
|
|
|
+ $crawler = $this->client->request('GET', $this->path);
|
|
|
|
+
|
|
|
|
+ self::assertResponseStatusCodeSame(200);
|
|
|
|
+ self::assertPageTitleContains('Counter index');
|
|
|
|
+
|
|
|
|
+ // Use the $crawler to perform additional assertions e.g.
|
|
|
|
+ // self::assertSame('Some text on the page', $crawler->filter('.p')->first());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function testNew(): void
|
|
|
|
+ {
|
|
|
|
+ $this->markTestIncomplete();
|
|
|
|
+ $this->client->request('GET', sprintf('%snew', $this->path));
|
|
|
|
+
|
|
|
|
+ self::assertResponseStatusCodeSame(200);
|
|
|
|
+
|
|
|
|
+ $this->client->submitForm('Save', [
|
|
|
|
+ 'counter[startTime]' => 'Testing',
|
|
|
|
+ 'counter[endTime]' => 'Testing',
|
|
|
|
+ 'counter[name]' => 'Testing',
|
|
|
|
+ 'counter[state]' => 'Testing',
|
|
|
|
+ 'counter[timeToLive]' => 'Testing',
|
|
|
|
+ ]);
|
|
|
|
+
|
|
|
|
+ self::assertResponseRedirects($this->path);
|
|
|
|
+
|
|
|
|
+ self::assertSame(1, $this->repository->count([]));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function testShow(): void
|
|
|
|
+ {
|
|
|
|
+ $this->markTestIncomplete();
|
|
|
|
+ $fixture = new Counter();
|
|
|
|
+ $fixture->setStartTime('My Title');
|
|
|
|
+ $fixture->setEndTime('My Title');
|
|
|
|
+ $fixture->setName('My Title');
|
|
|
|
+ $fixture->setState('My Title');
|
|
|
|
+ $fixture->setTimeToLive('My Title');
|
|
|
|
+
|
|
|
|
+ $this->manager->persist($fixture);
|
|
|
|
+ $this->manager->flush();
|
|
|
|
+
|
|
|
|
+ $this->client->request('GET', sprintf('%s%s', $this->path, $fixture->getId()));
|
|
|
|
+
|
|
|
|
+ self::assertResponseStatusCodeSame(200);
|
|
|
|
+ self::assertPageTitleContains('Counter');
|
|
|
|
+
|
|
|
|
+ // Use assertions to check that the properties are properly displayed.
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function testEdit(): void
|
|
|
|
+ {
|
|
|
|
+ $this->markTestIncomplete();
|
|
|
|
+ $fixture = new Counter();
|
|
|
|
+ $fixture->setStartTime('Value');
|
|
|
|
+ $fixture->setEndTime('Value');
|
|
|
|
+ $fixture->setName('Value');
|
|
|
|
+ $fixture->setState('Value');
|
|
|
|
+ $fixture->setTimeToLive('Value');
|
|
|
|
+
|
|
|
|
+ $this->manager->persist($fixture);
|
|
|
|
+ $this->manager->flush();
|
|
|
|
+
|
|
|
|
+ $this->client->request('GET', sprintf('%s%s/edit', $this->path, $fixture->getId()));
|
|
|
|
+
|
|
|
|
+ $this->client->submitForm('Update', [
|
|
|
|
+ 'counter[startTime]' => 'Something New',
|
|
|
|
+ 'counter[endTime]' => 'Something New',
|
|
|
|
+ 'counter[name]' => 'Something New',
|
|
|
|
+ 'counter[state]' => 'Something New',
|
|
|
|
+ 'counter[timeToLive]' => 'Something New',
|
|
|
|
+ ]);
|
|
|
|
+
|
|
|
|
+ self::assertResponseRedirects('/admin/');
|
|
|
|
+
|
|
|
|
+ $fixture = $this->repository->findAll();
|
|
|
|
+
|
|
|
|
+ self::assertSame('Something New', $fixture[0]->getStartTime());
|
|
|
|
+ self::assertSame('Something New', $fixture[0]->getEndTime());
|
|
|
|
+ self::assertSame('Something New', $fixture[0]->getName());
|
|
|
|
+ self::assertSame('Something New', $fixture[0]->getState());
|
|
|
|
+ self::assertSame('Something New', $fixture[0]->getTimeToLive());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function testRemove(): void
|
|
|
|
+ {
|
|
|
|
+ $this->markTestIncomplete();
|
|
|
|
+ $fixture = new Counter();
|
|
|
|
+ $fixture->setStartTime('Value');
|
|
|
|
+ $fixture->setEndTime('Value');
|
|
|
|
+ $fixture->setName('Value');
|
|
|
|
+ $fixture->setState('Value');
|
|
|
|
+ $fixture->setTimeToLive('Value');
|
|
|
|
+
|
|
|
|
+ $this->manager->persist($fixture);
|
|
|
|
+ $this->manager->flush();
|
|
|
|
+
|
|
|
|
+ $this->client->request('GET', sprintf('%s%s', $this->path, $fixture->getId()));
|
|
|
|
+ $this->client->submitForm('Delete');
|
|
|
|
+
|
|
|
|
+ self::assertResponseRedirects('/admin/');
|
|
|
|
+ self::assertSame(0, $this->repository->count([]));
|
|
|
|
+ }
|
|
|
|
+}
|