* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Console\Tester; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Output\StreamOutput; /** * @author Amrouche Hamza * * @internal */ trait TesterTrait { /** @var StreamOutput */ private $output; private $inputs = array(); /** * Gets the display returned by the last execution of the command or application. * * @param bool $normalize Whether to normalize end of lines to \n or not * * @return string The display */ public function getDisplay($normalize = false) { rewind($this->output->getStream()); $display = stream_get_contents($this->output->getStream()); if ($normalize) { $display = str_replace(PHP_EOL, "\n", $display); } return $display; } /** * Gets the input instance used by the last execution of the command or application. * * @return InputInterface The current input instance */ public function getInput() { return $this->input; } /** * Gets the output instance used by the last execution of the command or application. * * @return OutputInterface The current output instance */ public function getOutput() { return $this->output; } /** * Gets the status code returned by the last execution of the command or application. * * @return int The status code */ public function getStatusCode() { return $this->statusCode; } /** * Sets the user inputs. * * @param $inputs array An array of strings representing each input * passed to the command input stream * * @return self */ public function setInputs(array $inputs) { $this->inputs = $inputs; return $this; } private static function createStream(array $inputs) { $stream = fopen('php://memory', 'r+', false); fwrite($stream, implode(PHP_EOL, $inputs)); rewind($stream); return $stream; } }