Preparations for coming features (#1818)

* removed unused convert_tz code
* added timestampable listener to support automatic updates of change columns
* added modified_at, billable and category timesheet fields
* new timesheet API query parameter modified_after
This commit is contained in:
Kevin Papst
2020-07-13 23:35:06 +02:00
committed by GitHub
parent f2dd2331a5
commit f57b314466
18 changed files with 379 additions and 150 deletions

View File

@@ -33,6 +33,8 @@ class TimesheetTest extends TestCase
self::assertNull($sut->getId());
self::assertNull($sut->getBegin());
self::assertNull($sut->getEnd());
self::assertTrue($sut->isBillable());
self::assertNull($sut->getModifiedAt());
self::assertSame(0, $sut->getDuration());
self::assertNull($sut->getUser());
self::assertNull($sut->getActivity());
@@ -140,4 +142,34 @@ class TimesheetTest extends TestCase
self::assertEquals(3, $sut->getMetaFields()->count());
self::assertCount(2, $sut->getVisibleMetaFields());
}
public function testBillable()
{
$sut = new Timesheet();
self::assertTrue($sut->isBillable());
self::assertInstanceOf(Timesheet::class, $sut->setBillable(false));
self::assertFalse($sut->isBillable());
self::assertInstanceOf(Timesheet::class, $sut->setBillable(true));
self::assertTrue($sut->isBillable());
}
public function testCategory()
{
$sut = new Timesheet();
self::assertInstanceOf(Timesheet::class, $sut->setCategory(Timesheet::HOLIDAY));
self::assertEquals('holiday', $sut->getCategory());
self::assertInstanceOf(Timesheet::class, $sut->setCategory(Timesheet::WORK));
self::assertEquals('work', $sut->getCategory());
self::assertInstanceOf(Timesheet::class, $sut->setCategory(Timesheet::SICKNESS));
self::assertEquals('sickness', $sut->getCategory());
self::assertInstanceOf(Timesheet::class, $sut->setCategory(Timesheet::PARENTAL));
self::assertEquals('parental', $sut->getCategory());
self::assertInstanceOf(Timesheet::class, $sut->setCategory(Timesheet::OVERTIME));
self::assertEquals('overtime', $sut->getCategory());
self::expectException(\InvalidArgumentException::class);
self::expectExceptionMessage('Invalid timesheet category "foo" given, expected one of: work, holiday, sickness, parental, overtime');
$sut->setCategory('foo');
}
}