Installierbares IP-Symcon-Manager-Modul mit testbarer Verteilungslogik, Verbraucher-Timeouts, Sollwertversand und aktualisierter Dokumentation.
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Belevo\EnelixEMS\Tests;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class ManagerModulstrukturTest extends TestCase
|
||||
{
|
||||
public function testManagerIstAlsSymconModulVollstaendig(): void
|
||||
{
|
||||
foreach (['module.json', 'form.json', 'module.php'] as $datei) {
|
||||
self::assertFileExists(__DIR__ . '/../Manager/' . $datei);
|
||||
}
|
||||
|
||||
$metadaten = json_decode(
|
||||
(string) file_get_contents(__DIR__ . '/../Manager/module.json'),
|
||||
true,
|
||||
512,
|
||||
JSON_THROW_ON_ERROR
|
||||
);
|
||||
self::assertSame('Manager', $metadaten['name']);
|
||||
self::assertSame(3, $metadaten['type']);
|
||||
self::assertMatchesRegularExpression('/^\{[0-9A-F-]{36}\}$/', $metadaten['id']);
|
||||
}
|
||||
|
||||
public function testFormularEnthaeltDieZentralenManagerProperties(): void
|
||||
{
|
||||
$formular = json_decode(
|
||||
(string) file_get_contents(__DIR__ . '/../Manager/form.json'),
|
||||
true,
|
||||
512,
|
||||
JSON_THROW_ON_ERROR
|
||||
);
|
||||
$json = json_encode($formular, JSON_THROW_ON_ERROR);
|
||||
|
||||
foreach ([
|
||||
'NetzleistungVariableID',
|
||||
'VerbraucherZuordnung',
|
||||
'Lastspitzenmodus',
|
||||
'Monatsgrenzen',
|
||||
'SollwertSolarladen',
|
||||
'Umschaltdifferenz',
|
||||
'LoggingEin',
|
||||
] as $property) {
|
||||
self::assertStringContainsString($property, $json);
|
||||
}
|
||||
}
|
||||
|
||||
public function testManagerImplementiertDenGemeinsamenEmpfangsvertrag(): void
|
||||
{
|
||||
$inhalt = (string) file_get_contents(__DIR__ . '/../Manager/module.php');
|
||||
self::assertStringContainsString('implements ManagerSchnittstelle', $inhalt);
|
||||
self::assertStringContainsString('VerbraucherdatenEmpfangen(array $daten)', $inhalt);
|
||||
self::assertStringContainsString("'ManagerdatenEmpfangen'", $inhalt);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user