Tasker/tests/ArgvParserTest.php

37 lines
1.3 KiB
PHP
Raw Permalink Normal View History

<?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());
}
}