/
proc
/
self
/
cwd
/
olddevlok
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Testing
/
Concerns
/
Upload File
HOME
<?php namespace Illuminate\Foundation\Testing\Concerns; use Illuminate\Support\Arr; use Illuminate\Console\OutputStyle; use Illuminate\Contracts\Console\Kernel; use Illuminate\Foundation\Testing\PendingCommand; trait InteractsWithConsole { /** * Indicates if the console output should be mocked. * * @var bool */ public $mockConsoleOutput = true; /** * All of the expected output lines. * * @var array */ public $expectedOutput = []; /** * All of the expected questions. * * @var array */ public $expectedQuestions = []; /** * Call artisan command and return code. * * @param string $command * @param array $parameters * @return \Illuminate\Foundation\Testing\PendingCommand|int */ public function artisan($command, $parameters = []) { if (! $this->mockConsoleOutput) { return $this->app[Kernel::class]->call($command, $parameters); } $this->beforeApplicationDestroyed(function () { if (count($this->expectedQuestions)) { $this->fail('Question "'.Arr::first($this->expectedQuestions)[0].'" was not asked.'); } if (count($this->expectedOutput)) { $this->fail('Output "'.Arr::first($this->expectedOutput).'" was not printed.'); } }); return new PendingCommand($this, $this->app, $command, $parameters); } /** * Disable mocking the console output. * * @return $this */ protected function withoutMockingConsoleOutput() { $this->mockConsoleOutput = false; $this->app->offsetUnset(OutputStyle::class); return $this; } }