From 0bf99bb144561525a34a50315b95efd6f543fe35 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Sun, 22 Feb 2015 14:35:36 +0100 Subject: Improve install command & add test Also add fixtures for Config InstallCommand now check if database, schema are here and ask the user what to do (keep or trash & re-create) --- .../Tests/Command/InstallCommandTest.php | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/Wallabag/CoreBundle/Tests/Command/InstallCommandTest.php (limited to 'src/Wallabag/CoreBundle/Tests') diff --git a/src/Wallabag/CoreBundle/Tests/Command/InstallCommandTest.php b/src/Wallabag/CoreBundle/Tests/Command/InstallCommandTest.php new file mode 100644 index 00000000..6bcc9707 --- /dev/null +++ b/src/Wallabag/CoreBundle/Tests/Command/InstallCommandTest.php @@ -0,0 +1,61 @@ +setAutoExit(false); + + $code = $application->run(new ArrayInput(array( + 'command' => 'doctrine:fixtures:load', + '--no-interaction' => true, + '--env' => 'test', + )), new NullOutput()); + } + + public function testRunInstallCommand() + { + $this->container = static::$kernel->getContainer(); + + $application = new Application(static::$kernel); + $application->add(new InstallCommand()); + + $command = $application->find('wallabag:install'); + + // We mock the DialogHelper + $dialog = $this->getMockBuilder('Symfony\Component\Console\Helper\DialogHelper') + ->disableOriginalConstructor() + ->getMock(); + $dialog->expects($this->any()) + ->method('ask') + ->will($this->returnValue('test')); + $dialog->expects($this->any()) + ->method('askConfirmation') + ->will($this->returnValue(true)); + + // We override the standard helper with our mock + $command->getHelperSet()->set($dialog, 'dialog'); + + $tester = new CommandTester($command); + $tester->execute(array( + 'command' => $command->getName() + )); + + $this->assertContains('Step 1 of 4. Checking system requirements.', $tester->getDisplay()); + $this->assertContains('Step 2 of 4. Setting up database.', $tester->getDisplay()); + $this->assertContains('Step 3 of 4. Administration setup.', $tester->getDisplay()); + $this->assertContains('Step 4 of 4. Installing assets.', $tester->getDisplay()); + } +} -- cgit v1.2.3