query widget data for user (#1917)

This commit is contained in:
Kevin Papst
2020-08-24 18:37:42 +02:00
committed by GitHub
parent c2c4f087e4
commit 8464cd925e
5 changed files with 95 additions and 40 deletions

View File

@@ -9,6 +9,8 @@
namespace App\Tests\Widget\Type;
use App\Widget\Type\SimpleStatisticChart;
/**
* @covers \App\Widget\Type\SimpleStatisticChart
*/
@@ -17,6 +19,7 @@ abstract class AbstractSimpleStatisticsWidgetTypeTest extends AbstractWidgetType
public function testData()
{
$sut = $this->createSut();
self::assertInstanceOf(SimpleStatisticChart::class, $sut);
$this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage('Cannot set data on instances of SimpleStatisticChart');

View File

@@ -9,10 +9,12 @@
namespace App\Tests\Widget\Type;
use App\Entity\User;
use App\Repository\TimesheetRepository;
use App\Widget\Type\AbstractWidgetType;
use App\Widget\Type\Counter;
use App\Widget\Type\SimpleWidget;
use DateTime;
/**
* @covers \App\Widget\Type\Counter
@@ -29,6 +31,41 @@ class CounterTest extends AbstractSimpleStatisticsWidgetTypeTest
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::assertEquals($type, 'active');
self::assertNull($begin);
self::assertNull($end);
self::assertNull($user);
});
$sut = new Counter($repository);
$sut->setQuery(TimesheetRepository::STATS_QUERY_ACTIVE);
$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::assertEquals($type, 'active');
self::assertNull($begin);
self::assertNull($end);
self::assertNotNull($user);
self::assertEquals('bar', $user->getAlias());
});
$sut = new Counter($repository);
$sut->setQuery(TimesheetRepository::STATS_QUERY_ACTIVE);
$sut->setUser($user);
$sut->setQueryWithUser(true);
$sut->getData([]);
}
public function getDefaultOptions(): array
{
return ['dataType' => 'int'];