| 
					
				 | 
			
			
				@@ -0,0 +1,131 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<?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([])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |