]> git.immae.eu Git - github/wallabag/wallabag.git/blob - tests/Wallabag/UserBundle/EventListener/CreateConfigListenerTest.php
Merge pull request #2351 from wallabag/fix-api-client-deletion
[github/wallabag/wallabag.git] / tests / Wallabag / UserBundle / EventListener / CreateConfigListenerTest.php
1 <?php
2
3 namespace Tests\Wallabag\UserBundle\EventListener;
4
5 use FOS\UserBundle\Event\FilterUserResponseEvent;
6 use FOS\UserBundle\FOSUserEvents;
7 use Symfony\Component\EventDispatcher\EventDispatcher;
8 use Symfony\Component\HttpFoundation\Request;
9 use Symfony\Component\HttpFoundation\Response;
10 use Wallabag\CoreBundle\Entity\Config;
11 use Wallabag\UserBundle\EventListener\CreateConfigListener;
12 use Wallabag\UserBundle\Entity\User;
13
14 class CreateConfigListenerTest extends \PHPUnit_Framework_TestCase
15 {
16 private $em;
17 private $listener;
18 private $dispatcher;
19 private $request;
20 private $response;
21
22 protected function setUp()
23 {
24 $this->em = $this->getMockBuilder('Doctrine\ORM\EntityManager')
25 ->disableOriginalConstructor()
26 ->getMock();
27
28 $this->listener = new CreateConfigListener(
29 $this->em,
30 'baggy',
31 20,
32 50,
33 'fr',
34 1
35 );
36
37 $this->dispatcher = new EventDispatcher();
38 $this->dispatcher->addSubscriber($this->listener);
39
40 $this->request = Request::create('/');
41 $this->response = Response::create();
42 }
43
44 public function testWithValidUser()
45 {
46 $user = new User();
47 $user->setEnabled(true);
48
49 $event = new FilterUserResponseEvent(
50 $user,
51 $this->request,
52 $this->response
53 );
54
55 $config = new Config($user);
56 $config->setTheme('baggy');
57 $config->setItemsPerPage(20);
58 $config->setRssLimit(50);
59 $config->setLanguage('fr');
60 $config->setReadingSpeed(1);
61
62 $this->em->expects($this->once())
63 ->method('persist')
64 ->will($this->returnValue($config));
65 $this->em->expects($this->once())
66 ->method('flush');
67
68 $this->dispatcher->dispatch(
69 FOSUserEvents::REGISTRATION_COMPLETED,
70 $event
71 );
72 }
73 }