123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- namespace App\Tests\Controller;
- use App\Entity\Article;
- use Doctrine\ORM\EntityManagerInterface;
- use Doctrine\ORM\EntityRepository;
- use Symfony\Bundle\FrameworkBundle\KernelBrowser;
- use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
- final class ArticleControllerTest extends WebTestCase
- {
- private KernelBrowser $client;
- private EntityManagerInterface $manager;
- private EntityRepository $repository;
- private string $path = '/article/';
- protected function setUp(): void
- {
- $this->client = static::createClient();
- $this->manager = static::getContainer()->get('doctrine')->getManager();
- $this->repository = $this->manager->getRepository(Article::class);
- foreach ($this->repository->findAll() as $object) {
- $this->manager->remove($object);
- }
- $this->manager->flush();
- }
- public function testIndex(): void
- {
- $this->client->followRedirects();
- $crawler = $this->client->request('GET', $this->path);
- self::assertResponseStatusCodeSame(200);
- self::assertPageTitleContains('Article 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', [
- 'article[title]' => 'Testing',
- 'article[publicationDate]' => 'Testing',
- 'article[content]' => 'Testing',
- 'article[author]' => 'Testing',
- ]);
- self::assertResponseRedirects($this->path);
- self::assertSame(1, $this->repository->count([]));
- }
- public function testShow(): void
- {
- $this->markTestIncomplete();
- $fixture = new Article();
- $fixture->setTitle('My Title');
- $fixture->setPublicationDate('My Title');
- $fixture->setContent('My Title');
- $fixture->setAuthor('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('Article');
- // Use assertions to check that the properties are properly displayed.
- }
- public function testEdit(): void
- {
- $this->markTestIncomplete();
- $fixture = new Article();
- $fixture->setTitle('Value');
- $fixture->setPublicationDate('Value');
- $fixture->setContent('Value');
- $fixture->setAuthor('Value');
- $this->manager->persist($fixture);
- $this->manager->flush();
- $this->client->request('GET', sprintf('%s%s/edit', $this->path, $fixture->getId()));
- $this->client->submitForm('Update', [
- 'article[title]' => 'Something New',
- 'article[publicationDate]' => 'Something New',
- 'article[content]' => 'Something New',
- 'article[author]' => 'Something New',
- ]);
- self::assertResponseRedirects('/article/');
- $fixture = $this->repository->findAll();
- self::assertSame('Something New', $fixture[0]->getTitle());
- self::assertSame('Something New', $fixture[0]->getPublicationDate());
- self::assertSame('Something New', $fixture[0]->getContent());
- self::assertSame('Something New', $fixture[0]->getAuthor());
- }
- public function testRemove(): void
- {
- $this->markTestIncomplete();
- $fixture = new Article();
- $fixture->setTitle('Value');
- $fixture->setPublicationDate('Value');
- $fixture->setContent('Value');
- $fixture->setAuthor('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('/article/');
- self::assertSame(0, $this->repository->count([]));
- }
- }
|