ReadPropertyInteger('Meldeintervall') * 1000)", $modul ); self::assertStringNotContainsString("case 'Umschaltfreigabe':", $modul); self::assertStringNotContainsString("RegisterTimer('Regelzyklus'", $modul); } public function testRueckmeldungBestimmtZustandUndSchaltbereitschaft(): void { $modul = (string) file_get_contents(self::MODULPFAD . 'module.php'); self::assertStringContainsString( "ReadPropertyInteger('RueckmeldungVariableID')", $modul ); self::assertStringContainsString('bestaetigeZustandswechsel', $modul); self::assertStringContainsString("'Kennung' => 'SchaltbefehlAusstehend'", $modul); self::assertStringContainsString("'Kennung' => 'Schaltbereit'", $modul); self::assertStringContainsString("'Kennung' => 'RestMindestzeit_s'", $modul); self::assertStringContainsString( 'setzeZustand(\'AenderungMoeglich\', $aenderungMoeglich)', $modul ); } public function testModulVerwendetVertrag40UndBetriebsartabhaengigesAngebot(): void { $modul = (string) file_get_contents(self::MODULPFAD . 'module.php'); self::assertStringContainsString('implements VerbraucherSchnittstelle', $modul); self::assertStringContainsString('ManagerdatenEmpfangen(array $daten)', $modul); self::assertStringContainsString('Nachrichtenvertrag::pruefeManagerdaten', $modul); self::assertStringContainsString('Nachrichtenvertrag::pruefeVerbraucherdaten', $modul); self::assertStringContainsString("['Betriebsart']", $modul); self::assertStringContainsString('BETRIEBSART_PEAK', $modul); self::assertStringContainsString("'Betriebsart' =>", $modul); self::assertStringNotContainsString("RegisterVariableString('PowerSteps'", $modul); self::assertStringNotContainsString("RegisterPropertyInteger('ManagerID'", $modul); } public function testFachvariablenUndRueckmeldestatusSindEnthalten(): void { $modul = (string) file_get_contents(self::MODULPFAD . 'module.php'); self::assertStringContainsString("RegisterVariableBoolean('Schaltzustand'", $modul); self::assertStringContainsString("RegisterVariableInteger('Tageslaufzeit'", $modul); self::assertStringContainsString("'Kennung' => 'Rueckmeldefehler'", $modul); self::assertStringContainsString("'Kennung' => 'Tageslaufzeit_s'", $modul); } public function testManagerKenntDieModulIDGenauEinmal(): void { $manager = (string) file_get_contents(__DIR__ . '/../../Manager/module.php'); $modulID = '{15879A4E-D0C2-4495-83DE-46E1E462591E}'; self::assertSame(1, substr_count($manager, $modulID)); } public function testDiagnosevariablenSindOptional(): void { $modul = (string) file_get_contents(self::MODULPFAD . 'module.php'); self::assertStringContainsString("ReadPropertyBoolean('DiagnosevariablenAnzeigen')", $modul); self::assertStringContainsString('registriereVerbraucherDiagnose', $modul); self::assertStringContainsString('UnregisterVariable($ident)', $modul); } public function testSeparateSuiteIstImGesamttestEnthalten(): void { self::assertFileExists(__DIR__ . '/../../phpunit.verbraucher-einstufig.xml'); $composer = json_decode( (string) file_get_contents(__DIR__ . '/../../composer.json'), true, 512, JSON_THROW_ON_ERROR ); self::assertArrayHasKey('check:verbraucher-einstufig', $composer['scripts']); $gesamt = (string) file_get_contents(__DIR__ . '/../../phpunit.xml.dist'); self::assertStringContainsString('tests', $gesamt); } }