Files
monica/tests/Helpers/CommandCallerFake.php
T
Alexis Saettler a0096eb5a4 refactor: simplify commands exec and tests (#4662)
* refactor: simplify commands exec and tests

* Apply fixes from StyleCI

Co-authored-by: Alexis Saettler <asbiin@users.noreply.github.com>
2020-12-06 19:28:15 +00:00

48 lines
1.2 KiB
PHP

<?php
namespace Tests\Helpers;
use PHPUnit\Framework\Assert;
use App\Console\Commands\Helpers\CommandCallerContract;
class CommandCallerFake implements CommandCallerContract
{
/**
* @var \Illuminate\Support\Collection
*/
public $buffer;
/**
* Create a new CommandCallerTester.
*/
public function __construct()
{
$this->buffer = collect([]);
}
public function exec($command, $message, $commandline): void
{
$this->buffer->push(['message' => $message, 'command' => $commandline]);
}
public function artisan($command, $message, $commandline, array $arguments = []): void
{
$info = '';
foreach ($arguments as $key => $value) {
$info = $info.' '.$key.'='.$value;
}
$this->buffer->push(['message' =>$message, 'command' => 'php artisan '.$commandline.$info]);
}
/**
* Assert the command identified by a message has been launched.
*/
public function assertContainsMessage(string $message): void
{
$messages = $this->buffer->map(function ($line) {
return $line['message'];
});
Assert::assertContains($message, $messages);
}
}