Files
kimai2/tests/Entity/WorkingTimeTest.php
Kevin Papst ff6918fcab Release 2.49 (#5820)
* bump packages
* add column summarization per customer (#5808)
* clarify database requirements
* added helper methods to fetch original expected time

Co-authored-by: GregorB54321 <34287148+GregorB54321@users.noreply.github.com>
2026-02-15 21:31:06 +01:00

73 lines
2.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\User;
use App\Entity\WorkingTime;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\TestCase;
#[CoversClass(WorkingTime::class)]
class WorkingTimeTest extends TestCase
{
public function testDefaultValues(): void
{
$user = new User();
$user->setUsername('bar');
$date = new \DateTimeImmutable();
$sut = new WorkingTime($user, $date);
self::assertSame($user, $sut->getUser());
self::assertSame($date, $sut->getDate());
self::assertNull($sut->getId());
self::assertEquals(0, $sut->getActualTime());
self::assertEquals(0, $sut->getExpectedTime());
self::assertNull($sut->getApprovedAt());
self::assertNull($sut->getApprovedBy());
self::assertFalse($sut->isApproved());
$approvedAt = new \DateTimeImmutable('2023-01-01 12:00:00', new \DateTimeZone('Europe/Vienna'));
$approvedBy = new User();
$approvedBy->setUsername('foo');
$sut->setApprovedAt($approvedAt);
$sut->setApprovedBy($approvedBy);
$sut->setActualTime(5600);
$sut->setExpectedTime(8600);
self::assertSame(5600, $sut->getActualTime());
self::assertSame(8600, $sut->getExpectedTime());
self::assertSame($approvedAt, $sut->getApprovedAt());
self::assertSame($approvedBy, $sut->getApprovedBy());
self::assertTrue($sut->isApproved());
}
public function testExpectedTime(): void
{
$user = new User();
$user->setUsername('bar');
$date = new \DateTimeImmutable();
$sut = new WorkingTime($user, $date);
$sut->setExpectedTime(222222);
self::assertEquals(222222, $sut->getExpectedTime());
self::assertEquals(222222, $sut->getOriginalExpectedTime());
$reducedBy = $sut->halveExpectedTime();
self::assertEquals(111111, $reducedBy);
self::assertEquals(111111, $sut->getExpectedTime());
self::assertEquals(222222, $sut->getOriginalExpectedTime());
$sut->emptyExpectedTime();
self::assertEquals(0, $sut->getExpectedTime());
self::assertEquals(222222, $sut->getOriginalExpectedTime());
}
}