Version 2.0.1 (#3853)

* configure email validation mode to fix deprecation message
* allow to use non brand icon in saml provider
* new method getCalculatedDuration()
* getRawData() by id
* only stop entries if new one is running
* fix validator tampering with timesheet duration
* fix allow setting null as customer
* bump packages
This commit is contained in:
Kevin Papst
2023-02-18 14:19:16 +01:00
committed by GitHub
parent 75aea7c51b
commit e474087257
20 changed files with 253 additions and 363 deletions

View File

@@ -25,7 +25,7 @@ use PHPUnit\Framework\TestCase;
*/
class TimesheetTest extends TestCase
{
public function testDefaultValues()
public function testDefaultValues(): void
{
$sut = new Timesheet();
self::assertEquals('timesheet', $sut->getType());
@@ -36,6 +36,9 @@ class TimesheetTest extends TestCase
self::assertTrue($sut->isBillable());
self::assertNull($sut->getModifiedAt());
self::assertSame(0, $sut->getDuration());
self::assertSame(0, $sut->getDuration(true));
self::assertSame(0, $sut->getDuration(false));
self::assertNull($sut->getCalculatedDuration());
self::assertNull($sut->getUser());
self::assertNull($sut->getActivity());
self::assertNull($sut->getProject());
@@ -57,7 +60,7 @@ class TimesheetTest extends TestCase
self::assertNull($sut->getMetaField('foo'));
}
public function testValueCanBeNull()
public function testValueCanBeNull(): void
{
$sut = new Timesheet();
self::assertEquals(0, $sut->getDuration());
@@ -72,7 +75,7 @@ class TimesheetTest extends TestCase
self::assertNull($sut->getInternalRate());
}
protected function getEntity()
protected function getEntity(): Timesheet
{
$customer = new Customer('Test Customer');
@@ -92,7 +95,7 @@ class TimesheetTest extends TestCase
return $entity;
}
public function testTags()
public function testTags(): void
{
$sut = new Timesheet();
$tag = new Tag();
@@ -115,7 +118,7 @@ class TimesheetTest extends TestCase
$this->assertEmpty($sut->getTags());
}
public function testMetaFields()
public function testMetaFields(): void
{
$sut = new Timesheet();
$meta = new TimesheetMeta();
@@ -143,7 +146,7 @@ class TimesheetTest extends TestCase
self::assertCount(2, $sut->getVisibleMetaFields());
}
public function testBillable()
public function testBillable(): void
{
$sut = new Timesheet();
self::assertTrue($sut->isBillable());
@@ -153,7 +156,7 @@ class TimesheetTest extends TestCase
self::assertTrue($sut->isBillable());
}
public function testCategory()
public function testCategory(): void
{
$sut = new Timesheet();
self::assertInstanceOf(Timesheet::class, $sut->setCategory(Timesheet::HOLIDAY));
@@ -173,7 +176,7 @@ class TimesheetTest extends TestCase
$sut->setCategory('foo');
}
public function testClone()
public function testClone(): void
{
$sut = new Timesheet();
$sut->setExported(true);
@@ -207,4 +210,61 @@ class TimesheetTest extends TestCase
self::assertEquals($clone->getEnd(), $sut->getEnd());
self::assertFalse($clone->isExported());
}
public function testDuration(): void
{
$sut = new Timesheet();
self::assertSame(0, $sut->getDuration());
self::assertSame(0, $sut->getDuration(true));
self::assertSame(0, $sut->getDuration(false));
self::assertNull($sut->getCalculatedDuration());
$sut->setDuration(null);
self::assertNull($sut->getDuration());
self::assertNull($sut->getDuration(true));
self::assertNull($sut->getDuration(false));
self::assertNull($sut->getCalculatedDuration());
$begin = new \DateTime('2023-02-17 18:00:00');
$sut->setBegin($begin);
self::assertNull($sut->getDuration());
self::assertNull($sut->getDuration(true));
self::assertNull($sut->getDuration(false));
self::assertNull($sut->getCalculatedDuration());
$sut->setDuration(0);
self::assertSame(0, $sut->getDuration());
self::assertSame(0, $sut->getDuration(true));
self::assertSame(0, $sut->getDuration(false));
self::assertNull($sut->getCalculatedDuration());
$end = clone $begin;
$end->modify('+2 hours');
$sut->setEnd($end);
self::assertSame(0, $sut->getDuration());
self::assertSame(0, $sut->getDuration(true));
self::assertSame(0, $sut->getDuration(false));
self::assertEquals(7200, $sut->getCalculatedDuration());
$sut->setDuration(7200);
self::assertSame(7200, $sut->getDuration());
self::assertSame(7200, $sut->getDuration(true));
self::assertSame(7200, $sut->getDuration(false));
self::assertEquals(7200, $sut->getCalculatedDuration());
$end = clone $begin;
$end->modify('+1 hours');
$sut->setEnd($end);
self::assertSame(7200, $sut->getDuration());
self::assertSame(7200, $sut->getDuration(true));
self::assertSame(7200, $sut->getDuration(false));
self::assertEquals(3600, $sut->getCalculatedDuration());
}
}