83 lines
2.6 KiB
PHP
83 lines
2.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
require_once dirname(__DIR__) . '/examples/Demoanlage/bootstrap.php';
|
|
|
|
final class DemoanlageBootstrapTest extends TestCase
|
|
{
|
|
public function testEnergieflussEnthaeltAlleAnlagenteile(): void
|
|
{
|
|
$html = enelixDemoRenderFlow([
|
|
'hour' => 12.5,
|
|
'pv' => 6500.0,
|
|
'base' => 900.0,
|
|
'grid' => -800.0,
|
|
'boiler1' => 2400,
|
|
'boiler2' => 1500,
|
|
'dryer' => 900,
|
|
'temp1' => 51.2,
|
|
'temp2' => 48.7,
|
|
'manager' => 'PV',
|
|
]);
|
|
|
|
self::assertStringContainsString('Enelix 2 Energiefluss', $html);
|
|
self::assertStringContainsString('Boiler 1', $html);
|
|
self::assertStringContainsString('Boiler 2', $html);
|
|
self::assertStringContainsString('Entfeuchter', $html);
|
|
self::assertStringContainsString('Einspeisung', $html);
|
|
self::assertStringContainsString('12:30', $html);
|
|
}
|
|
|
|
public function testDiagrammStelltMehrereZeitreihenDar(): void
|
|
{
|
|
$html = enelixDemoRenderChart(
|
|
'Leistungsverlauf',
|
|
[
|
|
['name' => 'PV', 'color' => '#f4c542', 'values' => [
|
|
['time' => 100, 'value' => 1000.0],
|
|
['time' => 200, 'value' => 3000.0],
|
|
]],
|
|
['name' => 'Netz', 'color' => '#e95d5d', 'values' => [
|
|
['time' => 100, 'value' => -500.0],
|
|
['time' => 200, 'value' => 500.0],
|
|
]],
|
|
],
|
|
'W',
|
|
100,
|
|
200
|
|
);
|
|
|
|
self::assertStringContainsString('<svg', $html);
|
|
self::assertStringContainsString('Leistungsverlauf', $html);
|
|
self::assertStringContainsString('PV', $html);
|
|
self::assertStringContainsString('Netz', $html);
|
|
self::assertSame(2, substr_count($html, '<polyline'));
|
|
}
|
|
|
|
public function testNativeEnergieflussKnotenHatVollstaendigesSchema(): void
|
|
{
|
|
self::assertSame([
|
|
'VariableConfigType' => 0,
|
|
'VariableID' => 12345,
|
|
'SecondaryVariableID' => 0,
|
|
'Name' => 'PV-Anlage',
|
|
'Type' => 'solar',
|
|
'Grouped' => false,
|
|
'CalculationType' => 0,
|
|
'InfoVariableID' => 54321,
|
|
'Invert' => false,
|
|
], enelixDemoEnergyNode(12345, 'PV-Anlage', 'solar', 54321));
|
|
}
|
|
|
|
public function testRollbackIstExplizitBestaetigungspflichtig(): void
|
|
{
|
|
$this->expectException(RuntimeException::class);
|
|
$this->expectExceptionMessage('Rollback nur mit');
|
|
|
|
enelixDemoRemove();
|
|
}
|
|
}
|