Перевод на доменную архитектуру

This commit is contained in:
brusnitsyn
2026-04-26 23:37:50 +09:00
parent 75ca01ffd8
commit f107ebd167
70 changed files with 4656 additions and 2070 deletions

View File

@@ -0,0 +1,38 @@
<?php
use App\Domain\Reports\Calculators\PreoperativeDaysCalculator;
use App\Domain\Reports\Models\OperationInterval;
it('calculates total and average preoperative days', function () {
$calculator = new PreoperativeDaysCalculator;
$result = $calculator->calculate([
new OperationInterval(
admittedAt: new DateTimeImmutable('2026-04-01 10:00:00'),
operationAt: new DateTimeImmutable('2026-04-03 09:00:00'),
),
new OperationInterval(
admittedAt: new DateTimeImmutable('2026-04-05 10:00:00'),
operationAt: new DateTimeImmutable('2026-04-06 09:00:00'),
),
]);
expect($result->total)->toBe(3)
->and($result->count)->toBe(2)
->and($result->average)->toBe(1.5);
});
it('ignores invalid preoperative intervals', function () {
$calculator = new PreoperativeDaysCalculator;
$result = $calculator->calculate([
new OperationInterval(
admittedAt: new DateTimeImmutable('2026-04-03 10:00:00'),
operationAt: new DateTimeImmutable('2026-04-01 09:00:00'),
),
]);
expect($result->total)->toBe(0)
->and($result->count)->toBe(0)
->and($result->average)->toBe(0.0);
});