Release 2.0.35 (#4302)
This commit is contained in:
@@ -1,17 +0,0 @@
|
||||
<?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\Widget\Type;
|
||||
|
||||
/**
|
||||
* @covers \App\Widget\Type\AbstractSimpleStatisticChart
|
||||
*/
|
||||
abstract class AbstractSimpleStatisticsWidgetTypeTest extends AbstractWidgetTypeTest
|
||||
{
|
||||
}
|
||||
@@ -20,12 +20,12 @@ abstract class AbstractWidgetTypeTest extends AbstractWidgetTest
|
||||
|
||||
abstract public function getDefaultOptions(): array;
|
||||
|
||||
protected function assertDefaultData(AbstractWidgetType $sut)
|
||||
protected function assertDefaultData(AbstractWidgetType $sut): void
|
||||
{
|
||||
self::assertNull($sut->getData());
|
||||
}
|
||||
|
||||
public function testDefaultData()
|
||||
public function testDefaultData(): void
|
||||
{
|
||||
$sut = $this->createSut();
|
||||
self::assertInstanceOf(AbstractWidgetType::class, $sut);
|
||||
@@ -33,15 +33,7 @@ abstract class AbstractWidgetTypeTest extends AbstractWidgetTest
|
||||
$this->assertDefaultData($sut);
|
||||
}
|
||||
|
||||
public function testFluentInterface()
|
||||
{
|
||||
$sut = $this->createSut();
|
||||
self::assertInstanceOf(AbstractWidgetType::class, $sut->setOptions([]));
|
||||
self::assertInstanceOf(AbstractWidgetType::class, $sut->setId(''));
|
||||
self::assertInstanceOf(AbstractWidgetType::class, $sut->setTitle(''));
|
||||
}
|
||||
|
||||
public function testSetter()
|
||||
public function testSetter(): void
|
||||
{
|
||||
$sut = $this->createSut();
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ use App\Entity\User;
|
||||
use App\Repository\TimesheetRepository;
|
||||
use App\Tests\Mocks\SystemConfigurationFactory;
|
||||
use App\Widget\Type\AbstractCounterYear;
|
||||
use App\Widget\Type\AbstractWidget;
|
||||
use App\Widget\Type\AbstractWidgetType;
|
||||
use App\Widget\Type\ActiveUsersYear;
|
||||
|
||||
@@ -36,6 +37,11 @@ class ActiveUsersYearTest extends AbstractWidgetTypeTest
|
||||
return $sut;
|
||||
}
|
||||
|
||||
protected function assertDefaultData(AbstractWidget $sut): void
|
||||
{
|
||||
self::assertEquals(0, $sut->getData());
|
||||
}
|
||||
|
||||
public function getDefaultOptions(): array
|
||||
{
|
||||
return [
|
||||
@@ -44,7 +50,7 @@ class ActiveUsersYearTest extends AbstractWidgetTypeTest
|
||||
];
|
||||
}
|
||||
|
||||
public function testSettings()
|
||||
public function testSettings(): void
|
||||
{
|
||||
$sut = $this->createSut();
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
|
||||
*/
|
||||
class AmountMonthTest extends AbstractWidgetTest
|
||||
{
|
||||
protected function assertDefaultData(AbstractWidget $sut)
|
||||
protected function assertDefaultData(AbstractWidget $sut): void
|
||||
{
|
||||
self::assertEquals(0.0, $sut->getData());
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
|
||||
*/
|
||||
class AmountTodayTest extends AbstractWidgetTest
|
||||
{
|
||||
protected function assertDefaultData(AbstractWidget $sut)
|
||||
protected function assertDefaultData(AbstractWidget $sut): void
|
||||
{
|
||||
self::assertEquals(0.0, $sut->getData());
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
|
||||
*/
|
||||
class AmountTotalTest extends AbstractWidgetTest
|
||||
{
|
||||
protected function assertDefaultData(AbstractWidget $sut)
|
||||
protected function assertDefaultData(AbstractWidget $sut): void
|
||||
{
|
||||
self::assertEquals(0.0, $sut->getData());
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
|
||||
*/
|
||||
class AmountWeekTest extends AbstractWidgetTest
|
||||
{
|
||||
protected function assertDefaultData(AbstractWidget $sut)
|
||||
protected function assertDefaultData(AbstractWidget $sut): void
|
||||
{
|
||||
self::assertEquals(0.0, $sut->getData());
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
|
||||
*/
|
||||
class AmountYearTest extends AbstractWidgetTypeTest
|
||||
{
|
||||
protected function assertDefaultData(AbstractWidgetType $sut)
|
||||
protected function assertDefaultData(AbstractWidgetType $sut): void
|
||||
{
|
||||
self::assertEquals([], $sut->getData());
|
||||
}
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
<?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\Widget\Type;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Repository\TimesheetRepository;
|
||||
use App\Widget\Type\AbstractWidgetType;
|
||||
use App\Widget\Type\Counter;
|
||||
use DateTime;
|
||||
|
||||
/**
|
||||
* @covers \App\Widget\Type\Counter
|
||||
* @covers \App\Widget\Type\AbstractSimpleStatisticChart
|
||||
*/
|
||||
class CounterTest extends AbstractSimpleStatisticsWidgetTypeTest
|
||||
{
|
||||
public function createSut(): AbstractWidgetType
|
||||
{
|
||||
$sut = new Counter($this->createMock(TimesheetRepository::class));
|
||||
$sut->setQuery(TimesheetRepository::STATS_QUERY_AMOUNT);
|
||||
|
||||
return $sut;
|
||||
}
|
||||
|
||||
public function testQueryWithUser()
|
||||
{
|
||||
$user = new User();
|
||||
$user->setAlias('foo');
|
||||
|
||||
$repository = $this->createMock(TimesheetRepository::class);
|
||||
$repository->expects($this->once())->method('getStatistic')->willReturnCallback(function (string $type, ?DateTime $begin, ?DateTime $end, ?User $user) {
|
||||
self::assertNull($begin);
|
||||
self::assertNull($end);
|
||||
self::assertNull($user);
|
||||
});
|
||||
$sut = new Counter($repository);
|
||||
$sut->setQuery(TimesheetRepository::STATS_QUERY_AMOUNT);
|
||||
$sut->setUser($user);
|
||||
$sut->getData([]);
|
||||
|
||||
$user = new User();
|
||||
$user->setAlias('bar');
|
||||
|
||||
$repository = $this->createMock(TimesheetRepository::class);
|
||||
$repository->expects($this->once())->method('getStatistic')->willReturnCallback(function (string $type, ?DateTime $begin, ?DateTime $end, ?User $user) {
|
||||
self::assertNull($begin);
|
||||
self::assertNull($end);
|
||||
self::assertNotNull($user);
|
||||
self::assertEquals('bar', $user->getAlias());
|
||||
});
|
||||
$sut = new Counter($repository);
|
||||
$sut->setQuery(TimesheetRepository::STATS_QUERY_AMOUNT);
|
||||
$sut->setUser($user);
|
||||
$sut->setQueryWithUser(true);
|
||||
$sut->getData([]);
|
||||
}
|
||||
|
||||
public function getDefaultOptions(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public function testTemplateName()
|
||||
{
|
||||
/** @var Counter $sut */
|
||||
$sut = $this->createSut();
|
||||
self::assertEquals('widget/widget-counter.html.twig', $sut->getTemplateName());
|
||||
}
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
<?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\Widget\Type;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Repository\TimesheetRepository;
|
||||
use App\Tests\Mocks\SystemConfigurationFactory;
|
||||
use App\Widget\Type\AbstractWidgetType;
|
||||
use App\Widget\Type\Counter;
|
||||
use App\Widget\Type\DurationYear;
|
||||
use DateTime;
|
||||
|
||||
/**
|
||||
* @covers \App\Widget\Type\DurationYear
|
||||
* @covers \App\Widget\Type\AbstractCounterYear
|
||||
* @covers \App\Widget\Type\AbstractSimpleStatisticChart
|
||||
*/
|
||||
class CounterYearTest extends AbstractSimpleStatisticsWidgetTypeTest
|
||||
{
|
||||
public function createSut(?string $financialYear = null): AbstractWidgetType
|
||||
{
|
||||
$configuration = SystemConfigurationFactory::createStub(['company' => ['financial_year' => $financialYear]]);
|
||||
|
||||
$sut = new DurationYear($this->createMock(TimesheetRepository::class), $configuration);
|
||||
$sut->setQuery(TimesheetRepository::STATS_QUERY_AMOUNT);
|
||||
$sut->setUser(new User());
|
||||
|
||||
return $sut;
|
||||
}
|
||||
|
||||
public function testQueryWithUser()
|
||||
{
|
||||
$user = new User();
|
||||
$user->setAlias('foo');
|
||||
|
||||
$repository = $this->createMock(TimesheetRepository::class);
|
||||
$repository->expects($this->once())->method('getStatistic')->willReturnCallback(function (string $type, ?DateTime $begin, ?DateTime $end, ?User $user) {
|
||||
self::assertNull($begin);
|
||||
self::assertNull($end);
|
||||
self::assertNull($user);
|
||||
});
|
||||
$sut = new Counter($repository);
|
||||
$sut->setQuery(TimesheetRepository::STATS_QUERY_AMOUNT);
|
||||
$sut->setUser($user);
|
||||
$sut->getData([]);
|
||||
|
||||
$user = new User();
|
||||
$user->setAlias('bar');
|
||||
|
||||
$repository = $this->createMock(TimesheetRepository::class);
|
||||
$repository->expects($this->once())->method('getStatistic')->willReturnCallback(function (string $type, ?DateTime $begin, ?DateTime $end, ?User $user) {
|
||||
self::assertNull($begin);
|
||||
self::assertNull($end);
|
||||
self::assertNotNull($user);
|
||||
self::assertEquals('bar', $user->getAlias());
|
||||
});
|
||||
$sut = new Counter($repository);
|
||||
$sut->setQuery(TimesheetRepository::STATS_QUERY_AMOUNT);
|
||||
$sut->setUser($user);
|
||||
$sut->setQueryWithUser(true);
|
||||
$sut->getData([]);
|
||||
}
|
||||
|
||||
public function getDefaultOptions(): array
|
||||
{
|
||||
return ['icon' => 'duration', 'color' => 'yellow'];
|
||||
}
|
||||
|
||||
public function testTemplateName()
|
||||
{
|
||||
/** @var Counter $sut */
|
||||
$sut = $this->createSut();
|
||||
self::assertEquals('widget/widget-counter-duration.html.twig', $sut->getTemplateName());
|
||||
}
|
||||
|
||||
public function testTemplateNameWithFinancialYear()
|
||||
{
|
||||
/** @var Counter $sut */
|
||||
$sut = $this->createSut('2020-01-01');
|
||||
self::assertEquals('widget/widget-counter-duration.html.twig', $sut->getTemplateName());
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,7 @@ use App\Entity\User;
|
||||
use App\Repository\TimesheetRepository;
|
||||
use App\Tests\Mocks\SystemConfigurationFactory;
|
||||
use App\Widget\Type\AbstractCounterYear;
|
||||
use App\Widget\Type\AbstractWidget;
|
||||
use App\Widget\Type\AbstractWidgetType;
|
||||
use App\Widget\Type\DurationYear;
|
||||
|
||||
@@ -36,6 +37,11 @@ class DurationYearTest extends AbstractWidgetTypeTest
|
||||
return $sut;
|
||||
}
|
||||
|
||||
protected function assertDefaultData(AbstractWidget $sut): void
|
||||
{
|
||||
self::assertEquals(0, $sut->getData());
|
||||
}
|
||||
|
||||
public function getDefaultOptions(): array
|
||||
{
|
||||
return [
|
||||
|
||||
37
tests/Widget/Type/More.php
Normal file
37
tests/Widget/Type/More.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?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\Widget\Type;
|
||||
|
||||
use App\Widget\Type\AbstractWidgetType;
|
||||
|
||||
class More extends AbstractWidgetType
|
||||
{
|
||||
private mixed $data = null;
|
||||
|
||||
public function setData(mixed $data): self
|
||||
{
|
||||
$this->data = $data;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<string, string|bool|int|null> $options
|
||||
*/
|
||||
public function getData(array $options = []): mixed
|
||||
{
|
||||
return $this->data;
|
||||
}
|
||||
|
||||
public function getTemplateName(): string
|
||||
{
|
||||
return 'widget/widget-more.html.twig';
|
||||
}
|
||||
}
|
||||
@@ -10,10 +10,9 @@
|
||||
namespace App\Tests\Widget\Type;
|
||||
|
||||
use App\Widget\Type\AbstractWidgetType;
|
||||
use App\Widget\Type\More;
|
||||
|
||||
/**
|
||||
* @covers \App\Widget\Type\More
|
||||
* @covers \App\Tests\Widget\Type\More
|
||||
*/
|
||||
class MoreTest extends AbstractWidgetTypeTest
|
||||
{
|
||||
@@ -27,13 +26,13 @@ class MoreTest extends AbstractWidgetTypeTest
|
||||
return [];
|
||||
}
|
||||
|
||||
public function testTemplateName()
|
||||
public function testTemplateName(): void
|
||||
{
|
||||
$sut = new More();
|
||||
self::assertEquals('widget/widget-more.html.twig', $sut->getTemplateName());
|
||||
}
|
||||
|
||||
public function testData()
|
||||
public function testData(): void
|
||||
{
|
||||
$sut = $this->createSut();
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ class TotalsActivityTest extends AbstractWidgetTest
|
||||
];
|
||||
}
|
||||
|
||||
protected function assertDefaultData(AbstractWidgetType $sut)
|
||||
protected function assertDefaultData(AbstractWidgetType $sut): void
|
||||
{
|
||||
self::assertEquals(1, $sut->getData());
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ class TotalsCustomerTest extends AbstractWidgetTest
|
||||
];
|
||||
}
|
||||
|
||||
protected function assertDefaultData(AbstractWidgetType $sut)
|
||||
protected function assertDefaultData(AbstractWidgetType $sut): void
|
||||
{
|
||||
self::assertEquals(1, $sut->getData());
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ class TotalsProjectTest extends AbstractWidgetTest
|
||||
];
|
||||
}
|
||||
|
||||
protected function assertDefaultData(AbstractWidgetType $sut)
|
||||
protected function assertDefaultData(AbstractWidgetType $sut): void
|
||||
{
|
||||
self::assertEquals(1, $sut->getData());
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ class TotalsUserTest extends AbstractWidgetTest
|
||||
];
|
||||
}
|
||||
|
||||
protected function assertDefaultData(AbstractWidgetType $sut)
|
||||
protected function assertDefaultData(AbstractWidgetType $sut): void
|
||||
{
|
||||
self::assertEquals(1, $sut->getData());
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
|
||||
*/
|
||||
class UserAmountMonthTest extends AbstractWidgetTest
|
||||
{
|
||||
protected function assertDefaultData(AbstractWidget $sut)
|
||||
protected function assertDefaultData(AbstractWidget $sut): void
|
||||
{
|
||||
self::assertEquals(0.0, $sut->getData());
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
|
||||
*/
|
||||
class UserAmountTodayTest extends AbstractWidgetTest
|
||||
{
|
||||
protected function assertDefaultData(AbstractWidget $sut)
|
||||
protected function assertDefaultData(AbstractWidget $sut): void
|
||||
{
|
||||
self::assertEquals(0.0, $sut->getData());
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
|
||||
*/
|
||||
class UserAmountTotalTest extends AbstractWidgetTest
|
||||
{
|
||||
protected function assertDefaultData(AbstractWidget $sut)
|
||||
protected function assertDefaultData(AbstractWidget $sut): void
|
||||
{
|
||||
self::assertEquals(0.0, $sut->getData());
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
|
||||
*/
|
||||
class UserAmountWeekTest extends AbstractWidgetTest
|
||||
{
|
||||
protected function assertDefaultData(AbstractWidget $sut)
|
||||
protected function assertDefaultData(AbstractWidget $sut): void
|
||||
{
|
||||
self::assertEquals(0.0, $sut->getData());
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
|
||||
*/
|
||||
class UserAmountYearTest extends AbstractWidgetTypeTest
|
||||
{
|
||||
protected function assertDefaultData(AbstractWidgetType $sut)
|
||||
protected function assertDefaultData(AbstractWidgetType $sut): void
|
||||
{
|
||||
self::assertEquals([], $sut->getData());
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ use App\Entity\User;
|
||||
use App\Repository\TimesheetRepository;
|
||||
use App\Tests\Mocks\SystemConfigurationFactory;
|
||||
use App\Widget\Type\AbstractCounterYear;
|
||||
use App\Widget\Type\AbstractWidget;
|
||||
use App\Widget\Type\AbstractWidgetType;
|
||||
use App\Widget\Type\UserDurationYear;
|
||||
|
||||
@@ -36,6 +37,11 @@ class UserDurationYearTest extends AbstractWidgetTypeTest
|
||||
return $sut;
|
||||
}
|
||||
|
||||
protected function assertDefaultData(AbstractWidget $sut): void
|
||||
{
|
||||
self::assertEquals(0, $sut->getData());
|
||||
}
|
||||
|
||||
public function getDefaultOptions(): array
|
||||
{
|
||||
return [
|
||||
|
||||
Reference in New Issue
Block a user