]>
Commit | Line | Data |
---|---|---|
772d8c4b JB |
1 | <?php |
2 | ||
ca17abce | 3 | namespace Tests\Wallabag\UserBundle\EventListener; |
772d8c4b | 4 | |
619cc453 JB |
5 | use FOS\UserBundle\Event\FilterUserResponseEvent; |
6 | use FOS\UserBundle\FOSUserEvents; | |
bd91bd5c | 7 | use PHPUnit\Framework\TestCase; |
772d8c4b JB |
8 | use Symfony\Component\EventDispatcher\EventDispatcher; |
9 | use Symfony\Component\HttpFoundation\Request; | |
10 | use Symfony\Component\HttpFoundation\Response; | |
4d4147b2 JB |
11 | use Symfony\Component\HttpFoundation\Session\Session; |
12 | use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage; | |
772d8c4b | 13 | use Wallabag\CoreBundle\Entity\Config; |
0a878469 | 14 | use Wallabag\UserBundle\Entity\User; |
f808b016 | 15 | use Wallabag\UserBundle\EventListener\CreateConfigListener; |
772d8c4b | 16 | |
bd91bd5c | 17 | class CreateConfigListenerTest extends TestCase |
772d8c4b JB |
18 | { |
19 | private $em; | |
20 | private $listener; | |
21 | private $dispatcher; | |
22 | private $request; | |
23 | private $response; | |
24 | ||
25 | protected function setUp() | |
26 | { | |
4d4147b2 | 27 | $session = new Session(new MockArraySessionStorage()); |
772d8c4b JB |
28 | $this->em = $this->getMockBuilder('Doctrine\ORM\EntityManager') |
29 | ->disableOriginalConstructor() | |
30 | ->getMock(); | |
31 | ||
ca17abce | 32 | $this->listener = new CreateConfigListener( |
772d8c4b JB |
33 | $this->em, |
34 | 'baggy', | |
35 | 20, | |
36 | 50, | |
ca17abce | 37 | 'fr', |
24879db1 JB |
38 | 1, |
39 | 1, | |
4d4147b2 JB |
40 | 1, |
41 | $session | |
772d8c4b JB |
42 | ); |
43 | ||
44 | $this->dispatcher = new EventDispatcher(); | |
45 | $this->dispatcher->addSubscriber($this->listener); | |
46 | ||
47 | $this->request = Request::create('/'); | |
48 | $this->response = Response::create(); | |
49 | } | |
50 | ||
772d8c4b JB |
51 | public function testWithValidUser() |
52 | { | |
53 | $user = new User(); | |
54 | $user->setEnabled(true); | |
55 | ||
56 | $event = new FilterUserResponseEvent( | |
57 | $user, | |
58 | $this->request, | |
59 | $this->response | |
60 | ); | |
61 | ||
62 | $config = new Config($user); | |
63 | $config->setTheme('baggy'); | |
64 | $config->setItemsPerPage(20); | |
65 | $config->setRssLimit(50); | |
66 | $config->setLanguage('fr'); | |
ca17abce | 67 | $config->setReadingSpeed(1); |
772d8c4b JB |
68 | |
69 | $this->em->expects($this->once()) | |
70 | ->method('persist') | |
71 | ->will($this->returnValue($config)); | |
72 | $this->em->expects($this->once()) | |
73 | ->method('flush'); | |
74 | ||
75 | $this->dispatcher->dispatch( | |
ca17abce | 76 | FOSUserEvents::REGISTRATION_COMPLETED, |
772d8c4b JB |
77 | $event |
78 | ); | |
79 | } | |
80 | } |