Add pear modules, mail and net_smtp via composer (#93)
Add pear modules, mail and net_smtp via composer, remove php 5.6 build due to phpunit 6
This commit is contained in:
@@ -13,6 +13,7 @@ use Consolidation\AnnotatedCommand\Hooks\ValidatorInterface;
|
||||
use Consolidation\AnnotatedCommand\Options\AlterOptionsCommandEvent;
|
||||
use Consolidation\AnnotatedCommand\Parser\CommandInfo;
|
||||
use Consolidation\OutputFormatters\FormatterManager;
|
||||
use Consolidation\TestUtils\TestTerminal;
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
@@ -21,6 +22,8 @@ use Symfony\Component\Console\Output\BufferedOutput;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Consolidation\TestUtils\ApplicationWithTerminalWidth;
|
||||
use Consolidation\AnnotatedCommand\Options\PrepareTerminalWidthOption;
|
||||
use Consolidation\AnnotatedCommand\Events\CustomEventAwareInterface;
|
||||
use Consolidation\AnnotatedCommand\Events\CustomEventAwareTrait;
|
||||
|
||||
/**
|
||||
* Do a test of all of the classes in this project, top-to-bottom.
|
||||
@@ -36,7 +39,7 @@ class FullStackTests extends \PHPUnit_Framework_TestCase
|
||||
$alterOptionsEventManager = new AlterOptionsCommandEvent($this->application);
|
||||
$eventDispatcher = new \Symfony\Component\EventDispatcher\EventDispatcher();
|
||||
$eventDispatcher->addSubscriber($this->commandFactory->commandProcessor()->hookManager());
|
||||
$eventDispatcher->addSubscriber($alterOptionsEventManager);
|
||||
$this->commandFactory->commandProcessor()->hookManager()->addCommandEvent($alterOptionsEventManager);
|
||||
$this->application->setDispatcher($eventDispatcher);
|
||||
$this->application->setAutoExit(false);
|
||||
}
|
||||
@@ -46,7 +49,7 @@ class FullStackTests extends \PHPUnit_Framework_TestCase
|
||||
$formatter = new FormatterManager();
|
||||
$formatter->addDefaultFormatters();
|
||||
$formatter->addDefaultSimplifiers();
|
||||
$commandInfo = new CommandInfo('\Consolidation\TestUtils\alpha\AlphaCommandFile', 'exampleTable');
|
||||
$commandInfo = CommandInfo::create('\Consolidation\TestUtils\alpha\AlphaCommandFile', 'exampleTable');
|
||||
$this->assertEquals('example:table', $commandInfo->getName());
|
||||
$this->assertEquals('\Consolidation\OutputFormatters\StructuredData\RowsOfFields', $commandInfo->getReturnType());
|
||||
}
|
||||
@@ -59,7 +62,13 @@ class FullStackTests extends \PHPUnit_Framework_TestCase
|
||||
$formatter->addDefaultSimplifiers();
|
||||
|
||||
$this->commandFactory->commandProcessor()->setFormatterManager($formatter);
|
||||
$commandInfo = $this->commandFactory->createCommandInfo($commandFileInstance, 'exampleTable');
|
||||
$this->assertAutomaticOptionsForCommand($commandFileInstance, 'exampleTable', 'example:table');
|
||||
$this->assertAutomaticOptionsForCommand($commandFileInstance, 'exampleTableTwo', 'example:table2');
|
||||
}
|
||||
|
||||
function assertAutomaticOptionsForCommand($commandFileInstance, $functionName, $commandName)
|
||||
{
|
||||
$commandInfo = $this->commandFactory->createCommandInfo($commandFileInstance, $functionName);
|
||||
|
||||
$command = $this->commandFactory->createCommand($commandInfo, $commandFileInstance);
|
||||
$this->application->add($command);
|
||||
@@ -69,7 +78,7 @@ class FullStackTests extends \PHPUnit_Framework_TestCase
|
||||
'--format[=FORMAT] Format the result data. Available formats: csv,json,list,php,print-r,sections,string,table,tsv,var_export,xml,yaml [default: "table"]',
|
||||
'--fields[=FIELDS] Available fields: I (first), II (second), III (third) [default: ""]',
|
||||
];
|
||||
$this->assertRunCommandViaApplicationContains('help example:table', $containsList);
|
||||
$this->assertRunCommandViaApplicationContains('help ' . $commandName, $containsList);
|
||||
}
|
||||
|
||||
function testCommandsAndHooks()
|
||||
@@ -92,18 +101,24 @@ class FullStackTests extends \PHPUnit_Framework_TestCase
|
||||
$formatter->addDefaultSimplifiers();
|
||||
$hookManager = new HookManager();
|
||||
$terminalWidthOption = new PrepareTerminalWidthOption();
|
||||
$terminalWidthOption->enableWrap(true);
|
||||
$terminalWidthOption->setApplication($this->application);
|
||||
$testTerminal = new TestTerminal(0);
|
||||
$terminalWidthOption->setTerminal($testTerminal);
|
||||
$commandProcessor = new CommandProcessor($hookManager);
|
||||
$commandProcessor->setFormatterManager($formatter);
|
||||
$commandProcessor->addPrepareFormatter($terminalWidthOption);
|
||||
|
||||
// Create a new factory, and load all of the files
|
||||
// discovered above. The command factory class is
|
||||
// tested in isolation in testAnnotatedCommandFactory.php,
|
||||
// but this is the only place where
|
||||
// discovered above.
|
||||
$factory = new AnnotatedCommandFactory();
|
||||
$factory->setCommandProcessor($commandProcessor);
|
||||
// $factory->addListener(...);
|
||||
// Add a listener to configure our command handler object
|
||||
$factory->addListernerCallback(function($command) use($hookManager) {
|
||||
if ($command instanceof CustomEventAwareInterface) {
|
||||
$command->setHookManager($hookManager);
|
||||
}
|
||||
} );
|
||||
$factory->setIncludeAllPublicMethods(false);
|
||||
$this->addDiscoveredCommands($factory, $commandFiles);
|
||||
|
||||
@@ -112,6 +127,12 @@ class FullStackTests extends \PHPUnit_Framework_TestCase
|
||||
$this->assertTrue($this->application->has('example:table'));
|
||||
$this->assertFalse($this->application->has('without:annotations'));
|
||||
|
||||
// Run the use:event command that defines a custom event, my-event.
|
||||
$this->assertRunCommandViaApplicationEquals('use:event', 'one,two');
|
||||
// Watch as we dynamically add a custom event to the hook manager to change the command results:
|
||||
$hookManager->add(function () { return 'three'; }, HookManager::ON_EVENT, 'my-event');
|
||||
$this->assertRunCommandViaApplicationEquals('use:event', 'one,three,two');
|
||||
|
||||
// Fetch a reference to the 'example:table' command and test its valid format types
|
||||
$exampleTableCommand = $this->application->find('example:table');
|
||||
$returnType = $exampleTableCommand->getReturnType();
|
||||
@@ -238,20 +259,21 @@ EOT;
|
||||
$this->assertRunCommandViaApplicationEquals('example:wrap', $expectedUnwrappedOutput);
|
||||
|
||||
$expectedWrappedOutput = <<<EOT
|
||||
------------------- --------------------
|
||||
First Second
|
||||
------------------- --------------------
|
||||
This is a really This is the second
|
||||
long cell that column of the same
|
||||
contains a lot of table. It is also
|
||||
data. When it is very long, and
|
||||
rendered, it should be wrapped
|
||||
should be wrapped across multiple
|
||||
across multiple lines, just like
|
||||
lines. the first column.
|
||||
------------------- --------------------
|
||||
------------------ --------------------
|
||||
First Second
|
||||
------------------ --------------------
|
||||
This is a really This is the second
|
||||
long cell that column of the same
|
||||
contains a lot table. It is also
|
||||
of data. When it very long, and
|
||||
is rendered, it should be wrapped
|
||||
should be across multiple
|
||||
wrapped across lines, just like
|
||||
multiple lines. the first column.
|
||||
------------------ --------------------
|
||||
EOT;
|
||||
$this->application->setWidthAndHeight(42, 24);
|
||||
$testTerminal->setWidth(42);
|
||||
$this->assertRunCommandViaApplicationEquals('example:wrap', $expectedWrappedOutput);
|
||||
}
|
||||
|
||||
@@ -333,7 +355,7 @@ EOT;
|
||||
$allRegisteredHooks = $hookManager->getAllHooks();
|
||||
$registeredHookNames = array_keys($allRegisteredHooks);
|
||||
sort($registeredHookNames);
|
||||
$this->assertEquals('*,example:table', implode(',', $registeredHookNames));
|
||||
$this->assertEquals('*,example:table,my-event', implode(',', $registeredHookNames));
|
||||
$allHooksForExampleTable = $allRegisteredHooks['example:table'];
|
||||
$allHookPhasesForExampleTable = array_keys($allHooksForExampleTable);
|
||||
sort($allHookPhasesForExampleTable);
|
||||
@@ -443,7 +465,7 @@ EOT;
|
||||
|
||||
function simplifyWhitespace($data)
|
||||
{
|
||||
return trim(preg_replace('#[ \t]+$#m', '', $data));
|
||||
return trim(preg_replace('#\s+$#m', '', $data));
|
||||
}
|
||||
|
||||
function callProtected($object, $method, $args = [])
|
||||
|
||||
Reference in New Issue
Block a user