feat: refactor participant card DTOs and labels
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Tests\Service;
|
||||
|
||||
use App\BusProNet\Model\Service;
|
||||
use App\Service\ServiceLabelFormatter;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class ServiceLabelFormatterTest extends TestCase
|
||||
{
|
||||
private ServiceLabelFormatter $formatter;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
$this->formatter = new ServiceLabelFormatter();
|
||||
}
|
||||
|
||||
public function testFormatServiceLabelReturnsLabelWithoutPrice(): void
|
||||
{
|
||||
$service = new Service();
|
||||
$service->label = 'Skipass';
|
||||
$service->price = null;
|
||||
|
||||
$this->assertSame('Skipass', $this->formatter->formatServiceLabel($service));
|
||||
}
|
||||
|
||||
public function testFormatServiceLabelFormatsIncludedService(): void
|
||||
{
|
||||
$service = new Service();
|
||||
$service->label = 'Ortstaxe';
|
||||
$service->price = 0.0;
|
||||
|
||||
$this->assertSame('Ortstaxe (inkl.)', $this->formatter->formatServiceLabel($service));
|
||||
}
|
||||
|
||||
public function testFormatServiceLabelFormatsPositivePrice(): void
|
||||
{
|
||||
$service = new Service();
|
||||
$service->label = 'Parkplatz';
|
||||
$service->price = 12.5;
|
||||
|
||||
$this->assertSame('Parkplatz (€12,50)', $this->formatter->formatServiceLabel($service));
|
||||
}
|
||||
|
||||
public function testFormatServiceLabelFormatsNegativePrice(): void
|
||||
{
|
||||
$service = new Service();
|
||||
$service->label = 'Rabatt';
|
||||
$service->price = -8.0;
|
||||
|
||||
$this->assertSame('Rabatt (-8,00€ Rabatt)', $this->formatter->formatServiceLabel($service));
|
||||
}
|
||||
|
||||
public function testFormatServiceLabelForServicesFallsBackWhenEmpty(): void
|
||||
{
|
||||
$this->assertSame(
|
||||
'Verpflegung',
|
||||
$this->formatter->formatServiceLabelForServices('Verpflegung', [])
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user