Wassererwaermer-Konfiguration vereinfachen
Tests / test (push) Successful in 46s

This commit is contained in:
dh
2026-09-17 08:29:49 +00:00
parent 9869d99641
commit 4514ccb557
8 changed files with 312 additions and 277 deletions
+21 -4
View File
@@ -29,17 +29,29 @@ final class VerbraucherBasisTraitTest extends TestCase
[
'Aktiv',
'Istleistung',
'Leistungsquelle',
'Sollleistung',
'SollwertGueltig',
'Verfuegbar',
'AenderungMoeglich',
'Stoerung',
'Stoertext',
],
array_keys($modul->variablen)
);
self::assertSame(['Aktiv'], $modul->aktionen);
$modul->registriereDiagnose();
self::assertSame(
[
'Aktiv',
'Istleistung',
'Sollleistung',
'Stoerung',
'Stoertext',
'Leistungsquelle',
'SollwertGueltig',
'Verfuegbar',
'AenderungMoeglich',
],
array_keys($modul->variablen)
);
}
}
@@ -61,6 +73,11 @@ final class VerbraucherBasisDummy
$this->registriereVerbraucherBasis();
}
public function registriereDiagnose(): void
{
$this->registriereVerbraucherDiagnose();
}
public function RegisterPropertyInteger(string $ident, int $standard): void
{
$this->properties[$ident] = $standard;
+20
View File
@@ -79,4 +79,24 @@ final class WarmwasserReglerTest extends TestCase
);
self::assertSame(55.0, $eintrag['Solltemperatur']);
}
public function testLegionellenschaltungHebtTemperaturgrenzenZweistufigAn(): void
{
self::assertSame(
[45.0, 60.0],
WarmwasserRegler::legionellenTemperaturgrenzen(true, 3 * 86400, 4, 7, 45.0, 60.0, 65.0)
);
self::assertSame(
[45.0, 65.0],
WarmwasserRegler::legionellenTemperaturgrenzen(true, 4 * 86400, 4, 7, 45.0, 60.0, 65.0)
);
self::assertSame(
[65.0, 65.0],
WarmwasserRegler::legionellenTemperaturgrenzen(true, 7 * 86400, 4, 7, 45.0, 60.0, 65.0)
);
self::assertSame(
[45.0, 60.0],
WarmwasserRegler::legionellenTemperaturgrenzen(false, 8 * 86400, 4, 7, 45.0, 60.0, 65.0)
);
}
}
+26 -4
View File
@@ -29,14 +29,14 @@ final class WarmwassererwaermerModulstrukturTest extends TestCase
self::assertMatchesRegularExpression('/^\{[0-9A-F-]{36}\}$/', $metadaten['id']);
}
public function testAlle23PropertiesSindRegistriertUndImFormularDokumentiert(): void
public function testAlle20PropertiesSindRegistriertUndImFormularDokumentiert(): void
{
$basis = (string) file_get_contents(__DIR__ . '/../libs/VerbraucherBasisTrait.php');
$modul = (string) file_get_contents(self::MODULPFAD . 'module.php');
preg_match_all('/RegisterProperty(?:Integer|Float|Boolean|String)\(\'([^\']+)\'/', $basis . $modul, $treffer);
$properties = array_values(array_unique($treffer[1]));
self::assertCount(23, $properties);
self::assertCount(20, $properties);
$formular = (string) file_get_contents(self::MODULPFAD . 'form.json');
foreach ($properties as $property) {
@@ -55,7 +55,7 @@ final class WarmwassererwaermerModulstrukturTest extends TestCase
self::assertStringNotContainsString("RegisterPropertyInteger('ManagerID'", $inhalt);
}
public function testZehnDiagnosevariablenSindOptionalUndLoggingIstGetrennt(): void
public function testZehnDiagnosevariablenWerdenBedarfsgesteuertAngelegtUndGeloescht(): void
{
$inhalt = (string) file_get_contents(self::MODULPFAD . 'module.php');
preg_match('/private const DIAGNOSE_VARIABLEN = \[(.*?)\];/s', $inhalt, $treffer);
@@ -64,8 +64,30 @@ final class WarmwassererwaermerModulstrukturTest extends TestCase
self::assertCount(10, $variablen[1]);
self::assertStringContainsString("ReadPropertyBoolean('DiagnosevariablenAnzeigen')", $inhalt);
self::assertStringContainsString('registriereVerbraucherDiagnose', $inhalt);
self::assertStringContainsString('UnregisterVariable($ident)', $inhalt);
self::assertStringContainsString("ReadPropertyBoolean('LoggingEin')", $inhalt);
self::assertStringContainsString("case 'LogStatus':", $inhalt);
self::assertStringNotContainsString("case 'LogStatus':", $inhalt);
}
public function testFormularIstWieGewuenschtGegliedertUndHatKeineAktionsknoepfe(): void
{
$formular = json_decode(
(string) file_get_contents(self::MODULPFAD . 'form.json'),
true,
512,
JSON_THROW_ON_ERROR
);
self::assertSame(
[
'Manager und Zeitverhalten',
'Speichereinstellungen',
'Erweiterte Speichereinstellungen',
'Erweiterte sonstige Einstellungen',
],
array_column($formular['elements'], 'caption')
);
self::assertArrayNotHasKey('actions', $formular);
}
public function testTemperatursollwerteSindGeprueftBedienbar(): void