Added test commands

This commit is contained in:
Constantin Graf
2024-04-12 11:49:31 +02:00
parent 6e2d0739ef
commit e3cc613477
4 changed files with 157 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
<?php
declare(strict_types=1);
namespace App\Console\Commands\Test;
use Illuminate\Console\Command;
use Illuminate\Mail\Message;
use Illuminate\Support\Facades\Mail;
class TestEmailCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'test:email { email : Email address to send the email to }';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This test command sends an email.';
/**
* Execute the console command.
*/
public function handle(): int
{
$email = $this->argument('email');
Mail::raw('Hello World!', function (Message $message) use ($email): void {
$message->to($email)
->subject('Test Email')
->html('<h1>Hello World!</h1>');
});
return self::SUCCESS;
}
}

View File

@@ -0,0 +1,37 @@
<?php
declare(strict_types=1);
namespace App\Console\Commands\Test;
use App\Jobs\Test\TestJob;
use App\Models\User;
use Illuminate\Console\Command;
class TestJobCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'test:job';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This test command start an async job.';
/**
* Execute the console command.
*/
public function handle(): int
{
$user = User::first();
TestJob::dispatch($user, 'Test job message.');
return self::SUCCESS;
}
}

View File

@@ -0,0 +1,35 @@
<?php
declare(strict_types=1);
namespace App\Console\Commands\Test;
use Illuminate\Console\Command;
class TestOutputCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'test:output';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This test command outputs some text.';
/**
* Execute the console command.
*/
public function handle(): int
{
$this->info('Test command output');
$this->error('Test command output error');
return self::SUCCESS;
}
}

44
app/Jobs/Test/TestJob.php Normal file
View File

@@ -0,0 +1,44 @@
<?php
declare(strict_types=1);
namespace App\Jobs\Test;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class TestJob implements ShouldQueue
{
use Dispatchable;
use InteractsWithQueue;
use Queueable;
use SerializesModels;
private User $user;
private string $message;
/**
* Create a new job instance.
*/
public function __construct(User $user, string $message)
{
$this->user = $user;
$this->message = $message;
}
/**
* Execute the job.
*/
public function handle(): void
{
Log::debug('TestJob: '.$this->message, [
'user' => $this->user->getKey(),
]);
}
}