Example #1
0
 public function testString()
 {
     $command = new \Smalot\Commander\Command('/usr/folder with space/apt');
     $command->addParam('param1');
     $command->addFlag('v');
     $command->addParam('param2');
     $this->assert->string((string) $command)->isEqualTo("'/usr/folder with space/apt' -v 'param1' 'param2'");
     $command = new \Smalot\Commander\Command('git');
     $command->addSubCommand('commit');
     $command->addFlag('m', 'message for commit');
     $this->assert->string((string) $command)->isEqualTo("'git' 'commit' -m 'message for commit'");
     $command = new \Smalot\Commander\Command('git');
     $command->addSubCommand('commit');
     $command->addFlag('m', 'message for commit');
     $this->assert->string((string) $command)->isEqualTo("'git' 'commit' -m 'message for commit'");
     $command = new \Smalot\Commander\Command('git');
     $command->addSubCommand('commit');
     $command->addArgument('interactive');
     $command->addFlag('m', 'message for commit');
     $this->assert->string((string) $command)->isEqualTo("'git' 'commit' --interactive -m 'message for commit'");
 }
Example #2
0
 public function testRun()
 {
     $runner = new \Smalot\Commander\Runner\ProcOpen();
     $runner->addEnvironmentVariable('HOME', '/home/username');
     // Commande OK !
     $command = new \Smalot\Commander\Command('ls');
     $command->addFlag('a');
     $command->addFlag('l');
     $command->addParam('/tmp');
     $runner->run($command, 1);
     $this->assert->integer($runner->getReturnCode())->isEqualTo(0);
     $this->assert->float($runner->getDuration())->isGreaterThan(0);
     $this->assert->float($runner->getDuration())->isLessThan(2);
     $this->assert->string($runner->getOutput())->contains('total');
     $this->assert->string($runner->getError())->isEqualTo('');
     // Check environment variable.
     $command = new \Smalot\Commander\Command('echo');
     $command->addParam('$HOME');
     $runner->run($command, 1);
     $this->assert->integer($runner->getReturnCode())->isEqualTo(0);
     $this->assert->float($runner->getDuration())->isLessThan(1);
     $this->assert->string($runner->getOutput())->isEqualTo('/home/username' . PHP_EOL);
     $this->assert->string($runner->getError())->isEqualTo('');
     // Timeout !
     $command = new \Smalot\Commander\Command('sleep');
     $command->addParam('10');
     $this->assert->exception(function () use($runner, $command) {
         $runner->run($command, 1);
     })->isInstanceOf('\\Smalot\\Commander\\Runner\\TimeoutException');
     // Unknown command line.
     $command = new \Smalot\Commander\Command('foobar');
     $command->addParam('-v');
     $runner->run($command, 1);
     $this->assert->integer($runner->getReturnCode())->isEqualTo(127);
     $this->assert->float($runner->getDuration())->isLessThan(1);
     $this->assert->string($runner->getOutput())->isEqualTo('');
     $this->assert->string($runner->getError())->contains('foobar')->contains('not found');
 }