framework/tests/integration/extenders/ConsoleTest.php
Alexander Skvortsov 345ad4bc6d
Add console extender (#2057)
* Made the console command system extender-friendly

* Added console extender

* Added ConsoleTestCase to integration tests

* Added integration tests for console extender

* Marked event-based console extension system as deprecated

* Moved trimming command output of whitespace into superclass

* Renamed 'add' to 'command'

* Added special processing for laravel commands

* Code style fixes

* More style fixes

* Fixed $this->container
2020-04-03 19:38:54 +02:00

66 lines
1.3 KiB
PHP

<?php
/*
* This file is part of Flarum.
*
* For detailed copyright and license information, please view the
* LICENSE file that was distributed with this source code.
*/
namespace Flarum\Tests\integration\extenders;
use Flarum\Console\AbstractCommand;
use Flarum\Extend;
use Flarum\Tests\integration\ConsoleTestCase;
class ConsoleTest extends ConsoleTestCase
{
/**
* @test
*/
public function custom_command_doesnt_exist_by_default()
{
$input = [
'command' => 'customTestCommand'
];
$this->assertEquals('Command "customTestCommand" is not defined.', $this->runCommand($input));
}
/**
* @test
*/
public function custom_command_exists_when_added()
{
$this->extend(
(new Extend\Console())
->command(CustomCommand::class)
);
$input = [
'command' => 'customTestCommand'
];
$this->assertEquals('Custom Command.', $this->runCommand($input));
}
}
class CustomCommand extends AbstractCommand
{
/**
* {@inheritdoc}
*/
protected function configure()
{
$this->setName('customTestCommand');
}
/**
* {@inheritdoc}
*/
protected function fire()
{
$this->info('Custom Command.');
}
}