]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Tests/Command/InstallCommandTest.php
Move setup config outside setupAdmin
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Tests / Command / InstallCommandTest.php
index e3ff47c0eedaf1b27efc72037c7be468726631bb..bd61f750aba1b00ccd3a01c4e9f86e0f4dbc2c7d 100644 (file)
@@ -2,18 +2,36 @@
 
 namespace Wallabag\CoreBundle\Tests\Command;
 
-use Wallabag\CoreBundle\Tests\WallabagCoreTestCase;
-use Wallabag\CoreBundle\Command\InstallCommand;
-use Wallabag\CoreBundle\Tests\Mock\InstallCommandMock;
+use Doctrine\Bundle\DoctrineBundle\Command\CreateDatabaseDoctrineCommand;
+use Doctrine\Bundle\DoctrineBundle\Command\DropDatabaseDoctrineCommand;
 use Symfony\Bundle\FrameworkBundle\Console\Application;
-use Symfony\Component\Console\Tester\CommandTester;
 use Symfony\Component\Console\Input\ArrayInput;
 use Symfony\Component\Console\Output\NullOutput;
-use Doctrine\Bundle\DoctrineBundle\Command\DropDatabaseDoctrineCommand;
-use Doctrine\Bundle\DoctrineBundle\Command\CreateDatabaseDoctrineCommand;
+use Symfony\Component\Console\Tester\CommandTester;
+use Wallabag\CoreBundle\Command\InstallCommand;
+use Wallabag\CoreBundle\Tests\Mock\InstallCommandMock;
+use Wallabag\CoreBundle\Tests\WallabagCoreTestCase;
 
 class InstallCommandTest extends WallabagCoreTestCase
 {
+    public function setUp()
+    {
+        parent::setUp();
+
+        if ($this->getClient()->getContainer()->get('doctrine')->getConnection()->getDriver() instanceof \Doctrine\DBAL\Driver\PDOPgSql\Driver) {
+            /*
+             * LOG:  statement: CREATE DATABASE "wallabag"
+             * ERROR:  source database "template1" is being accessed by other users
+             * DETAIL:  There is 1 other session using the database.
+             * STATEMENT:  CREATE DATABASE "wallabag"
+             * FATAL:  database "wallabag" does not exist
+             *
+             * http://stackoverflow.com/a/14374832/569101
+             */
+            $this->markTestSkipped('PostgreSQL spotted: can find a good way to drop current database, skipping.');
+        }
+    }
+
     public static function tearDownAfterClass()
     {
         $application = new Application(static::$kernel);
@@ -49,10 +67,11 @@ class InstallCommandTest extends WallabagCoreTestCase
             '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());
+        $this->assertContains('Checking system requirements.', $tester->getDisplay());
+        $this->assertContains('Setting up database.', $tester->getDisplay());
+        $this->assertContains('Administration setup.', $tester->getDisplay());
+        $this->assertContains('Config setup.', $tester->getDisplay());
+        $this->assertContains('Installing assets.', $tester->getDisplay());
     }
 
     public function testRunInstallCommandWithReset()
@@ -79,10 +98,12 @@ class InstallCommandTest extends WallabagCoreTestCase
             '--reset' => true,
         ));
 
-        $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());
+        $this->assertContains('Checking system requirements.', $tester->getDisplay());
+        $this->assertContains('Setting up database.', $tester->getDisplay());
+        $this->assertContains('Droping database, creating database and schema, clearing the cache', $tester->getDisplay());
+        $this->assertContains('Administration setup.', $tester->getDisplay());
+        $this->assertContains('Config setup.', $tester->getDisplay());
+        $this->assertContains('Installing assets.', $tester->getDisplay());
 
         // we force to reset everything
         $this->assertContains('Droping database, creating database and schema, clearing the cache', $tester->getDisplay());
@@ -90,19 +111,6 @@ class InstallCommandTest extends WallabagCoreTestCase
 
     public function testRunInstallCommandWithDatabaseRemoved()
     {
-        if ($this->getClient()->getContainer()->get('doctrine')->getConnection()->getDriver() instanceOf \Doctrine\DBAL\Driver\PDOPgSql\Driver) {
-            /**
-             * LOG:  statement: CREATE DATABASE "wallabag"
-             * ERROR:  source database "template1" is being accessed by other users
-             * DETAIL:  There is 1 other session using the database.
-             * STATEMENT:  CREATE DATABASE "wallabag"
-             * FATAL:  database "wallabag" does not exist
-             *
-             * http://stackoverflow.com/a/14374832/569101
-             */
-            $this->markTestSkipped('PostgreSQL spotted: can find a good way to drop current database, skipping.');
-        }
-
         $application = new Application($this->getClient()->getKernel());
         $application->add(new DropDatabaseDoctrineCommand());
 
@@ -136,10 +144,11 @@ class InstallCommandTest extends WallabagCoreTestCase
             '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());
+        $this->assertContains('Checking system requirements.', $tester->getDisplay());
+        $this->assertContains('Setting up database.', $tester->getDisplay());
+        $this->assertContains('Administration setup.', $tester->getDisplay());
+        $this->assertContains('Config setup.', $tester->getDisplay());
+        $this->assertContains('Installing assets.', $tester->getDisplay());
 
         // the current database doesn't already exist
         $this->assertContains('Creating database and schema, clearing the cache', $tester->getDisplay());
@@ -173,29 +182,17 @@ class InstallCommandTest extends WallabagCoreTestCase
             '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());
+        $this->assertContains('Checking system requirements.', $tester->getDisplay());
+        $this->assertContains('Setting up database.', $tester->getDisplay());
+        $this->assertContains('Administration setup.', $tester->getDisplay());
+        $this->assertContains('Config setup.', $tester->getDisplay());
+        $this->assertContains('Installing assets.', $tester->getDisplay());
 
         $this->assertContains('Droping schema and creating schema', $tester->getDisplay());
     }
 
     public function testRunInstallCommandChooseNothing()
     {
-        if ($this->getClient()->getContainer()->get('doctrine')->getConnection()->getDriver() instanceOf \Doctrine\DBAL\Driver\PDOPgSql\Driver) {
-            /**
-             * LOG:  statement: CREATE DATABASE "wallabag"
-             * ERROR:  source database "template1" is being accessed by other users
-             * DETAIL:  There is 1 other session using the database.
-             * STATEMENT:  CREATE DATABASE "wallabag"
-             * FATAL:  database "wallabag" does not exist
-             *
-             * http://stackoverflow.com/a/14374832/569101
-             */
-            $this->markTestSkipped('PostgreSQL spotted: can find a good way to drop current database, skipping.');
-        }
-
         $application = new Application($this->getClient()->getKernel());
         $application->add(new InstallCommand());
         $application->add(new DropDatabaseDoctrineCommand());
@@ -240,10 +237,11 @@ class InstallCommandTest extends WallabagCoreTestCase
             '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());
+        $this->assertContains('Checking system requirements.', $tester->getDisplay());
+        $this->assertContains('Setting up database.', $tester->getDisplay());
+        $this->assertContains('Administration setup.', $tester->getDisplay());
+        $this->assertContains('Config setup.', $tester->getDisplay());
+        $this->assertContains('Installing assets.', $tester->getDisplay());
 
         $this->assertContains('Creating schema', $tester->getDisplay());
     }
@@ -272,9 +270,10 @@ class InstallCommandTest extends WallabagCoreTestCase
             '--no-interaction' => true,
         ));
 
-        $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());
+        $this->assertContains('Checking system requirements.', $tester->getDisplay());
+        $this->assertContains('Setting up database.', $tester->getDisplay());
+        $this->assertContains('Administration setup.', $tester->getDisplay());
+        $this->assertContains('Config setup.', $tester->getDisplay());
+        $this->assertContains('Installing assets.', $tester->getDisplay());
     }
 }