Files
Enelix-Utils/tests/LibraryMetadataTest.php
T
dh 59eec738ab
Tests / test (push) Successful in 51s
chore(release): erste Beta vorbereiten
2026-09-29 06:25:29 +00:00

105 lines
4.0 KiB
PHP

<?php
declare(strict_types=1);
namespace Belevo\EnelixUtils\Tests;
use PHPUnit\Framework\TestCase;
final class LibraryMetadataTest extends TestCase
{
public function testLibraryJsonIstGueltigUndFuerSymcon80(): void
{
$inhalt = file_get_contents(__DIR__ . '/../library.json');
self::assertNotFalse($inhalt);
$daten = json_decode($inhalt, true, 512, JSON_THROW_ON_ERROR);
self::assertSame('Enelix Utils', $daten['name']);
self::assertSame('8.0', $daten['compatibility']['version']);
self::assertSame('0.1', $daten['version']);
self::assertSame(1, $daten['build']);
self::assertGreaterThan(0, $daten['date']);
self::assertMatchesRegularExpression('/^\{[0-9A-F-]{36}\}$/', $daten['id']);
}
public function testVerbrauchskostenreportHatNeutraleMetadaten(): void
{
$inhalt = file_get_contents(__DIR__ . '/../Verbrauchskostenreport/module.json');
self::assertNotFalse($inhalt);
$daten = json_decode($inhalt, true, 512, JSON_THROW_ON_ERROR);
self::assertSame('{9DAC29C7-F381-F2A4-7CE2-F391C4123F38}', $daten['id']);
self::assertSame('Verbrauchskostenreport', $daten['name']);
self::assertSame([], $daten['aliases']);
self::assertSame('VKR', $daten['prefix']);
self::assertSame(3, $daten['type']);
}
public function testVerbrauchskostenreportFormularIstGueltigesJson(): void
{
$inhalt = file_get_contents(__DIR__ . '/../Verbrauchskostenreport/form.json');
self::assertNotFalse($inhalt);
$daten = json_decode($inhalt, true, 512, JSON_THROW_ON_ERROR);
self::assertArrayHasKey('elements', $daten);
self::assertNotEmpty($daten['elements']);
}
public function testRequestActionSchreibtKeineDirekteAusgabe(): void
{
$inhalt = file_get_contents(__DIR__ . '/../Verbrauchskostenreport/module.php');
self::assertNotFalse($inhalt);
$anfang = strpos($inhalt, 'public function RequestAction');
$ende = strpos($inhalt, 'public function ProcessHookData');
self::assertNotFalse($anfang);
self::assertNotFalse($ende);
self::assertStringNotContainsString('echo ', substr($inhalt, $anfang, $ende - $anfang));
}
public function testQrZahlteilVerwendetStrukturierteAdressenUndAktuellesTcpdf(): void
{
$formular = file_get_contents(__DIR__ . '/../Verbrauchskostenreport/form.json');
$modul = file_get_contents(__DIR__ . '/../Verbrauchskostenreport/module.php');
$composer = json_decode(
file_get_contents(__DIR__ . '/../Verbrauchskostenreport/libs/composer.json'),
true,
512,
JSON_THROW_ON_ERROR
);
self::assertNotFalse($formular);
self::assertNotFalse($modul);
foreach (['CreditorStreet', 'CreditorBuildingNumber', 'CreditorPostalCode', 'CreditorTown', 'CreditorCountry'] as $feld) {
self::assertStringContainsString('"name": "' . $feld . '"', $formular);
}
self::assertStringContainsString("\$iban,\n 'S'", $modul);
self::assertStringNotContainsString("\$iban, 'K'", $modul);
self::assertSame('6.11.3', $composer['require']['tecnickcom/tcpdf']);
}
public function testVerbrauchskostenreportVerwendetNeutraleBegriffe(): void
{
$dateien = [
'/../README.md',
'/../docs/module/README.md',
'/../docs/module/Verbrauchskostenreport/README.md',
'/../Verbrauchskostenreport/README.md',
'/../Verbrauchskostenreport/form.json',
'/../Verbrauchskostenreport/module.json',
'/../Verbrauchskostenreport/module.php',
];
foreach ($dateien as $datei) {
$inhalt = file_get_contents(__DIR__ . $datei);
self::assertNotFalse($inhalt);
self::assertDoesNotMatchRegularExpression(
'/Abrechn|(^|[^A-Za-z])Rechnung([^A-Za-z]|$)|Invoice|Billing/i',
$inhalt,
$datei
);
}
}
}