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