Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/PHPUnit/Framework/TestCase/ConsoleCommandTestCase.php')
-rw-r--r--tests/PHPUnit/Framework/TestCase/ConsoleCommandTestCase.php56
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/PHPUnit/Framework/TestCase/ConsoleCommandTestCase.php b/tests/PHPUnit/Framework/TestCase/ConsoleCommandTestCase.php
new file mode 100644
index 0000000000..eb2805397e
--- /dev/null
+++ b/tests/PHPUnit/Framework/TestCase/ConsoleCommandTestCase.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+namespace Piwik\Tests\Framework\TestCase;
+
+use Piwik\Config;
+use Piwik\Console;
+use Symfony\Component\Console\Tester\ApplicationTester;
+
+/**
+ * Base class for test cases that test Piwik console commands. Derives from SystemTestCase
+ * so the entire Piwik environment is set up.
+ *
+ * This will create an ApplicationTester instance (provided by Symfony) which should be used to
+ * test commands like this:
+ *
+ * public function testThisAndThat()
+ * {
+ * $result = $this->applicationTester->run(array(
+ * 'command' => 'my-command',
+ * 'arg1' => 'value1',
+ * 'arg2' => 'value2',
+ * '--option' => true,
+ * '--another-option' => 'value3'
+ * ));
+ * $this->assertEquals(0, $result, $this->getCommandDisplayOutputErrorMessage());
+ *
+ * // other checks
+ * }
+ */
+class ConsoleCommandTestCase extends SystemTestCase
+{
+ protected $applicationTester = null;
+
+ public function setUp()
+ {
+ parent::setUp();
+
+ $application = new Console();
+ $application->setAutoExit(false);
+
+ $this->applicationTester = new ApplicationTester($application);
+
+ Config::unsetInstance();
+ }
+
+ protected function getCommandDisplayOutputErrorMessage()
+ {
+ return "Command did not behave as expected. Command output: " . $this->applicationTester->getDisplay();
+ }
+} \ No newline at end of file