configurable csv/xlsx export templates (#5531)
This commit is contained in:
73
tests/Entity/ExportTemplateTest.php
Normal file
73
tests/Entity/ExportTemplateTest.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<?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;
|
||||
|
||||
/**
|
||||
* @covers \App\Entity\ExportTemplate
|
||||
*/
|
||||
class ExportTemplateTest extends AbstractEntityTestCase
|
||||
{
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new ExportTemplate();
|
||||
self::assertNull($sut->getId());
|
||||
self::assertNull($sut->getTitle());
|
||||
self::assertEquals('csv', $sut->getRenderer());
|
||||
self::assertNull($sut->getLanguage());
|
||||
self::assertEquals([], $sut->getColumns());
|
||||
self::assertEquals([], $sut->getOptions());
|
||||
}
|
||||
|
||||
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->setOptions(['foo' => 1, 'bar' => true, 'WORLD' => 'HELLO']);
|
||||
self::assertEquals(['foo' => 1, 'bar' => true, 'WORLD' => 'HELLO'], $sut->getOptions());
|
||||
$sut->setOptions(null);
|
||||
self::assertEquals([], $sut->getOptions());
|
||||
}
|
||||
|
||||
public function testClone(): void
|
||||
{
|
||||
$sut = new ExportTemplate();
|
||||
$r = new \ReflectionObject($sut);
|
||||
$p = $r->getProperty('id');
|
||||
$p->setAccessible(true);
|
||||
$p->setValue($sut, 13);
|
||||
self::assertEquals(13, $sut->getId());
|
||||
|
||||
$sut2 = clone $sut;
|
||||
self::assertNull($sut2->getId());
|
||||
}
|
||||
}
|
||||
@@ -53,6 +53,7 @@ class UserTest extends TestCase
|
||||
|
||||
$user->setUserIdentifier('foo');
|
||||
self::assertEquals('foo', $user->getUserIdentifier());
|
||||
self::assertEquals('foo', $user->getIdentifier());
|
||||
self::assertEquals('foo', $user->getDisplayName());
|
||||
$user->setAlias('BAR');
|
||||
self::assertEquals('BAR', $user->getDisplayName());
|
||||
@@ -89,6 +90,7 @@ class UserTest extends TestCase
|
||||
public function testWorkContract(): void
|
||||
{
|
||||
$user = new User();
|
||||
self::assertFalse($user->hasContractSettings());
|
||||
|
||||
self::assertEquals(0, $user->getWorkHoursMonday());
|
||||
self::assertEquals(0, $user->getWorkHoursTuesday());
|
||||
@@ -127,6 +129,7 @@ class UserTest extends TestCase
|
||||
$user->setWorkHoursSunday(7800);
|
||||
$user->setHolidaysPerYear(10.7);
|
||||
self::assertTrue($user->hasWorkHourConfiguration());
|
||||
self::assertTrue($user->hasContractSettings());
|
||||
|
||||
self::assertEquals(7200, $user->getWorkHoursMonday());
|
||||
self::assertEquals(7300, $user->getWorkHoursTuesday());
|
||||
@@ -158,6 +161,16 @@ class UserTest extends TestCase
|
||||
|
||||
$user->setPublicHolidayGroup('DE-NRW');
|
||||
self::assertEquals('DE-NRW', $user->getPublicHolidayGroup());
|
||||
|
||||
self::assertNull($user->getWorkStartingDay());
|
||||
$workStart = new \DateTimeImmutable('2018-07-23');
|
||||
$user->setWorkStartingDay($workStart);
|
||||
self::assertEquals($workStart, $user->getWorkStartingDay());
|
||||
|
||||
self::assertNull($user->getLastWorkingDay());
|
||||
$workStart = new \DateTimeImmutable('2021-02-13');
|
||||
$user->setLastWorkingDay($workStart);
|
||||
self::assertEquals($workStart, $user->getLastWorkingDay());
|
||||
}
|
||||
|
||||
public function testColor(): void
|
||||
@@ -248,6 +261,21 @@ class UserTest extends TestCase
|
||||
|
||||
$user->setPreferenceValue('export_decimal', true);
|
||||
self::assertTrue($user->isExportDecimal());
|
||||
|
||||
$prefs = $user->getPreferences();
|
||||
self::assertCount(3, $prefs);
|
||||
|
||||
self::assertInstanceOf(UserPreference::class, $prefs[0]);
|
||||
self::assertEquals('test', $prefs[0]->getName());
|
||||
|
||||
self::assertInstanceOf(UserPreference::class, $prefs[1]);
|
||||
self::assertEquals('test2', $prefs[1]->getName());
|
||||
|
||||
self::assertInstanceOf(UserPreference::class, $prefs[2]);
|
||||
self::assertEquals('export_decimal', $prefs[2]->getName());
|
||||
|
||||
$user->setPreferences(new ArrayCollection([]));
|
||||
self::assertCount(0, $user->getPreferences());
|
||||
}
|
||||
|
||||
public function testDisplayName(): void
|
||||
@@ -332,6 +360,12 @@ class UserTest extends TestCase
|
||||
self::assertTrue($sut->isTeamleadOf($team2));
|
||||
self::assertTrue($sut->isInTeam($team2));
|
||||
|
||||
self::assertTrue($sut->isTeamleadOf($team2));
|
||||
$user2 = new User();
|
||||
self::assertFalse($sut->isTeamleadOfUser($user2));
|
||||
$team2->addUser($user2);
|
||||
self::assertTrue($sut->isTeamleadOfUser($user2));
|
||||
|
||||
self::assertCount(2, $sut->getTeams());
|
||||
$sut->removeMembership(new TeamMember());
|
||||
self::assertCount(2, $sut->getTeams());
|
||||
@@ -624,4 +658,21 @@ class UserTest extends TestCase
|
||||
self::assertNotNull($user->getSupervisor());
|
||||
self::assertSame($supervisor, $user->getSupervisor());
|
||||
}
|
||||
|
||||
public function testLastLogin(): void
|
||||
{
|
||||
$dateTime = new \DateTime('now', new \DateTimeZone('UTC'));
|
||||
|
||||
$user = new User();
|
||||
$user->setTimezone('Europe/Berlin');
|
||||
|
||||
$lastLogin = $user->getLastLogin();
|
||||
self::assertNull($lastLogin);
|
||||
$user->setLastLogin($dateTime);
|
||||
|
||||
$lastLogin = $user->getLastLogin();
|
||||
self::assertNotNull($lastLogin);
|
||||
self::assertInstanceOf(\DateTime::class, $lastLogin);
|
||||
self::assertEquals('Europe/Berlin', $lastLogin->getTimezone()->getName());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user