chore: complete update

This commit is contained in:
2025-07-17 16:24:20 +02:00
parent 899227b0a4
commit 64a7051137
1300 changed files with 85570 additions and 2756 deletions

62
tests/Unit/QrCodeTest.php Normal file
View File

@@ -0,0 +1,62 @@
<?php
declare(strict_types=1);
use App\Application\Service\QrCodeService;
use App\Domain\QrCode\Exception\QrCodeException;
use App\Domain\QrCode\QrCode;
use App\Domain\QrCode\ValueObject\ErrorCorrectionLevel;
use App\Domain\QrCode\ValueObject\QrCodeVersion;
test('QR-Code kann mit grundlegenden Daten erstellt werden', function () {
$qrCode = new QrCode('Hallo Welt');
expect($qrCode->getData())->toBe('Hallo Welt');
expect($qrCode->getErrorCorrectionLevel())->toBe(ErrorCorrectionLevel::M);
});
test('QR-Code wirft eine Exception bei leeren Daten', function () {
expect(fn() => new QrCode(''))->toThrow(QrCodeException::class);
});
test('QR-Code kann als SVG generiert werden', function () {
$service = new QrCodeService();
$svg = $service->generateSvg('Test');
expect($svg)->toContain('<svg');
expect($svg)->toContain('</svg>');
expect($svg)->toContain('fill="black"');
});
test('QR-Code kann als PNG generiert werden', function () {
$service = new QrCodeService();
$png = $service->generatePng('Test');
expect($png)->toStartWith("\x89PNG");
});
test('QR-Code kann als ASCII-Art generiert werden', function () {
$service = new QrCodeService();
$ascii = $service->generateAscii('Test');
expect($ascii)->toBeString();
expect(strlen($ascii))->toBeGreaterThan(100);
});
test('Fehlerkorrekturlevel beeinflusst die Generierung', function () {
$service = new QrCodeService();
$lowMatrix = $service->generateQrCode('Test', ErrorCorrectionLevel::L);
$highMatrix = $service->generateQrCode('Test', ErrorCorrectionLevel::H);
expect($lowMatrix->getSize())->toBeGreaterThan(0);
expect($highMatrix->getSize())->toBeGreaterThan(0);
});
test('QR-Code-Version bestimmt die Größe', function () {
$version1 = new QrCodeVersion(1);
$version10 = new QrCodeVersion(10);
expect($version1->getSize())->toBe(21);
expect($version10->getSize())->toBe(57);
});