This commit is contained in:
@@ -35,7 +35,7 @@ final class ManagerModulstrukturTest extends TestCase
|
||||
512,
|
||||
JSON_THROW_ON_ERROR
|
||||
);
|
||||
$json = json_encode($formular, JSON_THROW_ON_ERROR);
|
||||
$json = json_encode($formular, JSON_THROW_ON_ERROR | JSON_UNESCAPED_SLASHES);
|
||||
|
||||
foreach ([
|
||||
'NetzleistungVariableID',
|
||||
|
||||
@@ -43,6 +43,25 @@ final class EinStufigReglerTest extends TestCase
|
||||
EinStufigRegler::leistungsangebot(3500, 1200, true, true, false);
|
||||
}
|
||||
|
||||
public function testFreigabeVerwendetZustandsabhaengigeMindestdauer(): void
|
||||
{
|
||||
self::assertSame(1010, EinStufigRegler::freigabezeitpunkt(true, 1000, 10, 20));
|
||||
self::assertSame(1020, EinStufigRegler::freigabezeitpunkt(false, 1000, 10, 20));
|
||||
}
|
||||
|
||||
public function testRestMindestzeitWirdNieNegativ(): void
|
||||
{
|
||||
self::assertSame(7, EinStufigRegler::restMindestzeit(1007, 1000));
|
||||
self::assertSame(0, EinStufigRegler::restMindestzeit(1000, 1007));
|
||||
}
|
||||
|
||||
public function testNegativeMindestdauerWirdAbgewiesen(): void
|
||||
{
|
||||
$this->expectException(InvalidArgumentException::class);
|
||||
|
||||
EinStufigRegler::freigabezeitpunkt(true, 1000, -1, 0);
|
||||
}
|
||||
|
||||
public function testMindestlaufzeitWirdErstZumSpaetestmoeglichenStartErzwungen(): void
|
||||
{
|
||||
self::assertFalse(EinStufigRegler::mussMindestlaufzeitErzwingen(0, 3600, 7200));
|
||||
+52
-17
@@ -8,7 +8,7 @@ use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class VerbraucherEinStufigModulstrukturTest extends TestCase
|
||||
{
|
||||
private const MODULPFAD = __DIR__ . '/../VerbraucherEinStufig/';
|
||||
private const MODULPFAD = __DIR__ . '/../../VerbraucherEinStufig/';
|
||||
|
||||
public function testModulIstVollstaendigUndMetadatenSindGueltig(): void
|
||||
{
|
||||
@@ -43,7 +43,7 @@ final class VerbraucherEinStufigModulstrukturTest extends TestCase
|
||||
|
||||
public function testPropertiesSindRegistriertUndImFormularVorhanden(): void
|
||||
{
|
||||
$basis = (string) file_get_contents(__DIR__ . '/../libs/VerbraucherBasisTrait.php');
|
||||
$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)\(\'([^\']+)\'/',
|
||||
@@ -65,7 +65,8 @@ final class VerbraucherEinStufigModulstrukturTest extends TestCase
|
||||
'SchaltkontaktInvertiert',
|
||||
'RueckmeldungVariableID',
|
||||
'Mindestlaufzeit',
|
||||
'Umschaltabstand',
|
||||
'Mindesteinschaltdauer',
|
||||
'Mindestausschaltdauer',
|
||||
'DiagnosevariablenAnzeigen',
|
||||
],
|
||||
$properties
|
||||
@@ -77,17 +78,21 @@ final class VerbraucherEinStufigModulstrukturTest extends TestCase
|
||||
}
|
||||
}
|
||||
|
||||
public function testNurUmschaltabstandErsetztAlteZyklusProperties(): void
|
||||
public function testGetrennteMindestzeitenErsetzenUmschaltabstand(): void
|
||||
{
|
||||
$modul = (string) file_get_contents(self::MODULPFAD . 'module.php');
|
||||
|
||||
self::assertStringContainsString(
|
||||
"RegisterPropertyInteger('Umschaltabstand', 5)",
|
||||
"RegisterPropertyInteger('Mindesteinschaltdauer', 5)",
|
||||
$modul
|
||||
);
|
||||
self::assertStringContainsString(
|
||||
"RegisterPropertyInteger('Mindestausschaltdauer', 5)",
|
||||
$modul
|
||||
);
|
||||
self::assertStringNotContainsString("RegisterPropertyInteger('Umschaltabstand'", $modul);
|
||||
self::assertStringNotContainsString("RegisterPropertyInteger('Interval'", $modul);
|
||||
self::assertStringNotContainsString("RegisterPropertyInteger('IdleCounterMax'", $modul);
|
||||
self::assertStringNotContainsString("RegisterTimer('Regelzyklus'", $modul);
|
||||
}
|
||||
|
||||
public function testRegelungReagiertAufEreignisseUndEinmalTimer(): void
|
||||
@@ -96,13 +101,33 @@ final class VerbraucherEinStufigModulstrukturTest extends TestCase
|
||||
|
||||
self::assertStringContainsString('public function MessageSink', $modul);
|
||||
self::assertStringContainsString('RegisterMessage($neueID, self::VM_UPDATE)', $modul);
|
||||
foreach (['Umschaltfreigabe', 'VorgabeTimeout', 'Tagesplanung'] as $timer) {
|
||||
foreach (['MindestzeitAbgelaufen', 'VorgabeTimeout', 'Tagesplanung'] as $timer) {
|
||||
self::assertStringContainsString("'$timer'", $modul);
|
||||
}
|
||||
self::assertStringContainsString(
|
||||
"SetTimerInterval('Meldezyklus', \$this->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 testModulVerwendetAusschliesslichDenVertrag30(): void
|
||||
@@ -117,25 +142,19 @@ final class VerbraucherEinStufigModulstrukturTest extends TestCase
|
||||
self::assertStringNotContainsString("RegisterPropertyInteger('ManagerID'", $modul);
|
||||
}
|
||||
|
||||
public function testFachvariablenUndRueckmeldestoerungSindEnthalten(): void
|
||||
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("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');
|
||||
$manager = (string) file_get_contents(__DIR__ . '/../../Manager/module.php');
|
||||
$modulID = '{15879A4E-D0C2-4495-83DE-46E1E462591E}';
|
||||
|
||||
self::assertSame(1, substr_count($manager, $modulID));
|
||||
@@ -149,4 +168,20 @@ final class VerbraucherEinStufigModulstrukturTest extends TestCase
|
||||
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('<directory>tests</directory>', $gesamt);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
# Tests fuer Verbraucher 1-Stufig
|
||||
|
||||
Die Tests des Moduls koennen unabhaengig vom restlichen Repository ausgefuehrt
|
||||
werden:
|
||||
|
||||
```bash
|
||||
composer check:verbraucher-einstufig
|
||||
```
|
||||
|
||||
Der Befehl prueft nur den Modulcode, die reine Regellogik und diese Tests.
|
||||
Der allgemeine Befehl bleibt der externe Gesamteinstieg und schliesst die
|
||||
Modulsuite durch das rekursive Verzeichnis `tests` automatisch ein:
|
||||
|
||||
```bash
|
||||
composer check
|
||||
```
|
||||
Reference in New Issue
Block a user