3968289819ae888a5c38f0dff99a19241e06871a
[pharext/pharext] / tests / src / pharext / CliCommandTest.php
1 <?php
2
3 namespace pharext;
4
5 require __DIR__."/../../autoload.php";
6
7 use pharext\Cli\Args as CliArgs;
8 use pharext\Cli\Command as CliCommand;
9
10 class CliCommandTest extends \PHPUnit_Framework_TestCase
11 {
12 use CliCommand;
13
14 /**
15 * @var array
16 */
17 protected $spec;
18
19 protected function setUp() {
20 $this->spec = [
21 ["h", "help", "Display help",
22 CliArgs::OPTIONAL|CliArgs::SINGLE|CliArgs::NOARG|CliArgs::HALT],
23 ["v", "verbose", "More output",
24 CliArgs::OPTIONAL|CliArgs::SINGLE|CliArgs::NOARG],
25 ["q", "quiet", "Less output",
26 CliArgs::OPTIONAL|CliArgs::SINGLE|CliArgs::NOARG],
27 ["p", "prefix", "PHP installation prefix if phpize is not in \$PATH, e.g. /opt/php7",
28 CliArgs::OPTIONAL|CliArgs::SINGLE|CliArgs::REQARG],
29 ["n", "common-name", "PHP common program name, e.g. php5 or zts-php",
30 CliArgs::OPTIONAL|CliArgs::SINGLE|CliArgs::REQARG,
31 "php"],
32 ["c", "configure", "Additional extension configure flags, e.g. -c --with-flag",
33 CliArgs::OPTIONAL|CliArgs::MULTI|CliArgs::REQARG],
34 ["s", "sudo", "Installation might need increased privileges",
35 CliArgs::OPTIONAL|CliArgs::SINGLE|CliArgs::OPTARG,
36 "sudo -S %s"]
37 ];
38 $this->args = new CliArgs($this->spec);
39 }
40
41 public function testHelp() {
42 $this->expectOutputString(<<<EOF
43 Usage:
44
45 $ testprog [-hvqs] [-p|-n|-c <arg>]
46
47 -h|--help Display help
48 -v|--verbose More output
49 -q|--quiet Less output
50 -p|--prefix <arg> PHP installation prefix if phpize is not in \$PATH, e.g. /opt/php7
51 -n|--common-name <arg> PHP common program name, e.g. php5 or zts-php [php]
52 -c|--configure <arg> Additional extension configure flags, e.g. -c --with-flag
53 -s|--sudo [<arg>] Installation might need increased privileges [sudo -S %s]
54
55
56 EOF
57 );
58 $this->help("testprog");
59 }
60 }