added activity events for plugins (#2516)

This commit is contained in:
Kevin Papst
2021-04-21 15:56:17 +02:00
committed by GitHub
parent 08a144ac31
commit 09c9a95fcf
18 changed files with 591 additions and 8 deletions

View File

@@ -0,0 +1,29 @@
<?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\Event;
use App\Entity\Activity;
use App\Event\AbstractActivityEvent;
use PHPUnit\Framework\TestCase;
use Symfony\Contracts\EventDispatcher\Event;
abstract class AbstractActivityEventTest extends TestCase
{
abstract protected function createActivityEvent(Activity $activity): AbstractActivityEvent;
public function testGetterAndSetter()
{
$activity = new Activity();
$sut = $this->createActivityEvent($activity);
self::assertInstanceOf(Event::class, $sut);
self::assertSame($activity, $sut->getActivity());
}
}

View File

@@ -0,0 +1,26 @@
<?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\Event;
use App\Entity\Activity;
use App\Event\AbstractActivityEvent;
use App\Event\ActivityCreateEvent;
/**
* @covers \App\Event\AbstractActivityEvent
* @covers \App\Event\ActivityCreateEvent
*/
class ActivityCreateEventTest extends AbstractActivityEventTest
{
protected function createActivityEvent(Activity $activity): AbstractActivityEvent
{
return new ActivityCreateEvent($activity);
}
}

View File

@@ -0,0 +1,26 @@
<?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\Event;
use App\Entity\Activity;
use App\Event\AbstractActivityEvent;
use App\Event\ActivityCreatePostEvent;
/**
* @covers \App\Event\AbstractActivityEvent
* @covers \App\Event\ActivityCreatePostEvent
*/
class ActivityCreatePostEventTest extends AbstractActivityEventTest
{
protected function createActivityEvent(Activity $activity): AbstractActivityEvent
{
return new ActivityCreatePostEvent($activity);
}
}

View File

@@ -0,0 +1,26 @@
<?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\Event;
use App\Entity\Activity;
use App\Event\AbstractActivityEvent;
use App\Event\ActivityCreatePreEvent;
/**
* @covers \App\Event\AbstractActivityEvent
* @covers \App\Event\ActivityCreatePreEvent
*/
class ActivityCreatePreEventTest extends AbstractActivityEventTest
{
protected function createActivityEvent(Activity $activity): AbstractActivityEvent
{
return new ActivityCreatePreEvent($activity);
}
}

View File

@@ -0,0 +1,26 @@
<?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\Event;
use App\Entity\Activity;
use App\Event\AbstractActivityEvent;
use App\Event\ActivityUpdatePostEvent;
/**
* @covers \App\Event\AbstractActivityEvent
* @covers \App\Event\ActivityUpdatePostEvent
*/
class ActivityUpdatePostEventTest extends AbstractActivityEventTest
{
protected function createActivityEvent(Activity $activity): AbstractActivityEvent
{
return new ActivityUpdatePostEvent($activity);
}
}

View File

@@ -0,0 +1,26 @@
<?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\Event;
use App\Entity\Activity;
use App\Event\AbstractActivityEvent;
use App\Event\ActivityUpdatePreEvent;
/**
* @covers \App\Event\AbstractActivityEvent
* @covers \App\Event\ActivityUpdatePreEvent
*/
class ActivityUpdatePreEventTest extends AbstractActivityEventTest
{
protected function createActivityEvent(Activity $activity): AbstractActivityEvent
{
return new ActivityUpdatePreEvent($activity);
}
}

View File

@@ -0,0 +1,35 @@
<?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\Event;
use App\Entity\User;
use App\Event\ReportingEvent;
use App\Reporting\Report;
use PHPUnit\Framework\TestCase;
/**
* @covers \App\Event\ReportingEvent
*/
class ReportingEventTest extends TestCase
{
public function testGetterAndSetter()
{
$user = new User();
$sut = new ReportingEvent($user);
self::assertSame($user, $sut->getUser());
self::assertEquals([], $sut->getReports());
$report = new Report('id', 'route', 'label', 'icon');
$sut->addReport($report);
self::assertSame([$report], $sut->getReports());
}
}