This commit is contained in:
@@ -13,7 +13,7 @@ final class LadestationAdapterTest extends TestCase
|
||||
/**
|
||||
* @dataProvider statusFaelle
|
||||
* @param array<string, string> $konfiguration
|
||||
* @param array{Rohstatus: int, Istleistung_W: float, Iststrom_A?: float, Phasenzahl?: int} $erwartet
|
||||
* @param array{Rohstatus: int, Istleistung_W: float, Sollstrom_A?: int, Maximalstrom_A?: int, Iststrom_A?: float, Phasenzahl?: int} $erwartet
|
||||
*/
|
||||
public function testStatusaufrufUndDekodierungFuerAlleGeraete(
|
||||
int $geraetetyp,
|
||||
@@ -52,6 +52,8 @@ final class LadestationAdapterTest extends TestCase
|
||||
[
|
||||
'Rohstatus' => 2,
|
||||
'Istleistung_W' => 11000.0,
|
||||
'Sollstrom_A' => 16,
|
||||
'Maximalstrom_A' => 16,
|
||||
'Iststrom_A' => 16.0,
|
||||
'Phasenzahl' => 3,
|
||||
],
|
||||
@@ -64,6 +66,8 @@ final class LadestationAdapterTest extends TestCase
|
||||
[
|
||||
'Rohstatus' => 2,
|
||||
'Istleistung_W' => 2300.0,
|
||||
'Sollstrom_A' => 16,
|
||||
'Maximalstrom_A' => 16,
|
||||
'Iststrom_A' => 9.8,
|
||||
'Phasenzahl' => 1,
|
||||
],
|
||||
@@ -81,6 +85,20 @@ final class LadestationAdapterTest extends TestCase
|
||||
];
|
||||
}
|
||||
|
||||
public function testGoEAusFreigabeWirdAlsNullSollstromDekodiert(): void
|
||||
{
|
||||
$daten = json_decode($this->goEAntwort(2, 0, [0, 0, 0]), true, 512, JSON_THROW_ON_ERROR);
|
||||
$daten['alw'] = false;
|
||||
$daten['frc'] = 1;
|
||||
|
||||
$status = LadestationAdapter::dekodiereStatus(
|
||||
LadestationAdapter::GO_E_GEMINI,
|
||||
json_encode($daten, JSON_THROW_ON_ERROR)
|
||||
);
|
||||
|
||||
self::assertSame(0, $status['Sollstrom_A']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider steuerFaelle
|
||||
* @param array<string, string> $konfiguration
|
||||
@@ -180,6 +198,13 @@ final class LadestationAdapterTest extends TestCase
|
||||
}
|
||||
$nrg[11] = $leistung;
|
||||
|
||||
return json_encode(['car' => $status, 'nrg' => $nrg], JSON_THROW_ON_ERROR);
|
||||
return json_encode([
|
||||
'car' => $status,
|
||||
'nrg' => $nrg,
|
||||
'amp' => 16,
|
||||
'ama' => 16,
|
||||
'alw' => true,
|
||||
'frc' => 2,
|
||||
], JSON_THROW_ON_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,4 +104,32 @@ final class LadestationStandAloneModulstrukturTest extends TestCase
|
||||
self::assertStringContainsString('PHASENERKENNUNGSSTROM = 6', $modul);
|
||||
self::assertStringContainsString('UnregisterVariable($ident)', $modul);
|
||||
}
|
||||
|
||||
public function testMeldezyklusSendetDenBereitsGelesenenZustandOhneZusaetzlichenHttpAbruf(): void
|
||||
{
|
||||
$modul = (string) file_get_contents(self::MODULPFAD . 'module.php');
|
||||
self::assertSame(1, preg_match(
|
||||
"/case 'Melden':(?<block>.*?)case 'ManagerdatenEmpfangen':/s",
|
||||
$modul,
|
||||
$treffer
|
||||
));
|
||||
self::assertStringContainsString('$this->sendeVerbraucherdaten();', $treffer['block']);
|
||||
self::assertStringNotContainsString('$this->aktualisiere(', $treffer['block']);
|
||||
}
|
||||
|
||||
public function testVomGeraetBestaetigterSollstromWirdFuerWiederholungVerwendet(): void
|
||||
{
|
||||
$modul = (string) file_get_contents(self::MODULPFAD . 'module.php');
|
||||
|
||||
self::assertStringContainsString("\$rohstatus['Sollstrom_A']", $modul);
|
||||
self::assertStringContainsString(
|
||||
"WriteAttributeInteger('LetzterGesetzterStrom', \$geraeteSollstrom)",
|
||||
$modul
|
||||
);
|
||||
self::assertStringContainsString("RegisterAttributeInteger('GeraeteMaximalstrom', 32)", $modul);
|
||||
self::assertStringContainsString(
|
||||
"WriteAttributeInteger('GeraeteMaximalstrom', (int) \$rohstatus['Maximalstrom_A'])",
|
||||
$modul
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -380,4 +380,25 @@ final class ManagerModulstrukturTest extends TestCase
|
||||
self::assertStringContainsString('VerbraucherdatenEmpfangen(array $daten)', $inhalt);
|
||||
self::assertStringContainsString("'ManagerdatenEmpfangen'", $inhalt);
|
||||
}
|
||||
|
||||
public function testVerbrauchermeldungPlantRegelungOhneSynchronenRueckruf(): void
|
||||
{
|
||||
$inhalt = (string) file_get_contents(__DIR__ . '/../Manager/module.php');
|
||||
self::assertStringContainsString(
|
||||
"RegisterTimer(\n 'RegelungVerzoegert'",
|
||||
$inhalt
|
||||
);
|
||||
self::assertStringContainsString("case 'RegelnVerzoegert':", $inhalt);
|
||||
self::assertSame(1, preg_match(
|
||||
'/public function VerbraucherdatenEmpfangen\(array \$daten\): void(?<block>.*?)'
|
||||
. 'private function aktualisiereVerbraucherEnergie/s',
|
||||
$inhalt,
|
||||
$treffer
|
||||
));
|
||||
self::assertStringContainsString(
|
||||
"SetTimerInterval('RegelungVerzoegert', 100)",
|
||||
$treffer['block']
|
||||
);
|
||||
self::assertStringNotContainsString('$this->regeln(false);', $treffer['block']);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user