This commit is contained in:
@@ -8,28 +8,28 @@ use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class DokumentationsstrukturTest extends TestCase
|
||||
{
|
||||
/** @return list<string> */
|
||||
/** @return array<string, array{string, string}> */
|
||||
public function modulReadmes(): array
|
||||
{
|
||||
return [
|
||||
'Abrechnungsmanager',
|
||||
'Virtuelle-Batterie',
|
||||
'CC100-Hardware',
|
||||
'Energiediagramm',
|
||||
'VGT-Schnittstelle',
|
||||
'Shelly-Modul',
|
||||
'Verbrauchskostenreport' => ['Verbrauchskostenreport', 'Status: Implementiert'],
|
||||
'Virtuelle Batterie' => ['Virtuelle-Batterie', 'Status: Diskussionsentwurf'],
|
||||
'CC100 Hardware' => ['CC100-Hardware', 'Status: Diskussionsentwurf'],
|
||||
'Energiediagramm' => ['Energiediagramm', 'Status: Diskussionsentwurf'],
|
||||
'VGT-Schnittstelle' => ['VGT-Schnittstelle', 'Status: Diskussionsentwurf'],
|
||||
'Shelly-Modul' => ['Shelly-Modul', 'Status: Diskussionsentwurf'],
|
||||
];
|
||||
}
|
||||
|
||||
/** @dataProvider modulReadmes */
|
||||
public function testJederModulentwurfHatEinReadme(string $modul): void
|
||||
public function testJedesModulHatEinReadmeMitErwartetemStatus(string $modul, string $status): void
|
||||
{
|
||||
$pfad = __DIR__ . '/../docs/module/' . $modul . '/README.md';
|
||||
self::assertFileExists($pfad);
|
||||
|
||||
$inhalt = file_get_contents($pfad);
|
||||
self::assertNotFalse($inhalt);
|
||||
self::assertStringContainsString('Status: Diskussionsentwurf', $inhalt);
|
||||
self::assertStringContainsString($status, $inhalt);
|
||||
self::assertStringContainsString('Properties', $inhalt);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,5 +18,63 @@ final class LibraryMetadataTest extends TestCase
|
||||
self::assertSame('8.0', $daten['compatibility']['version']);
|
||||
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 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
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user