Files
kimai/tests/Entity/ExportTemplateTest.php
Kevin Papst 677f8d776c [3.0] Update Symfony to 7.4 and dependencies, removed deprecated code, removed API password (#5622)
* deactivate deprecated auto-mapping
* use native month-picker with fallback on old browser
* bump dependencies to new major versions
* replace deprecated ARRAY column type with JSON
* named arguments
* nullable arguments
* native lazy ghosts
* update routes to use php config
* disable PHP < 8.4
* use static RTL configuration
* new qr code package
* clear out env file
* recipe updates
* fix deprecations
* preset new env variable if not existing
* bump maria db version examples
* remove deprecated api-token support
* fix validator deprecations
* remove timesheet category column
* fix broken validator autoconfiguration
* stabilize tests
* fix migration syntax compatibility
* fix doctrine deprecation
* fix datetime format
* remove constructor dependency
* only include visible preferences in invoice templates
* fix test container dependency
* removed ProjectConstraint multi-constraint logic
* allow to disable plugins in certain environments
* refactor TimesheetConstraint to non-service
* activate new interface methods
* prevent update issues with .env
* improved customer fixture
* removed $user->isExportDecimal()
2026-01-04 15:04:25 +01:00

124 lines
4.4 KiB
PHP

<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Tests\Entity;
use App\Entity\ExportTemplate;
use PHPUnit\Framework\Attributes\CoversClass;
#[CoversClass(ExportTemplate::class)]
class ExportTemplateTest extends AbstractEntityTestCase
{
public function testDefaultValues(): void
{
$sut = new ExportTemplate();
self::assertNull($sut->getId());
self::assertTrue($sut->isNew());
self::assertNull($sut->getTitle());
self::assertEquals('csv', $sut->getRenderer());
self::assertNull($sut->getLanguage());
self::assertEquals([], $sut->getColumns());
self::assertEquals([], $sut->getOptions());
self::assertNull($sut->getName());
self::assertNull($sut->getFont());
self::assertNull($sut->getOrientation());
self::assertNull($sut->getPageSize());
self::assertEquals(',', $sut->getSeparator());
self::assertEquals([], $sut->getSummaryColumns());
}
public function testSetter(): void
{
$sut = new ExportTemplate();
self::assertEquals('New', (string) $sut);
$sut->setTitle('foo');
self::assertEquals('foo', $sut->getTitle());
self::assertEquals('foo', (string) $sut);
$sut->setTitle(null);
self::assertNull($sut->getTitle());
self::assertEquals('New', (string) $sut);
$sut->setRenderer('xlsx');
self::assertEquals('xlsx', $sut->getRenderer());
$sut->setLanguage('de');
self::assertEquals('de', $sut->getLanguage());
$sut->setLanguage(null);
self::assertNull($sut->getLanguage());
$sut->setColumns(['foo', 'bar', 'WORLD']);
self::assertEquals(['foo', 'bar', 'WORLD'], $sut->getColumns());
$sut->setColumns(null);
self::assertEquals([], $sut->getColumns());
$sut->setName('my name is funny');
$sut->setFont('Helvetica');
$sut->setPageSize('Letter');
$sut->setSummaryColumns(['customer', 'rate', 'duration_decimal']);
self::assertEquals('my name is funny', $sut->getName());
self::assertEquals('Helvetica', $sut->getFont());
self::assertEquals('Letter', $sut->getPageSize());
self::assertEquals(['customer', 'rate', 'duration_decimal'], $sut->getSummaryColumns());
$sut->setOptions(['foo' => 1, 'bar' => true, 'WORLD' => 'HELLO']);
self::assertEquals(['foo' => 1, 'bar' => true, 'WORLD' => 'HELLO'], $sut->getOptions());
$sut->setOption('empty', 123);
self::assertEquals(['foo' => 1, 'bar' => true, 'WORLD' => 'HELLO', 'empty' => 123], $sut->getOptions());
$sut->setOption('foo', 4711);
$sut->setOption('empty', null);
$sut->setOption('bar', false);
$sut->setOption('hello', 'kimai');
self::assertEquals(['foo' => 4711, 'bar' => false, 'WORLD' => 'HELLO', 'hello' => 'kimai'], $sut->getOptions());
$sut->setOptions(null);
self::assertEquals([], $sut->getOptions());
}
public function testSeparator(): void
{
$sut = new ExportTemplate();
self::assertEquals(',', $sut->getSeparator());
$sut->setSeparator(';');
self::assertEquals(';', $sut->getSeparator());
$sut->setSeparator(',');
self::assertEquals(',', $sut->getSeparator());
$this->expectException(\InvalidArgumentException::class);
$sut->setSeparator('.');
}
public function testSetOrientation(): void
{
$sut = new ExportTemplate();
self::assertNull($sut->getOrientation());
$sut->setOrientation('landscape');
self::assertEquals('landscape', $sut->getOrientation());
$sut->setOrientation('PORTRAIT');
self::assertEquals('portrait', $sut->getOrientation());
$sut->setOrientation('LandScapE');
self::assertEquals('landscape', $sut->getOrientation());
$this->expectException(\InvalidArgumentException::class);
$sut->setOrientation('vertical');
}
public function testClone(): void
{
$sut = new ExportTemplate();
$r = new \ReflectionObject($sut);
$p = $r->getProperty('id');
$p->setValue($sut, 13);
self::assertEquals(13, $sut->getId());
self::assertFalse($sut->isNew());
$sut2 = clone $sut;
self::assertNull($sut2->getId());
}
}