37 lines
1.3 KiB
PHP
37 lines
1.3 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
namespace Phred\Tasker\Tests;
|
||
|
|
|
||
|
|
use PHPUnit\Framework\TestCase;
|
||
|
|
use Phred\Tasker\ArgvParser;
|
||
|
|
|
||
|
|
class ArgvParserTest extends TestCase
|
||
|
|
{
|
||
|
|
public function testParseVerbosity(): void
|
||
|
|
{
|
||
|
|
$this->assertEquals(2, (new ArgvParser(['bin/tasker', '-v']))->getVerbosity());
|
||
|
|
$this->assertEquals(3, (new ArgvParser(['bin/tasker', '-vv']))->getVerbosity());
|
||
|
|
$this->assertEquals(4, (new ArgvParser(['bin/tasker', '-vvv']))->getVerbosity());
|
||
|
|
$this->assertEquals(0, (new ArgvParser(['bin/tasker', '-q']))->getVerbosity());
|
||
|
|
$this->assertEquals(0, (new ArgvParser(['bin/tasker', '--quiet']))->getVerbosity());
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testParseGlobalFlags(): void
|
||
|
|
{
|
||
|
|
$parser = new ArgvParser(['bin/tasker', '--no-interaction', '--no-ansi', '--help']);
|
||
|
|
$this->assertTrue($parser->isNoInteraction());
|
||
|
|
$this->assertTrue($parser->isNoAnsi());
|
||
|
|
$this->assertTrue($parser->isHelp());
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testParseCommandAndArguments(): void
|
||
|
|
{
|
||
|
|
$parser = new ArgvParser(['bin/tasker', '-v', 'my:command', 'arg1', 'arg2']);
|
||
|
|
$this->assertEquals('my:command', $parser->getCommandName());
|
||
|
|
$this->assertEquals(['arg1', 'arg2'], $parser->getRemainingArguments());
|
||
|
|
$this->assertEquals(2, $parser->getVerbosity());
|
||
|
|
}
|
||
|
|
}
|