]> git.immae.eu Git - github/wallabag/wallabag.git/blob - tests/Wallabag/CoreBundle/Command/ShowUserCommandTest.php
Add show user command
[github/wallabag/wallabag.git] / tests / Wallabag / CoreBundle / Command / ShowUserCommandTest.php
1 <?php
2
3 namespace Tests\Wallabag\CoreBundle\Command;
4
5 use Symfony\Bundle\FrameworkBundle\Console\Application;
6 use Symfony\Component\Console\Tester\CommandTester;
7 use Wallabag\CoreBundle\Command\CleanDuplicatesCommand;
8 use Tests\Wallabag\CoreBundle\WallabagCoreTestCase;
9 use Wallabag\CoreBundle\Command\ShowUserCommand;
10 use Wallabag\CoreBundle\Entity\Entry;
11 use Wallabag\UserBundle\Entity\User;
12
13 class ShowUserCommandTest extends WallabagCoreTestCase
14 {
15 /**
16 * @expectedException \Symfony\Component\Console\Exception\RuntimeException
17 * @expectedExceptionMessage Not enough arguments
18 */
19 public function testRunShowUserCommandWithoutUsername()
20 {
21 $application = new Application($this->getClient()->getKernel());
22 $application->add(new ShowUserCommand());
23
24 $command = $application->find('wallabag:user:show');
25
26 $tester = new CommandTester($command);
27 $tester->execute([
28 'command' => $command->getName(),
29 ]);
30 }
31
32 public function testRunShowUserCommandWithBadUsername()
33 {
34 $application = new Application($this->getClient()->getKernel());
35 $application->add(new ShowUserCommand());
36
37 $command = $application->find('wallabag:user:show');
38
39 $tester = new CommandTester($command);
40 $tester->execute([
41 'command' => $command->getName(),
42 'username' => 'unknown',
43 ]);
44
45 $this->assertContains('User "unknown" not found', $tester->getDisplay());
46 }
47
48 public function testRunShowUserCommandForUser()
49 {
50 $application = new Application($this->getClient()->getKernel());
51 $application->add(new ShowUserCommand());
52
53 $command = $application->find('wallabag:user:show');
54
55 $tester = new CommandTester($command);
56 $tester->execute([
57 'command' => $command->getName(),
58 'username' => 'admin',
59 ]);
60
61 $this->assertContains('Username : admin', $tester->getDisplay());
62 $this->assertContains('Email : bigboss@wallabag.org', $tester->getDisplay());
63 $this->assertContains('Display name : Big boss', $tester->getDisplay());
64 $this->assertContains('2FA activated: false', $tester->getDisplay());
65 }
66
67 public function testShowUser()
68 {
69 $client = $this->getClient();
70 $em = $client->getContainer()->get('doctrine.orm.entity_manager');
71
72 $this->logInAs('admin');
73
74 /** @var User $user */
75 $user = $em->getRepository('WallabagUserBundle:User')->findOneById($this->getLoggedInUserId());
76
77 $user->setName('Bug boss');
78 $em->persist($user);
79
80 $em->flush();
81
82 $application = new Application($this->getClient()->getKernel());
83 $application->add(new ShowUserCommand());
84
85 $command = $application->find('wallabag:user:show');
86
87 $tester = new CommandTester($command);
88 $tester->execute([
89 'command' => $command->getName(),
90 'username' => 'admin',
91 ]);
92
93 $this->assertContains('Display name : Bug boss', $tester->getDisplay());
94 }
95 }