Release 2.12 (#4609)
This commit is contained in:
12
.github/release-drafter.yml
vendored
12
.github/release-drafter.yml
vendored
@@ -1,17 +1,5 @@
|
||||
name-template: '$RESOLVED_VERSION'
|
||||
tag-template: '$RESOLVED_VERSION'
|
||||
categories:
|
||||
- title: 'Enhancements'
|
||||
labels:
|
||||
- 'feature request'
|
||||
- 'technical debt'
|
||||
- 'translation'
|
||||
- title: 'Fixed bugs'
|
||||
labels:
|
||||
- 'bug'
|
||||
- title: 'Infrastructure'
|
||||
labels:
|
||||
- 'infrastructure'
|
||||
exclude-labels:
|
||||
- 'duplicate'
|
||||
- 'invalid'
|
||||
|
||||
@@ -42,7 +42,7 @@ final class Version20230126002049 extends AbstractMigration
|
||||
|
||||
$users = $schema->getTable('kimai2_users');
|
||||
if (!$users->hasColumn('totp_secret')) {
|
||||
$users->addColumn('totp_secret', 'string', ['notnull' => false, 'default' => null]);
|
||||
$users->addColumn('totp_secret', 'string', ['length' => 255, 'notnull' => false, 'default' => null]);
|
||||
$users->addColumn('totp_enabled', 'boolean', ['notnull' => true, 'default' => false]);
|
||||
}
|
||||
if (!$users->hasColumn('system_account')) {
|
||||
|
||||
@@ -51,7 +51,7 @@ final class LocaleService
|
||||
|
||||
public function isKnownLocale(string $language): bool
|
||||
{
|
||||
return \in_array($language, $this->getAllLocales());
|
||||
return \in_array($language, $this->getAllLocales(), true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,11 +17,11 @@ class Constants
|
||||
/**
|
||||
* The current release version
|
||||
*/
|
||||
public const VERSION = '2.11.0';
|
||||
public const VERSION = '2.12.0';
|
||||
/**
|
||||
* The current release: major * 10000 + minor * 100 + patch
|
||||
*/
|
||||
public const VERSION_ID = 21100;
|
||||
public const VERSION_ID = 21200;
|
||||
/**
|
||||
* The software name
|
||||
*/
|
||||
|
||||
@@ -15,12 +15,16 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\Security\Http\SecurityRequestAttributes;
|
||||
|
||||
#[Route(path: '/saml')]
|
||||
final class SamlController extends AbstractController
|
||||
{
|
||||
public function __construct(private SamlAuthFactory $authFactory, private SamlConfigurationInterface $samlConfiguration)
|
||||
public function __construct(
|
||||
private readonly SamlAuthFactory $authFactory,
|
||||
private readonly SamlConfigurationInterface $samlConfiguration
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -51,7 +55,12 @@ final class SamlController extends AbstractController
|
||||
}
|
||||
|
||||
// this does set headers and exit as $stay is not set to true
|
||||
$url = $this->authFactory->create()->login($session->get('_security.main.target_path'));
|
||||
$redirectTarget = $session->get('_security.main.target_path');
|
||||
if ($redirectTarget === null || $redirectTarget === '') {
|
||||
$redirectTarget = $this->generateUrl('homepage', [], UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
}
|
||||
|
||||
$url = $this->authFactory->create()->login($redirectTarget);
|
||||
|
||||
if ($url === null) {
|
||||
throw new \RuntimeException('SAML login failed');
|
||||
|
||||
@@ -209,8 +209,9 @@ class User implements UserInterface, EquatableInterface, ThemeUserInterface, Pas
|
||||
private array $roles = [];
|
||||
/**
|
||||
* If not empty two-factor authentication is enabled.
|
||||
* TODO reduce the length, which was initially forgotten and set to 255, as this is the default for MySQL with Doctrine (see migration Version20230126002049)
|
||||
*/
|
||||
#[ORM\Column(name: 'totp_secret', type: 'string', nullable: true)]
|
||||
#[ORM\Column(name: 'totp_secret', type: 'string', length: 255, nullable: true)]
|
||||
private ?string $totpSecret = null;
|
||||
#[ORM\Column(name: 'totp_enabled', type: 'boolean', nullable: false, options: ['default' => false])]
|
||||
private bool $totpEnabled = false;
|
||||
@@ -1287,9 +1288,11 @@ class User implements UserInterface, EquatableInterface, ThemeUserInterface, Pas
|
||||
return $group === null ? $group : (string) $group;
|
||||
}
|
||||
|
||||
public function getHolidaysPerYear(): int
|
||||
public function getHolidaysPerYear(): float
|
||||
{
|
||||
return (int) $this->getPreferenceValue(UserPreference::HOLIDAYS_PER_YEAR, 0);
|
||||
$holidays = $this->getPreferenceValue(UserPreference::HOLIDAYS_PER_YEAR, 0.0);
|
||||
|
||||
return $this->getFormattedHoliday(is_numeric($holidays) ? $holidays : 0.0);
|
||||
}
|
||||
|
||||
public function setWorkHoursMonday(int $seconds): void
|
||||
@@ -1332,14 +1335,28 @@ class User implements UserInterface, EquatableInterface, ThemeUserInterface, Pas
|
||||
$this->setPreferenceValue(UserPreference::PUBLIC_HOLIDAY_GROUP, $group);
|
||||
}
|
||||
|
||||
public function setHolidaysPerYear(?int $holidays): void
|
||||
public function setHolidaysPerYear(?float $holidays): void
|
||||
{
|
||||
$this->setPreferenceValue(UserPreference::HOLIDAYS_PER_YEAR, $holidays ?? 0);
|
||||
if ($holidays !== null) {
|
||||
// makes sure that the number is a multiple of 0.5
|
||||
$holidays = $this->getFormattedHoliday($holidays);
|
||||
}
|
||||
|
||||
$this->setPreferenceValue(UserPreference::HOLIDAYS_PER_YEAR, $holidays ?? 0.0);
|
||||
}
|
||||
|
||||
private function getFormattedHoliday(int|float|string|null $holidays): float
|
||||
{
|
||||
if (!is_numeric($holidays)) {
|
||||
$holidays = 0.0;
|
||||
}
|
||||
|
||||
return (float) number_format((round($holidays * 2) / 2), 1);
|
||||
}
|
||||
|
||||
public function hasContractSettings(): bool
|
||||
{
|
||||
return $this->hasWorkHourConfiguration() || $this->getHolidaysPerYear() !== 0;
|
||||
return $this->hasWorkHourConfiguration() || $this->getHolidaysPerYear() !== 0.0;
|
||||
}
|
||||
|
||||
public function hasWorkHourConfiguration(): bool
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
{% for column in project.data.data %}
|
||||
{% set dateKey = column.date|report_date %}
|
||||
<td class="text-nowrap text-center day-total {% block column_classes_project %}{% endblock %}">
|
||||
{% if column.duration > 0 or column.rate > 0 or column.internalRate > 0 %}
|
||||
{% if column.duration != 0 or column.rate != 0 or column.internalRate != 0 %}
|
||||
{% if dataType == 'rate' %}
|
||||
{% set totalsRate = totalsRate|merge({(dateKey): (totalsRate[dateKey] + column.rate)}) %}
|
||||
<strong>{{ column.rate|money(currency) }}</strong>
|
||||
@@ -103,7 +103,7 @@
|
||||
</td>
|
||||
{% for column in activity.data.data %}
|
||||
<td class="text-nowrap text-center day-total {% block column_classes_activity %}{% endblock %}">
|
||||
{% if column.duration > 0 or column.rate > 0 or column.internalRate > 0 %}
|
||||
{% if column.duration != 0 or column.rate != 0 or column.internalRate != 0 %}
|
||||
{% if dataType == 'rate' %}
|
||||
{{ column.rate|money(currency) }}
|
||||
{% elseif dataType == 'internalRate' %}
|
||||
|
||||
@@ -20,12 +20,12 @@ use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
*/
|
||||
class ActionsControllerTest extends APIControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/api/actions/timesheet/1/index/en');
|
||||
}
|
||||
|
||||
public function test_getTimesheetActions()
|
||||
public function test_getTimesheetActions(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
|
||||
@@ -71,7 +71,7 @@ class ActionsControllerTest extends APIControllerBaseTest
|
||||
}
|
||||
}
|
||||
|
||||
public function test_getActivityActions()
|
||||
public function test_getActivityActions(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
@@ -121,7 +121,7 @@ class ActionsControllerTest extends APIControllerBaseTest
|
||||
}
|
||||
}
|
||||
|
||||
public function test_getProjectActions()
|
||||
public function test_getProjectActions(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
@@ -170,7 +170,7 @@ class ActionsControllerTest extends APIControllerBaseTest
|
||||
}
|
||||
}
|
||||
|
||||
public function test_getCustomerActions()
|
||||
public function test_getCustomerActions(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
return [$rate1, $rate2];
|
||||
}
|
||||
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/api/activities');
|
||||
}
|
||||
@@ -201,7 +201,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
yield ['/api/activities', 1, ['projects' => ['2'], 'visible' => VisibilityInterface::SHOW_HIDDEN], [[true, 2], [false]]];
|
||||
}
|
||||
|
||||
public function testGetCollectionWithQuery()
|
||||
public function testGetCollectionWithQuery(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$imports = $this->loadActivityTestData();
|
||||
@@ -219,7 +219,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
$this->assertEquals($imports[1]->getId(), $result[2]['project']);
|
||||
}
|
||||
|
||||
public function testGetEntity()
|
||||
public function testGetEntity(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->assertAccessIsGranted($client, '/api/activities/1');
|
||||
@@ -229,12 +229,12 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
self::assertApiResponseTypeStructure('ActivityEntity', $result);
|
||||
}
|
||||
|
||||
public function testNotFound()
|
||||
public function testNotFound(): void
|
||||
{
|
||||
$this->assertEntityNotFound(User::ROLE_USER, '/api/activities/' . PHP_INT_MAX, 'GET', 'App\\Entity\\Activity object not found by the @ParamConverter annotation.');
|
||||
}
|
||||
|
||||
public function testPostAction()
|
||||
public function testPostAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -253,7 +253,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
$this->assertNotEmpty($result['id']);
|
||||
}
|
||||
|
||||
public function testPostActionWithLeastFields()
|
||||
public function testPostActionWithLeastFields(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -268,7 +268,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
$this->assertNotEmpty($result['id']);
|
||||
}
|
||||
|
||||
public function testPostActionWithInvalidUser()
|
||||
public function testPostActionWithInvalidUser(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$data = [
|
||||
@@ -281,7 +281,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
$this->assertApiResponseAccessDenied($response, 'User cannot create activities');
|
||||
}
|
||||
|
||||
public function testPostActionWithInvalidData()
|
||||
public function testPostActionWithInvalidData(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -295,7 +295,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
$this->assertApiCallValidationError($response, ['project'], true);
|
||||
}
|
||||
|
||||
public function testPatchAction()
|
||||
public function testPatchAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -314,7 +314,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
$this->assertNotEmpty($result['id']);
|
||||
}
|
||||
|
||||
public function testPatchActionWithNonGlobalActivity()
|
||||
public function testPatchActionWithNonGlobalActivity(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$imports = $this->loadActivityTestData();
|
||||
@@ -337,7 +337,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
$this->assertEquals($imports[1]->getId(), $result['project']);
|
||||
}
|
||||
|
||||
public function testPatchActionWithInvalidUser()
|
||||
public function testPatchActionWithInvalidUser(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
|
||||
@@ -352,12 +352,12 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
$this->assertApiResponseAccessDenied($response, 'User cannot update activity');
|
||||
}
|
||||
|
||||
public function testPatchActionWithUnknownActivity()
|
||||
public function testPatchActionWithUnknownActivity(): void
|
||||
{
|
||||
$this->assertEntityNotFoundForPatch(User::ROLE_USER, '/api/activities/255', []);
|
||||
}
|
||||
|
||||
public function testInvalidPatchAction()
|
||||
public function testInvalidPatchAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -371,12 +371,12 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
$this->assertApiCallValidationError($response, ['name']);
|
||||
}
|
||||
|
||||
public function testMetaActionThrowsNotFound()
|
||||
public function testMetaActionThrowsNotFound(): void
|
||||
{
|
||||
$this->assertEntityNotFoundForPatch(User::ROLE_ADMIN, '/api/activities/42/meta', []);
|
||||
}
|
||||
|
||||
public function testMetaActionThrowsExceptionOnMissingName()
|
||||
public function testMetaActionThrowsExceptionOnMissingName(): void
|
||||
{
|
||||
$this->assertExceptionForPatchAction(User::ROLE_ADMIN, '/api/activities/1/meta', ['value' => 'X'], [
|
||||
'code' => 400,
|
||||
@@ -384,7 +384,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testMetaActionThrowsExceptionOnMissingValue()
|
||||
public function testMetaActionThrowsExceptionOnMissingValue(): void
|
||||
{
|
||||
$this->assertExceptionForPatchAction(User::ROLE_ADMIN, '/api/activities/1/meta', ['name' => 'X'], [
|
||||
'code' => 400,
|
||||
@@ -392,7 +392,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testMetaActionThrowsExceptionOnMissingMetafield()
|
||||
public function testMetaActionThrowsExceptionOnMissingMetafield(): void
|
||||
{
|
||||
$this->assertExceptionForPatchAction(User::ROLE_ADMIN, '/api/activities/1/meta', ['name' => 'X', 'value' => 'Y'], [
|
||||
'code' => 404,
|
||||
@@ -400,7 +400,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testMetaAction()
|
||||
public function testMetaAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
static::getContainer()->get('event_dispatcher')->addSubscriber(new ActivityTestMetaFieldSubscriberMock());
|
||||
|
||||
@@ -41,7 +41,7 @@ class SessionAuthenticatorTest extends TestCase
|
||||
return new SessionAuthenticator($token);
|
||||
}
|
||||
|
||||
public function testSupports()
|
||||
public function testSupports(): void
|
||||
{
|
||||
$sut = $this->getSut();
|
||||
|
||||
@@ -65,7 +65,7 @@ class SessionAuthenticatorTest extends TestCase
|
||||
self::assertFalse($sut->supports($request));
|
||||
}
|
||||
|
||||
public function testAuthenticateWithMissingAuthHeader()
|
||||
public function testAuthenticateWithMissingAuthHeader(): void
|
||||
{
|
||||
$this->expectException(CustomUserMessageAuthenticationException::class);
|
||||
$this->expectExceptionMessage('Authentication required, missing user header: X-AUTH-USER');
|
||||
@@ -76,7 +76,7 @@ class SessionAuthenticatorTest extends TestCase
|
||||
$sut->authenticate($request);
|
||||
}
|
||||
|
||||
public function testAuthenticateWithMissingToken()
|
||||
public function testAuthenticateWithMissingToken(): void
|
||||
{
|
||||
$this->expectException(CustomUserMessageAuthenticationException::class);
|
||||
$this->expectExceptionMessage('Authentication required, missing token header: X-AUTH-TOKEN');
|
||||
@@ -87,7 +87,7 @@ class SessionAuthenticatorTest extends TestCase
|
||||
$sut->authenticate($request);
|
||||
}
|
||||
|
||||
public function testAuthenticateWithEmptyToken()
|
||||
public function testAuthenticateWithEmptyToken(): void
|
||||
{
|
||||
$this->expectException(CustomUserMessageAuthenticationException::class);
|
||||
$this->expectExceptionMessage('Authentication required, missing token header: X-AUTH-TOKEN');
|
||||
@@ -98,7 +98,7 @@ class SessionAuthenticatorTest extends TestCase
|
||||
$sut->authenticate($request);
|
||||
}
|
||||
|
||||
public function testAuthenticateWithMissingUser()
|
||||
public function testAuthenticateWithMissingUser(): void
|
||||
{
|
||||
$this->expectException(CustomUserMessageAuthenticationException::class);
|
||||
$this->expectExceptionMessage('Authentication required, missing user header: X-AUTH-USER');
|
||||
@@ -109,7 +109,7 @@ class SessionAuthenticatorTest extends TestCase
|
||||
$sut->authenticate($request);
|
||||
}
|
||||
|
||||
public function testAuthenticateWithEmptyUser()
|
||||
public function testAuthenticateWithEmptyUser(): void
|
||||
{
|
||||
$this->expectException(CustomUserMessageAuthenticationException::class);
|
||||
$this->expectExceptionMessage('Authentication required, missing user header: X-AUTH-USER');
|
||||
@@ -120,7 +120,7 @@ class SessionAuthenticatorTest extends TestCase
|
||||
$sut->authenticate($request);
|
||||
}
|
||||
|
||||
public function testAuthenticate()
|
||||
public function testAuthenticate(): void
|
||||
{
|
||||
$sut = $this->getSut();
|
||||
|
||||
@@ -141,7 +141,7 @@ class SessionAuthenticatorTest extends TestCase
|
||||
self::assertTrue($badge->isResolved());
|
||||
}
|
||||
|
||||
public function testAuthenticateFailsOnMissingApiTokenForUser()
|
||||
public function testAuthenticateFailsOnMissingApiTokenForUser(): void
|
||||
{
|
||||
$this->expectException(BadCredentialsException::class);
|
||||
$this->expectExceptionMessage('The user has no activated API account.');
|
||||
@@ -158,7 +158,7 @@ class SessionAuthenticatorTest extends TestCase
|
||||
$badge->executeCustomChecker($user);
|
||||
}
|
||||
|
||||
public function testAuthenticateFailsOnWrongPassword()
|
||||
public function testAuthenticateFailsOnWrongPassword(): void
|
||||
{
|
||||
$this->expectException(BadCredentialsException::class);
|
||||
$this->expectExceptionMessage('The presented password is invalid.');
|
||||
|
||||
@@ -38,7 +38,7 @@ class TokenAuthenticatorTest extends TestCase
|
||||
return new TokenAuthenticator($userProvider, $passwordHasherFactory);
|
||||
}
|
||||
|
||||
public function testSupports()
|
||||
public function testSupports(): void
|
||||
{
|
||||
$sut = $this->getSut();
|
||||
|
||||
@@ -62,7 +62,7 @@ class TokenAuthenticatorTest extends TestCase
|
||||
self::assertTrue($sut->supports($request));
|
||||
}
|
||||
|
||||
public function testAuthenticateWithMissingAuthHeader()
|
||||
public function testAuthenticateWithMissingAuthHeader(): void
|
||||
{
|
||||
$this->expectException(CustomUserMessageAuthenticationException::class);
|
||||
$this->expectExceptionMessage('Authentication required, missing user header: X-AUTH-USER');
|
||||
@@ -73,7 +73,7 @@ class TokenAuthenticatorTest extends TestCase
|
||||
$sut->authenticate($request);
|
||||
}
|
||||
|
||||
public function testAuthenticateWithMissingToken()
|
||||
public function testAuthenticateWithMissingToken(): void
|
||||
{
|
||||
$this->expectException(CustomUserMessageAuthenticationException::class);
|
||||
$this->expectExceptionMessage('Authentication required, missing token header: X-AUTH-TOKEN');
|
||||
@@ -84,7 +84,7 @@ class TokenAuthenticatorTest extends TestCase
|
||||
$sut->authenticate($request);
|
||||
}
|
||||
|
||||
public function testAuthenticateWithEmptyToken()
|
||||
public function testAuthenticateWithEmptyToken(): void
|
||||
{
|
||||
$this->expectException(CustomUserMessageAuthenticationException::class);
|
||||
$this->expectExceptionMessage('Authentication required, missing token header: X-AUTH-TOKEN');
|
||||
@@ -95,7 +95,7 @@ class TokenAuthenticatorTest extends TestCase
|
||||
$sut->authenticate($request);
|
||||
}
|
||||
|
||||
public function testAuthenticateWithMissingUser()
|
||||
public function testAuthenticateWithMissingUser(): void
|
||||
{
|
||||
$this->expectException(CustomUserMessageAuthenticationException::class);
|
||||
$this->expectExceptionMessage('Authentication required, missing user header: X-AUTH-USER');
|
||||
@@ -106,7 +106,7 @@ class TokenAuthenticatorTest extends TestCase
|
||||
$sut->authenticate($request);
|
||||
}
|
||||
|
||||
public function testAuthenticateWithEmptyUser()
|
||||
public function testAuthenticateWithEmptyUser(): void
|
||||
{
|
||||
$this->expectException(CustomUserMessageAuthenticationException::class);
|
||||
$this->expectExceptionMessage('Authentication required, missing user header: X-AUTH-USER');
|
||||
@@ -117,7 +117,7 @@ class TokenAuthenticatorTest extends TestCase
|
||||
$sut->authenticate($request);
|
||||
}
|
||||
|
||||
public function testAuthenticate()
|
||||
public function testAuthenticate(): void
|
||||
{
|
||||
$sut = $this->getSut();
|
||||
|
||||
@@ -138,7 +138,7 @@ class TokenAuthenticatorTest extends TestCase
|
||||
self::assertTrue($badge->isResolved());
|
||||
}
|
||||
|
||||
public function testAuthenticateFailsOnMissingApiTokenForUser()
|
||||
public function testAuthenticateFailsOnMissingApiTokenForUser(): void
|
||||
{
|
||||
$this->expectException(BadCredentialsException::class);
|
||||
$this->expectExceptionMessage('The user has no activated API account.');
|
||||
@@ -155,7 +155,7 @@ class TokenAuthenticatorTest extends TestCase
|
||||
$badge->executeCustomChecker($user);
|
||||
}
|
||||
|
||||
public function testAuthenticateFailsOnWrongPassword()
|
||||
public function testAuthenticateFailsOnWrongPassword(): void
|
||||
{
|
||||
$this->expectException(BadCredentialsException::class);
|
||||
$this->expectExceptionMessage('The presented password is invalid.');
|
||||
|
||||
@@ -16,12 +16,12 @@ use App\Entity\User;
|
||||
*/
|
||||
class ConfigurationControllerTest extends APIControllerBaseTest
|
||||
{
|
||||
public function testIsTimesheetSecure()
|
||||
public function testIsTimesheetSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/api/config/timesheet');
|
||||
}
|
||||
|
||||
public function testGetTimesheet()
|
||||
public function testGetTimesheet(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->assertAccessIsGranted($client, '/api/config/timesheet', 'GET');
|
||||
|
||||
@@ -87,12 +87,12 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
return [$rate1, $rate2];
|
||||
}
|
||||
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/api/customers');
|
||||
}
|
||||
|
||||
public function testGetCollection()
|
||||
public function testGetCollection(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->assertAccessIsGranted($client, '/api/customers');
|
||||
@@ -104,7 +104,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
self::assertApiResponseTypeStructure('CustomerCollection', $result[0]);
|
||||
}
|
||||
|
||||
public function testGetCollectionWithQuery()
|
||||
public function testGetCollectionWithQuery(): void
|
||||
{
|
||||
$query = ['order' => 'ASC', 'orderBy' => 'name', 'visible' => 3, 'term' => 'test'];
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
@@ -117,7 +117,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
self::assertApiResponseTypeStructure('CustomerCollection', $result[0]);
|
||||
}
|
||||
|
||||
public function testGetEntity()
|
||||
public function testGetEntity(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->assertAccessIsGranted($client, '/api/customers/1');
|
||||
@@ -127,7 +127,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
self::assertApiResponseTypeStructure('CustomerEntity', $result);
|
||||
}
|
||||
|
||||
public function testGetEntityWithFullResponse()
|
||||
public function testGetEntityWithFullResponse(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
|
||||
@@ -171,12 +171,12 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
self::assertApiResponseTypeStructure('CustomerEntity', $result);
|
||||
}
|
||||
|
||||
public function testNotFound()
|
||||
public function testNotFound(): void
|
||||
{
|
||||
$this->assertEntityNotFound(User::ROLE_USER, '/api/customers/' . PHP_INT_MAX, 'GET', 'App\\Entity\\Customer object not found by the @ParamConverter annotation.');
|
||||
}
|
||||
|
||||
public function testPostAction()
|
||||
public function testPostAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -197,7 +197,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
$this->assertNotEmpty($result['id']);
|
||||
}
|
||||
|
||||
public function testPostActionWithLeastFields()
|
||||
public function testPostActionWithLeastFields(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -215,7 +215,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
$this->assertNotEmpty($result['id']);
|
||||
}
|
||||
|
||||
public function testPostActionWithInvalidUser()
|
||||
public function testPostActionWithInvalidUser(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$data = [
|
||||
@@ -230,7 +230,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
$this->assertApiResponseAccessDenied($response, 'User cannot create customers');
|
||||
}
|
||||
|
||||
public function testPostActionWithInvalidData()
|
||||
public function testPostActionWithInvalidData(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -246,7 +246,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
$this->assertApiCallValidationError($response, ['country', 'currency', 'timezone'], true);
|
||||
}
|
||||
|
||||
public function testPatchAction()
|
||||
public function testPatchAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -268,7 +268,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
$this->assertNotEmpty($result['id']);
|
||||
}
|
||||
|
||||
public function testPatchActionWithInvalidUser()
|
||||
public function testPatchActionWithInvalidUser(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
|
||||
@@ -285,12 +285,12 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
$this->assertApiResponseAccessDenied($response, 'User cannot update customer');
|
||||
}
|
||||
|
||||
public function testPatchActionWithUnknownActivity()
|
||||
public function testPatchActionWithUnknownActivity(): void
|
||||
{
|
||||
$this->assertEntityNotFoundForPatch(User::ROLE_USER, '/api/customers/255', []);
|
||||
}
|
||||
|
||||
public function testInvalidPatchAction()
|
||||
public function testInvalidPatchAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -307,19 +307,19 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
$this->assertApiCallValidationError($response, ['currency']);
|
||||
}
|
||||
|
||||
public function testMetaActionNotAllowed()
|
||||
public function testMetaActionNotAllowed(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->request($client, '/api/customers/1/meta', 'PATCH', [], json_encode(['name' => 'asdasd']));
|
||||
$this->assertApiResponseAccessDenied($client->getResponse(), 'You are not allowed to update this customer');
|
||||
}
|
||||
|
||||
public function testMetaActionThrowsNotFound()
|
||||
public function testMetaActionThrowsNotFound(): void
|
||||
{
|
||||
$this->assertEntityNotFoundForPatch(User::ROLE_ADMIN, '/api/customers/42/meta', []);
|
||||
}
|
||||
|
||||
public function testMetaActionThrowsExceptionOnMissingName()
|
||||
public function testMetaActionThrowsExceptionOnMissingName(): void
|
||||
{
|
||||
$this->assertExceptionForPatchAction(User::ROLE_ADMIN, '/api/customers/1/meta', ['value' => 'X'], [
|
||||
'code' => 400,
|
||||
@@ -327,7 +327,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testMetaActionThrowsExceptionOnMissingValue()
|
||||
public function testMetaActionThrowsExceptionOnMissingValue(): void
|
||||
{
|
||||
$this->assertExceptionForPatchAction(User::ROLE_ADMIN, '/api/customers/1/meta', ['name' => 'X'], [
|
||||
'code' => 400,
|
||||
@@ -335,7 +335,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testMetaActionThrowsExceptionOnMissingMetafield()
|
||||
public function testMetaActionThrowsExceptionOnMissingMetafield(): void
|
||||
{
|
||||
$this->assertExceptionForPatchAction(User::ROLE_ADMIN, '/api/customers/1/meta', ['name' => 'X', 'value' => 'Y'], [
|
||||
'code' => 404,
|
||||
@@ -343,7 +343,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testMetaAction()
|
||||
public function testMetaAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
self::getContainer()->get('event_dispatcher')->addSubscriber(new CustomerTestMetaFieldSubscriberMock());
|
||||
|
||||
@@ -17,7 +17,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class TimesheetConfigTest extends TestCase
|
||||
{
|
||||
public function testSetter()
|
||||
public function testSetter(): void
|
||||
{
|
||||
$sut = new TimesheetConfig();
|
||||
$sut->setIsAllowFutureTimes(false);
|
||||
|
||||
@@ -17,7 +17,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class NotFoundExceptionTest extends TestCase
|
||||
{
|
||||
public function testConstructor()
|
||||
public function testConstructor(): void
|
||||
{
|
||||
$sut = new NotFoundException();
|
||||
self::assertEquals('Not found', $sut->getMessage());
|
||||
|
||||
@@ -88,12 +88,12 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
return [$rate1, $rate2];
|
||||
}
|
||||
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/api/projects');
|
||||
}
|
||||
|
||||
public function testGetCollection()
|
||||
public function testGetCollection(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->assertAccessIsGranted($client, '/api/projects');
|
||||
@@ -242,7 +242,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
yield ['/api/projects', 1, ['customers' => ['2', '2'], 'visible' => VisibilityInterface::SHOW_HIDDEN, 'start' => '2010-12-11', 'end' => '2030-12-11'], []];
|
||||
}
|
||||
|
||||
public function testGetEntity()
|
||||
public function testGetEntity(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$em = $this->getEntityManager();
|
||||
@@ -297,12 +297,12 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
}
|
||||
}
|
||||
|
||||
public function testNotFound()
|
||||
public function testNotFound(): void
|
||||
{
|
||||
$this->assertEntityNotFound(User::ROLE_USER, '/api/projects/' . PHP_INT_MAX, 'GET', 'App\\Entity\\Project object not found by the @ParamConverter annotation.');
|
||||
}
|
||||
|
||||
public function testPostAction()
|
||||
public function testPostAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -331,7 +331,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
self::assertFalse($result['visible']);
|
||||
}
|
||||
|
||||
public function testPostActionWithOtherFields()
|
||||
public function testPostActionWithOtherFields(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -354,7 +354,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
self::assertTrue($result['visible']);
|
||||
}
|
||||
|
||||
public function testPostActionWithOtherFieldsAndFalse()
|
||||
public function testPostActionWithOtherFieldsAndFalse(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -377,7 +377,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
self::assertFalse($result['visible']);
|
||||
}
|
||||
|
||||
public function testPostActionWithOtherFields3()
|
||||
public function testPostActionWithOtherFields3(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -400,7 +400,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
self::assertTrue($result['visible']);
|
||||
}
|
||||
|
||||
public function testPostActionWithLeastFields()
|
||||
public function testPostActionWithLeastFields(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -420,7 +420,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
self::assertFalse($result['visible']);
|
||||
}
|
||||
|
||||
public function testPostActionWithInvalidUser()
|
||||
public function testPostActionWithInvalidUser(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$data = [
|
||||
@@ -433,7 +433,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
$this->assertApiResponseAccessDenied($response, 'User cannot create projects');
|
||||
}
|
||||
|
||||
public function testPostActionWithInvalidData()
|
||||
public function testPostActionWithInvalidData(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -447,7 +447,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
$this->assertApiCallValidationError($response, ['customer'], true);
|
||||
}
|
||||
|
||||
public function testPatchAction()
|
||||
public function testPatchAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -467,7 +467,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
$this->assertNotEmpty($result['id']);
|
||||
}
|
||||
|
||||
public function testPatchActionWithInvalidUser()
|
||||
public function testPatchActionWithInvalidUser(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
|
||||
@@ -482,12 +482,12 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
$this->assertApiResponseAccessDenied($response, 'User cannot update project');
|
||||
}
|
||||
|
||||
public function testPatchActionWithUnknownActivity()
|
||||
public function testPatchActionWithUnknownActivity(): void
|
||||
{
|
||||
$this->assertEntityNotFoundForPatch(User::ROLE_USER, '/api/projects/255', []);
|
||||
}
|
||||
|
||||
public function testInvalidPatchAction()
|
||||
public function testInvalidPatchAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -502,12 +502,12 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
$this->assertApiCallValidationError($response, ['customer']);
|
||||
}
|
||||
|
||||
public function testMetaActionThrowsNotFound()
|
||||
public function testMetaActionThrowsNotFound(): void
|
||||
{
|
||||
$this->assertEntityNotFoundForPatch(User::ROLE_ADMIN, '/api/projects/42/meta', []);
|
||||
}
|
||||
|
||||
public function testMetaActionThrowsExceptionOnMissingName()
|
||||
public function testMetaActionThrowsExceptionOnMissingName(): void
|
||||
{
|
||||
$this->assertExceptionForPatchAction(User::ROLE_ADMIN, '/api/projects/1/meta', ['value' => 'X'], [
|
||||
'code' => 400,
|
||||
@@ -515,7 +515,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testMetaActionThrowsExceptionOnMissingValue()
|
||||
public function testMetaActionThrowsExceptionOnMissingValue(): void
|
||||
{
|
||||
$this->assertExceptionForPatchAction(User::ROLE_ADMIN, '/api/projects/1/meta', ['name' => 'X'], [
|
||||
'code' => 400,
|
||||
@@ -523,7 +523,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testMetaActionThrowsExceptionOnMissingMetafield()
|
||||
public function testMetaActionThrowsExceptionOnMissingMetafield(): void
|
||||
{
|
||||
$this->assertExceptionForPatchAction(User::ROLE_ADMIN, '/api/projects/1/meta', ['name' => 'X', 'value' => 'Y'], [
|
||||
'code' => 404,
|
||||
@@ -531,7 +531,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testMetaAction()
|
||||
public function testMetaAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
self::getContainer()->get('event_dispatcher')->addSubscriber(new ProjectTestMetaFieldSubscriberMock());
|
||||
|
||||
@@ -35,7 +35,7 @@ trait RateControllerTestTrait
|
||||
*/
|
||||
abstract protected function importTestRates($id): array;
|
||||
|
||||
public function testAddRateMissingEntityAction()
|
||||
public function testAddRateMissingEntityAction(): void
|
||||
{
|
||||
$data = [
|
||||
'user' => 1,
|
||||
@@ -47,7 +47,7 @@ trait RateControllerTestTrait
|
||||
$this->assertEntityNotFoundForPost($client, $this->getRateUrl(99), $data);
|
||||
}
|
||||
|
||||
public function testAddRateMissingUserAction()
|
||||
public function testAddRateMissingUserAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -63,7 +63,7 @@ trait RateControllerTestTrait
|
||||
$this->assertApiCallValidationError($response, ['user']);
|
||||
}
|
||||
|
||||
public function testAddRateActionWithInvalidUser()
|
||||
public function testAddRateActionWithInvalidUser(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$data = [
|
||||
@@ -77,7 +77,7 @@ trait RateControllerTestTrait
|
||||
$this->assertApiResponseAccessDenied($response, 'Access denied.');
|
||||
}
|
||||
|
||||
public function testAddRateAction()
|
||||
public function testAddRateAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -98,7 +98,7 @@ trait RateControllerTestTrait
|
||||
$this->assertFalse($result['isFixed']);
|
||||
}
|
||||
|
||||
public function testAddFixedRateAction()
|
||||
public function testAddFixedRateAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$data = [
|
||||
@@ -119,7 +119,7 @@ trait RateControllerTestTrait
|
||||
$this->assertTrue($result['isFixed']);
|
||||
}
|
||||
|
||||
public function testGetRatesEmptyResult()
|
||||
public function testGetRatesEmptyResult(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->request($client, $this->getRateUrl(1));
|
||||
@@ -130,7 +130,7 @@ trait RateControllerTestTrait
|
||||
$this->assertEmpty($result);
|
||||
}
|
||||
|
||||
public function testGetRates()
|
||||
public function testGetRates(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$expectedRates = $this->importTestRates(1);
|
||||
@@ -148,17 +148,17 @@ trait RateControllerTestTrait
|
||||
}
|
||||
}
|
||||
|
||||
public function testGetRatesEntityNotFound()
|
||||
public function testGetRatesEntityNotFound(): void
|
||||
{
|
||||
$this->assertEntityNotFound(User::ROLE_ADMIN, $this->getRateUrl(99));
|
||||
}
|
||||
|
||||
public function testGetRatesIsSecured()
|
||||
public function testGetRatesIsSecured(): void
|
||||
{
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_USER, $this->getRateUrl(1));
|
||||
}
|
||||
|
||||
public function testDeleteRate()
|
||||
public function testDeleteRate(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$expectedRates = $this->importTestRates(1);
|
||||
@@ -176,19 +176,19 @@ trait RateControllerTestTrait
|
||||
$this->assertEquals(\count($expectedRates) - 1, \count($result));
|
||||
}
|
||||
|
||||
public function testDeleteRateEntityNotFound()
|
||||
public function testDeleteRateEntityNotFound(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertNotFoundForDelete($client, $this->getRateUrl(99, 1));
|
||||
}
|
||||
|
||||
public function testDeleteRateRateNotFound()
|
||||
public function testDeleteRateRateNotFound(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertNotFoundForDelete($client, $this->getRateUrl(1, 99));
|
||||
}
|
||||
|
||||
public function testDeleteRateWithInvalidAssignment()
|
||||
public function testDeleteRateWithInvalidAssignment(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->importTestRates(1);
|
||||
@@ -197,7 +197,7 @@ trait RateControllerTestTrait
|
||||
$this->assertNotFoundForDelete($client, $this->getRateUrl(2, 1));
|
||||
}
|
||||
|
||||
public function testDeleteNotAllowed()
|
||||
public function testDeleteNotAllowed(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$rates = $this->importTestRates(1);
|
||||
@@ -209,7 +209,7 @@ trait RateControllerTestTrait
|
||||
$this->assertApiResponseAccessDenied($client->getResponse(), 'Access denied.');
|
||||
}
|
||||
|
||||
protected function assertRateStructure(array $result, $user = null)
|
||||
public function assertRateStructure(array $result, $user = null): void
|
||||
{
|
||||
$expectedKeys = [
|
||||
'id', 'rate', 'internalRate', 'isFixed', 'user'
|
||||
|
||||
@@ -27,7 +27,7 @@ use Symfony\Contracts\Translation\TranslatorInterface;
|
||||
*/
|
||||
class ValidationFailedExceptionErrorHandlerTest extends TestCase
|
||||
{
|
||||
public function testSubscribingMethods()
|
||||
public function testSubscribingMethods(): void
|
||||
{
|
||||
self::assertEquals([[
|
||||
'direction' => GraphNavigatorInterface::DIRECTION_SERIALIZATION,
|
||||
@@ -44,7 +44,7 @@ class ValidationFailedExceptionErrorHandlerTest extends TestCase
|
||||
]], ValidationFailedExceptionErrorHandler::getSubscribingMethods());
|
||||
}
|
||||
|
||||
public function testWithEmptyConstraintsList()
|
||||
public function testWithEmptyConstraintsList(): void
|
||||
{
|
||||
$security = $this->createMock(Security::class);
|
||||
$translator = $this->createMock(TranslatorInterface::class);
|
||||
@@ -64,7 +64,7 @@ class ValidationFailedExceptionErrorHandlerTest extends TestCase
|
||||
self::assertEquals($expected, $sut->serializeValidationExceptionToJson(new JsonSerializationVisitor(), $validations, [], new SerializationContext()));
|
||||
}
|
||||
|
||||
public function testWithUnsupportedException()
|
||||
public function testWithUnsupportedException(): void
|
||||
{
|
||||
$security = $this->createMock(Security::class);
|
||||
$translator = $this->createMock(TranslatorInterface::class);
|
||||
@@ -81,7 +81,7 @@ class ValidationFailedExceptionErrorHandlerTest extends TestCase
|
||||
self::assertEquals('foooo', $actual);
|
||||
}
|
||||
|
||||
public function testWithConstraintsList()
|
||||
public function testWithConstraintsList(): void
|
||||
{
|
||||
$security = $this->createMock(Security::class);
|
||||
$translator = $this->createMock(TranslatorInterface::class);
|
||||
@@ -125,7 +125,7 @@ class ValidationFailedExceptionErrorHandlerTest extends TestCase
|
||||
));
|
||||
}
|
||||
|
||||
public function testWithConstraintsListAndWrongException()
|
||||
public function testWithConstraintsListAndWrongException(): void
|
||||
{
|
||||
$security = $this->createMock(Security::class);
|
||||
$translator = $this->createMock(TranslatorInterface::class);
|
||||
|
||||
@@ -54,7 +54,7 @@ class ActivityServiceTest extends TestCase
|
||||
return $service;
|
||||
}
|
||||
|
||||
public function testCannotSavePersistedProjectAsNew()
|
||||
public function testCannotSavePersistedProjectAsNew(): void
|
||||
{
|
||||
$project = $this->createMock(Activity::class);
|
||||
$project->expects($this->once())->method('getId')->willReturn(1);
|
||||
@@ -67,7 +67,7 @@ class ActivityServiceTest extends TestCase
|
||||
$sut->saveNewActivity($project);
|
||||
}
|
||||
|
||||
public function testsaveNewActivityHasValidationError()
|
||||
public function testsaveNewActivityHasValidationError(): void
|
||||
{
|
||||
$constraints = new ConstraintViolationList();
|
||||
$constraints->add(new ConstraintViolation('toooo many tests', 'abc.def', [], '$root', 'begin', 4, null, null, null, '$cause'));
|
||||
@@ -83,7 +83,7 @@ class ActivityServiceTest extends TestCase
|
||||
$sut->saveNewActivity(new Activity());
|
||||
}
|
||||
|
||||
public function testUpdateDispatchesEvents()
|
||||
public function testUpdateDispatchesEvents(): void
|
||||
{
|
||||
$project = $this->createMock(Activity::class);
|
||||
$project->method('getId')->willReturn(1);
|
||||
@@ -106,7 +106,7 @@ class ActivityServiceTest extends TestCase
|
||||
$sut->updateActivity($project);
|
||||
}
|
||||
|
||||
public function testcreateNewActivityDispatchesEvents()
|
||||
public function testcreateNewActivityDispatchesEvents(): void
|
||||
{
|
||||
$dispatcher = $this->createMock(EventDispatcherInterface::class);
|
||||
$dispatcher->expects($this->exactly(2))->method('dispatch')->willReturnCallback(function ($event) {
|
||||
@@ -129,7 +129,7 @@ class ActivityServiceTest extends TestCase
|
||||
self::assertSame($project, $activity->getProject());
|
||||
}
|
||||
|
||||
public function testsaveNewActivityDispatchesEvents()
|
||||
public function testsaveNewActivityDispatchesEvents(): void
|
||||
{
|
||||
$dispatcher = $this->createMock(EventDispatcherInterface::class);
|
||||
$dispatcher->expects($this->exactly(2))->method('dispatch')->willReturnCallback(function ($event) {
|
||||
@@ -150,7 +150,7 @@ class ActivityServiceTest extends TestCase
|
||||
$sut->saveNewActivity($activity);
|
||||
}
|
||||
|
||||
public function testcreateNewActivityWithoutCustomer()
|
||||
public function testcreateNewActivityWithoutCustomer(): void
|
||||
{
|
||||
$sut = $this->getSut();
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class GoogleSourceTest extends TestCase
|
||||
{
|
||||
public function testConstruct()
|
||||
public function testConstruct(): void
|
||||
{
|
||||
$sut = new GoogleSource('0815', 'askdjfhlaksjdhflaksjhdflkjasdlkfjh', '#fffccc');
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class GoogleTest extends TestCase
|
||||
{
|
||||
public function testConstruct()
|
||||
public function testConstruct(): void
|
||||
{
|
||||
$sources = [
|
||||
new GoogleSource('foo', '', '#ccc'),
|
||||
|
||||
@@ -19,7 +19,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class RecentActivitiesSourceTest extends TestCase
|
||||
{
|
||||
public function testConstruct()
|
||||
public function testConstruct(): void
|
||||
{
|
||||
$entries = [new TimesheetEntry(new Timesheet(), '#cccccc')];
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class TimesheetEntryTest extends TestCase
|
||||
{
|
||||
public function testConstruct()
|
||||
public function testConstruct(): void
|
||||
{
|
||||
$project = new Project();
|
||||
$activity = new Activity();
|
||||
@@ -60,7 +60,7 @@ class TimesheetEntryTest extends TestCase
|
||||
$this->assertEquals($expectedData, $sut->getData());
|
||||
}
|
||||
|
||||
public function testEmpty()
|
||||
public function testEmpty(): void
|
||||
{
|
||||
$timesheet = new Timesheet();
|
||||
|
||||
@@ -78,7 +78,7 @@ class TimesheetEntryTest extends TestCase
|
||||
$this->assertEquals($expectedData, $sut->getData());
|
||||
}
|
||||
|
||||
public function testGetTitle()
|
||||
public function testGetTitle(): void
|
||||
{
|
||||
$project = new Project();
|
||||
$project->setName('sdfsdf');
|
||||
|
||||
@@ -32,7 +32,7 @@ class ReloadCommandTest extends KernelTestCase
|
||||
));
|
||||
}
|
||||
|
||||
public function testCommandName()
|
||||
public function testCommandName(): void
|
||||
{
|
||||
$command = $this->application->find('kimai:reload');
|
||||
self::assertInstanceOf(ReloadCommand::class, $command);
|
||||
|
||||
@@ -19,7 +19,7 @@ use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
||||
*/
|
||||
class ResetDevelopmentCommandTest extends KernelTestCase
|
||||
{
|
||||
public function testCommandName()
|
||||
public function testCommandName(): void
|
||||
{
|
||||
$kernel = self::bootKernel();
|
||||
$application = new Application($kernel);
|
||||
@@ -30,7 +30,7 @@ class ResetDevelopmentCommandTest extends KernelTestCase
|
||||
self::assertInstanceOf(ResetDevelopmentCommand::class, $command);
|
||||
}
|
||||
|
||||
public function testCommandNameIsNotEnabledInProd()
|
||||
public function testCommandNameIsNotEnabledInProd(): void
|
||||
{
|
||||
$sut = new ResetDevelopmentCommand('prod');
|
||||
self::assertFalse($sut->isEnabled());
|
||||
|
||||
@@ -20,7 +20,7 @@ use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
||||
*/
|
||||
class ResetTestCommandTest extends KernelTestCase
|
||||
{
|
||||
public function testCommandName()
|
||||
public function testCommandName(): void
|
||||
{
|
||||
$kernel = self::bootKernel();
|
||||
$application = new Application($kernel);
|
||||
@@ -31,7 +31,7 @@ class ResetTestCommandTest extends KernelTestCase
|
||||
self::assertInstanceOf(ResetTestCommand::class, $command);
|
||||
}
|
||||
|
||||
public function testCommandNameIsNotEnabledInProd()
|
||||
public function testCommandNameIsNotEnabledInProd(): void
|
||||
{
|
||||
$sut = new ResetTestCommand($this->createMock(EntityManagerInterface::class), 'prod');
|
||||
self::assertFalse($sut->isEnabled());
|
||||
|
||||
@@ -34,13 +34,13 @@ class TimesheetStopAllCommandTest extends KernelTestCase
|
||||
$this->application->add(new TimesheetStopAllCommand($service));
|
||||
}
|
||||
|
||||
public function testCommandName()
|
||||
public function testCommandName(): void
|
||||
{
|
||||
$command = $this->application->find('kimai:timesheet:stop-all');
|
||||
self::assertInstanceOf(TimesheetStopAllCommand::class, $command);
|
||||
}
|
||||
|
||||
public function testRun()
|
||||
public function testRun(): void
|
||||
{
|
||||
$command = $this->application->find('kimai:timesheet:stop-all');
|
||||
$commandTester = new CommandTester($command);
|
||||
|
||||
@@ -42,7 +42,7 @@ class LdapConfigurationTest extends TestCase
|
||||
];
|
||||
}
|
||||
|
||||
public function testDefault()
|
||||
public function testDefault(): void
|
||||
{
|
||||
$sut = $this->getSut([]);
|
||||
$this->assertFalse($sut->isActivated());
|
||||
@@ -51,7 +51,7 @@ class LdapConfigurationTest extends TestCase
|
||||
$this->assertEquals([], $sut->getConnectionParameters());
|
||||
}
|
||||
|
||||
public function testMapping()
|
||||
public function testMapping(): void
|
||||
{
|
||||
$sut = $this->getSut($this->getDefaultSettings());
|
||||
$this->assertTrue($sut->isActivated());
|
||||
|
||||
@@ -17,13 +17,13 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class MailConfigurationTest extends TestCase
|
||||
{
|
||||
public function testGetFromAddress()
|
||||
public function testGetFromAddress(): void
|
||||
{
|
||||
$sut = new MailConfiguration('foo-bar123@example.com');
|
||||
self::assertEquals('foo-bar123@example.com', $sut->getFromAddress());
|
||||
}
|
||||
|
||||
public function testGetFromAddressWithEmptyAddressReturnsNull()
|
||||
public function testGetFromAddressWithEmptyAddressReturnsNull(): void
|
||||
{
|
||||
$sut = new MailConfiguration('');
|
||||
self::assertNull($sut->getFromAddress());
|
||||
|
||||
@@ -50,7 +50,7 @@ class SamlConfigurationTest extends TestCase
|
||||
];
|
||||
}
|
||||
|
||||
public function testDefault()
|
||||
public function testDefault(): void
|
||||
{
|
||||
$sut = $this->getSut([]);
|
||||
$this->assertFalse($sut->isActivated());
|
||||
@@ -62,7 +62,7 @@ class SamlConfigurationTest extends TestCase
|
||||
$this->assertFalse($sut->isRolesResetOnLogin());
|
||||
}
|
||||
|
||||
public function testDefaultSettings()
|
||||
public function testDefaultSettings(): void
|
||||
{
|
||||
$sut = $this->getSut($this->getDefaultSettings());
|
||||
$this->assertTrue($sut->isActivated());
|
||||
|
||||
@@ -19,7 +19,7 @@ use Symfony\Component\HttpKernel\KernelInterface;
|
||||
*/
|
||||
class ConsoleApplicationTest extends TestCase
|
||||
{
|
||||
public function testVersion()
|
||||
public function testVersion(): void
|
||||
{
|
||||
$kernel = $this->createMock(KernelInterface::class);
|
||||
$sut = new ConsoleApplication($kernel);
|
||||
|
||||
@@ -17,7 +17,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class ConstantsTest extends TestCase
|
||||
{
|
||||
public function testBuild()
|
||||
public function testBuild(): void
|
||||
{
|
||||
$version = Constants::VERSION;
|
||||
$versionParts = explode('.', $version);
|
||||
|
||||
@@ -27,17 +27,17 @@ use Symfony\Component\HttpKernel\HttpKernelBrowser;
|
||||
*/
|
||||
class ActivityControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/admin/activity/');
|
||||
}
|
||||
|
||||
public function testIsSecureForRole()
|
||||
public function testIsSecureForRole(): void
|
||||
{
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_USER, '/admin/activity/');
|
||||
}
|
||||
|
||||
public function testIndexAction()
|
||||
public function testIndexAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
$this->assertAccessIsGranted($client, '/admin/activity/');
|
||||
@@ -49,7 +49,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testIndexActionAsSuperAdmin()
|
||||
public function testIndexActionAsSuperAdmin(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/activity/');
|
||||
@@ -61,7 +61,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testIndexActionWithSearchTermQuery()
|
||||
public function testIndexActionWithSearchTermQuery(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -92,19 +92,19 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$this->assertDataTableRowCount($client, 'datatable_activity_admin', 5);
|
||||
}
|
||||
|
||||
public function testExportIsSecureForRole()
|
||||
public function testExportIsSecureForRole(): void
|
||||
{
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_USER, '/admin/activity/export');
|
||||
}
|
||||
|
||||
public function testExportAction()
|
||||
public function testExportAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
$this->assertAccessIsGranted($client, '/admin/activity/export');
|
||||
$this->assertExcelExportResponse($client, 'kimai-activities_');
|
||||
}
|
||||
|
||||
public function testExportActionWithSearchTermQuery()
|
||||
public function testExportActionWithSearchTermQuery(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -134,7 +134,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$this->assertExcelExportResponse($client, 'kimai-activities_');
|
||||
}
|
||||
|
||||
public function testDetailsAction()
|
||||
public function testDetailsAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
/** @var EntityManager $em */
|
||||
@@ -171,7 +171,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
self::assertEquals(1, $node->count());
|
||||
}
|
||||
|
||||
public function testAddRateAction()
|
||||
public function testAddRateAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/activity/1/rate');
|
||||
@@ -190,7 +190,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
self::assertStringContainsString('123.45', $node->text(null, true));
|
||||
}
|
||||
|
||||
public function testCreateAction()
|
||||
public function testCreateAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/activity/create');
|
||||
@@ -218,7 +218,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals('An AcTiVitY Name', $editForm->get('activity_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testCreateActionShowsMetaFields()
|
||||
public function testCreateActionShowsMetaFields(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
self::getContainer()->get('event_dispatcher')->addSubscriber(new ActivityTestMetaFieldSubscriberMock());
|
||||
@@ -231,7 +231,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$this->assertFalse($form->has('activity_edit_form[metaFields][0][value]'));
|
||||
}
|
||||
|
||||
public function testEditAction()
|
||||
public function testEditAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/activity/1/edit');
|
||||
@@ -247,7 +247,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals('Test 2', $editForm->get('activity_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testEditActionForGlobalActivity()
|
||||
public function testEditActionForGlobalActivity(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/activity/1/edit');
|
||||
@@ -263,7 +263,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals('Test 2', $editForm->get('activity_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testTeamPermissionAction()
|
||||
public function testTeamPermissionAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$em = $this->getEntityManager();
|
||||
@@ -295,7 +295,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
self::assertEquals(2, $activity->getTeams()->count());
|
||||
}
|
||||
|
||||
public function testCreateDefaultTeamAction()
|
||||
public function testCreateDefaultTeamAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/activity/1/details');
|
||||
@@ -311,7 +311,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
self::assertEquals(1, $node->count());
|
||||
}
|
||||
|
||||
public function testDeleteAction()
|
||||
public function testDeleteAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->request($client, '/admin/activity/1/edit');
|
||||
@@ -332,7 +332,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntries()
|
||||
public function testDeleteActionWithTimesheetEntries(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -372,7 +372,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntriesAndReplacement()
|
||||
public function testDeleteActionWithTimesheetEntriesAndReplacement(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -428,7 +428,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
/**
|
||||
* @dataProvider getValidationTestData
|
||||
*/
|
||||
public function testValidationForCreateAction(array $formData, array $validationFields)
|
||||
public function testValidationForCreateAction(array $formData, array $validationFields): void
|
||||
{
|
||||
$this->assertFormHasValidationError(
|
||||
User::ROLE_ADMIN,
|
||||
|
||||
@@ -60,7 +60,7 @@ class SamlControllerTest extends TestCase
|
||||
return new SamlConfiguration($this->getSystemConfigurationMock($this->getDefaultSettings($activated), []));
|
||||
}
|
||||
|
||||
public function testAssertionConsumerServiceAction()
|
||||
public function testAssertionConsumerServiceAction(): void
|
||||
{
|
||||
$this->expectException(\RuntimeException::class);
|
||||
$this->expectExceptionMessage('You must configure the check path in your firewall.');
|
||||
@@ -71,7 +71,7 @@ class SamlControllerTest extends TestCase
|
||||
$sut->assertionConsumerServiceAction();
|
||||
}
|
||||
|
||||
public function testMetadataAction()
|
||||
public function testMetadataAction(): void
|
||||
{
|
||||
$expectedXmlString = <<<EOD
|
||||
<?xml version="1.0"?>
|
||||
@@ -120,7 +120,7 @@ class SamlControllerTest extends TestCase
|
||||
self::assertEquals($expected->firstChild->firstChild, $actual->firstChild->firstChild);
|
||||
}
|
||||
|
||||
public function testLoginActionThrowsErrorOnSecurityErrorAttribute()
|
||||
public function testLoginActionThrowsErrorOnSecurityErrorAttribute(): void
|
||||
{
|
||||
$this->expectException(\RuntimeException::class);
|
||||
$this->expectExceptionMessage('My test error');
|
||||
@@ -135,7 +135,7 @@ class SamlControllerTest extends TestCase
|
||||
$sut->loginAction($request);
|
||||
}
|
||||
|
||||
public function testLoginActionThrowsExceptionOnDisabledSaml()
|
||||
public function testLoginActionThrowsExceptionOnDisabledSaml(): void
|
||||
{
|
||||
$this->expectException(NotFoundHttpException::class);
|
||||
$this->expectExceptionMessage('SAML deactivated');
|
||||
@@ -146,7 +146,7 @@ class SamlControllerTest extends TestCase
|
||||
$sut->loginAction(new Request());
|
||||
}
|
||||
|
||||
public function testMetadataActionThrowsExceptionOnDisabledSaml()
|
||||
public function testMetadataActionThrowsExceptionOnDisabledSaml(): void
|
||||
{
|
||||
$this->expectException(NotFoundHttpException::class);
|
||||
$this->expectExceptionMessage('SAML deactivated');
|
||||
@@ -157,7 +157,7 @@ class SamlControllerTest extends TestCase
|
||||
$sut->metadataAction();
|
||||
}
|
||||
|
||||
public function testLogoutActionThrowsExceptionOnDisabledSaml()
|
||||
public function testLogoutActionThrowsExceptionOnDisabledSaml(): void
|
||||
{
|
||||
$this->expectException(NotFoundHttpException::class);
|
||||
$this->expectExceptionMessage('SAML deactivated');
|
||||
@@ -168,7 +168,7 @@ class SamlControllerTest extends TestCase
|
||||
$sut->logoutAction();
|
||||
}
|
||||
|
||||
public function testAcsActionThrowsExceptionOnDisabledSaml()
|
||||
public function testAcsActionThrowsExceptionOnDisabledSaml(): void
|
||||
{
|
||||
$this->expectException(NotFoundHttpException::class);
|
||||
$this->expectExceptionMessage('SAML deactivated');
|
||||
|
||||
@@ -20,12 +20,12 @@ use App\Tests\Mocks\SystemConfigurationFactory;
|
||||
*/
|
||||
class CalendarControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/calendar/');
|
||||
}
|
||||
|
||||
public function testCalendarAction()
|
||||
public function testCalendarAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser();
|
||||
$fixtures = new TimesheetFixtures($this->getUserByRole(), 10);
|
||||
@@ -42,13 +42,13 @@ class CalendarControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals(1, $dragAndDropBoxes->count());
|
||||
}
|
||||
|
||||
public function testCalendarActionAsSuperAdmin()
|
||||
public function testCalendarActionAsSuperAdmin(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/calendar/');
|
||||
}
|
||||
|
||||
public function testCalendarActionWithGoogleSource()
|
||||
public function testCalendarActionWithGoogleSource(): void
|
||||
{
|
||||
$loader = new TestConfigLoader([]);
|
||||
$config = SystemConfigurationFactory::create($loader, $this->getDefaultSettings());
|
||||
|
||||
@@ -28,17 +28,17 @@ use Symfony\Component\HttpKernel\HttpKernelBrowser;
|
||||
*/
|
||||
class CustomerControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/admin/customer/');
|
||||
}
|
||||
|
||||
public function testIsSecureForRole()
|
||||
public function testIsSecureForRole(): void
|
||||
{
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_USER, '/admin/customer/');
|
||||
}
|
||||
|
||||
public function testIndexAction()
|
||||
public function testIndexAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/');
|
||||
@@ -49,7 +49,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testIndexActionAsSuperAdmin()
|
||||
public function testIndexActionAsSuperAdmin(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/');
|
||||
@@ -61,7 +61,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testIndexActionWithSearchTermQuery()
|
||||
public function testIndexActionWithSearchTermQuery(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -95,19 +95,19 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$this->assertDataTableRowCount($client, 'datatable_customer_admin', 5);
|
||||
}
|
||||
|
||||
public function testExportIsSecureForRole()
|
||||
public function testExportIsSecureForRole(): void
|
||||
{
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_USER, '/admin/customer/export');
|
||||
}
|
||||
|
||||
public function testExportAction()
|
||||
public function testExportAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/export');
|
||||
$this->assertExcelExportResponse($client, 'kimai-customers_');
|
||||
}
|
||||
|
||||
public function testExportActionWithSearchTermQuery()
|
||||
public function testExportActionWithSearchTermQuery(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
|
||||
@@ -126,7 +126,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$this->assertExcelExportResponse($client, 'kimai-customers_');
|
||||
}
|
||||
|
||||
public function testDetailsAction()
|
||||
public function testDetailsAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/1/details');
|
||||
@@ -155,7 +155,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
self::assertEquals(1, $node->count());
|
||||
}
|
||||
|
||||
public function testAddRateAction()
|
||||
public function testAddRateAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/1/rate');
|
||||
@@ -174,7 +174,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
self::assertStringContainsString('123.45', $node->text(null, true));
|
||||
}
|
||||
|
||||
public function testAddCommentAction()
|
||||
public function testAddCommentAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -197,7 +197,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
self::assertStringContainsString('<p>A beautiful and short comment <strong>with some</strong> markdown formatting</p>', $node->html());
|
||||
}
|
||||
|
||||
public function testDeleteCommentAction()
|
||||
public function testDeleteCommentAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/1/details');
|
||||
@@ -221,7 +221,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
self::assertStringContainsString('There were no comments posted yet', $node->html());
|
||||
}
|
||||
|
||||
public function testDeleteCommentActionWithoutToken()
|
||||
public function testDeleteCommentActionWithoutToken(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/1/details');
|
||||
@@ -242,7 +242,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$this->assertRouteNotFound($client);
|
||||
}
|
||||
|
||||
public function testPinCommentAction()
|
||||
public function testPinCommentAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/1/details');
|
||||
@@ -269,7 +269,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
self::assertStringContainsString('/comment_pin/', $node->attr('href'));
|
||||
}
|
||||
|
||||
public function testCreateDefaultTeamAction()
|
||||
public function testCreateDefaultTeamAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/1/details');
|
||||
@@ -285,7 +285,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
self::assertEquals(1, $node->count());
|
||||
}
|
||||
|
||||
public function testProjectsAction()
|
||||
public function testProjectsAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/1/projects/1');
|
||||
@@ -310,7 +310,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
self::assertEquals(5, $node->count());
|
||||
}
|
||||
|
||||
public function testCreateAction()
|
||||
public function testCreateAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/create');
|
||||
@@ -332,7 +332,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$this->assertHasFlashSuccess($client);
|
||||
}
|
||||
|
||||
public function testCreateActionShowsMetaFields()
|
||||
public function testCreateActionShowsMetaFields(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
self::getContainer()->get('event_dispatcher')->addSubscriber(new CustomerTestMetaFieldSubscriberMock());
|
||||
@@ -345,7 +345,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$this->assertFalse($form->has('customer_edit_form[metaFields][0][value]'));
|
||||
}
|
||||
|
||||
public function testEditAction()
|
||||
public function testEditAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/1/edit');
|
||||
@@ -363,7 +363,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals('Test Customer 2', $editForm->get('customer_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testTeamPermissionAction()
|
||||
public function testTeamPermissionAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$em = $this->getEntityManager();
|
||||
@@ -394,7 +394,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
self::assertEquals(2, $customer->getTeams()->count());
|
||||
}
|
||||
|
||||
public function testDeleteAction()
|
||||
public function testDeleteAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -421,7 +421,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntries()
|
||||
public function testDeleteActionWithTimesheetEntries(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -459,7 +459,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntriesAndReplacement()
|
||||
public function testDeleteActionWithTimesheetEntriesAndReplacement(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -513,7 +513,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
/**
|
||||
* @dataProvider getValidationTestData
|
||||
*/
|
||||
public function testValidationForCreateAction(array $formData, array $validationFields)
|
||||
public function testValidationForCreateAction(array $formData, array $validationFields): void
|
||||
{
|
||||
$this->assertFormHasValidationError(
|
||||
User::ROLE_ADMIN,
|
||||
|
||||
@@ -14,12 +14,12 @@ namespace App\Tests\Controller;
|
||||
*/
|
||||
class DashboardControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/dashboard/');
|
||||
}
|
||||
|
||||
public function testIndexAction()
|
||||
public function testIndexAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser();
|
||||
$this->request($client, '/dashboard/');
|
||||
|
||||
@@ -16,17 +16,17 @@ use App\Entity\User;
|
||||
*/
|
||||
class DoctorControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testDoctorIsSecure()
|
||||
public function testDoctorIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/doctor');
|
||||
}
|
||||
|
||||
public function testDoctorIsSecureForRole()
|
||||
public function testDoctorIsSecureForRole(): void
|
||||
{
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_ADMIN, '/doctor');
|
||||
}
|
||||
|
||||
public function testIndexAction()
|
||||
public function testIndexAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/doctor');
|
||||
@@ -37,7 +37,7 @@ class DoctorControllerTest extends ControllerBaseTest
|
||||
self::assertTrue($counter === 6 || $counter === 5);
|
||||
}
|
||||
|
||||
public function testFlushLogWithInvalidCsrf()
|
||||
public function testFlushLogWithInvalidCsrf(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
|
||||
@@ -20,17 +20,17 @@ use Doctrine\ORM\EntityManager;
|
||||
*/
|
||||
class ExportControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/export/');
|
||||
}
|
||||
|
||||
public function testIsSecureForrole()
|
||||
public function testIsSecureForrole(): void
|
||||
{
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_USER, '/export/');
|
||||
}
|
||||
|
||||
public function testIndexActionHasErrorMessageOnEmptyQuery()
|
||||
public function testIndexActionHasErrorMessageOnEmptyQuery(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
|
||||
@@ -40,7 +40,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$this->assertHasNoEntriesWithFilter($client);
|
||||
}
|
||||
|
||||
public function testIndexActionWithEntriesAndTeams()
|
||||
public function testIndexActionWithEntriesAndTeams(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
$em = $this->getEntityManager();
|
||||
@@ -109,7 +109,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$this->assertEmpty($expected);
|
||||
}
|
||||
|
||||
public function testIndexActionWithEntriesForTeamleadDoesNotShowUserWithoutTeam()
|
||||
public function testIndexActionWithEntriesForTeamleadDoesNotShowUserWithoutTeam(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
|
||||
@@ -168,7 +168,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$this->assertEmpty($expected);
|
||||
}
|
||||
|
||||
public function testExportActionWithMissingRenderer()
|
||||
public function testExportActionWithMissingRenderer(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
$this->request($client, '/export/data', 'POST');
|
||||
@@ -177,7 +177,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$this->assert404($response, 'Missing export renderer');
|
||||
}
|
||||
|
||||
public function testExportActionWithInvalidRenderer()
|
||||
public function testExportActionWithInvalidRenderer(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
|
||||
@@ -197,7 +197,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$this->assert404($response, 'Unknown export renderer');
|
||||
}
|
||||
|
||||
public function testExportAction()
|
||||
public function testExportAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
/** @var EntityManager $em */
|
||||
|
||||
@@ -18,19 +18,19 @@ use App\Form\Type\InitialViewType;
|
||||
*/
|
||||
class HomepageControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/homepage');
|
||||
}
|
||||
|
||||
public function testIndexAction()
|
||||
public function testIndexAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->request($client, '/homepage');
|
||||
$this->assertIsRedirect($client, '/en/timesheet/');
|
||||
}
|
||||
|
||||
public function testIndexActionWithChangedPreferences()
|
||||
public function testIndexActionWithChangedPreferences(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
|
||||
|
||||
@@ -32,17 +32,17 @@ use Symfony\Component\HttpKernel\HttpKernelBrowser;
|
||||
*/
|
||||
class ProjectControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/admin/project/');
|
||||
}
|
||||
|
||||
public function testIsSecureForRole()
|
||||
public function testIsSecureForRole(): void
|
||||
{
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_USER, '/admin/project/');
|
||||
}
|
||||
|
||||
public function testIndexAction()
|
||||
public function testIndexAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
$this->assertAccessIsGranted($client, '/admin/project/');
|
||||
@@ -53,7 +53,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testIndexActionAsSuperAdmin()
|
||||
public function testIndexActionAsSuperAdmin(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/project/');
|
||||
@@ -65,7 +65,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testIndexActionWithSearchTermQuery()
|
||||
public function testIndexActionWithSearchTermQuery(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -100,19 +100,19 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$this->assertDataTableRowCount($client, 'datatable_project_admin', 5);
|
||||
}
|
||||
|
||||
public function testExportIsSecureForRole()
|
||||
public function testExportIsSecureForRole(): void
|
||||
{
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_USER, '/admin/project/export');
|
||||
}
|
||||
|
||||
public function testExportAction()
|
||||
public function testExportAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
$this->assertAccessIsGranted($client, '/admin/project/export');
|
||||
$this->assertExcelExportResponse($client, 'kimai-projects_');
|
||||
}
|
||||
|
||||
public function testExportActionWithSearchTermQuery()
|
||||
public function testExportActionWithSearchTermQuery(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -141,7 +141,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$this->assertExcelExportResponse($client, 'kimai-projects_');
|
||||
}
|
||||
|
||||
public function testDetailsAction()
|
||||
public function testDetailsAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
/** @var EntityManager $em */
|
||||
@@ -187,13 +187,13 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
self::assertEquals(1, $node->count());
|
||||
}
|
||||
|
||||
public function testAddRateAction()
|
||||
public function testAddRateAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAddRate($client, 123.45, 1);
|
||||
}
|
||||
|
||||
protected function assertAddRate(HttpKernelBrowser $client, $rate, $projectId)
|
||||
public function assertAddRate(HttpKernelBrowser $client, $rate, $projectId): void
|
||||
{
|
||||
$this->assertAccessIsGranted($client, '/admin/project/' . $projectId . '/rate');
|
||||
$form = $client->getCrawler()->filter('form[name=project_rate_form]')->form();
|
||||
@@ -211,7 +211,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
self::assertStringContainsString($rate, $node->text(null, true));
|
||||
}
|
||||
|
||||
public function testDuplicateAction()
|
||||
public function testDuplicateAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
/** @var EntityManager $em */
|
||||
@@ -251,7 +251,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
self::assertStringContainsString('123.45', $node->text(null, true));
|
||||
}
|
||||
|
||||
public function testDuplicateActionWithInvalidCsrf()
|
||||
public function testDuplicateActionWithInvalidCsrf(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
/** @var EntityManager $em */
|
||||
@@ -270,7 +270,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$this->assertInvalidCsrfToken($client, '/admin/project/1/duplicate/rsetdzfukgli78t6r5uedtjfzkugl', $this->createUrl('/admin/project/1/details'));
|
||||
}
|
||||
|
||||
public function testAddCommentAction()
|
||||
public function testAddCommentAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/project/1/details');
|
||||
@@ -291,7 +291,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
self::assertStringContainsString('<p>A beautiful and long comment <strong>with some</strong> markdown formatting</p>', $node->html());
|
||||
}
|
||||
|
||||
public function testDeleteCommentAction()
|
||||
public function testDeleteCommentAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/project/1/details');
|
||||
@@ -314,7 +314,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
self::assertStringContainsString('There were no comments posted yet', $node->html());
|
||||
}
|
||||
|
||||
public function testPinCommentAction()
|
||||
public function testPinCommentAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/project/1/details');
|
||||
@@ -342,7 +342,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
self::assertStringContainsString('/comment_pin/', $node->attr('href'));
|
||||
}
|
||||
|
||||
public function testCreateDefaultTeamAction()
|
||||
public function testCreateDefaultTeamAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/project/1/details');
|
||||
@@ -358,7 +358,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
self::assertEquals(1, $node->count());
|
||||
}
|
||||
|
||||
public function testActivitiesAction()
|
||||
public function testActivitiesAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/project/1/activities/1');
|
||||
@@ -384,7 +384,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
self::assertEquals(5, $node->count());
|
||||
}
|
||||
|
||||
public function testCreateAction()
|
||||
public function testCreateAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/project/create');
|
||||
@@ -403,7 +403,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$this->assertHasFlashSuccess($client);
|
||||
}
|
||||
|
||||
public function testCreateActionShowsMetaFields()
|
||||
public function testCreateActionShowsMetaFields(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
self::getContainer()->get('event_dispatcher')->addSubscriber(new ProjectTestMetaFieldSubscriberMock());
|
||||
@@ -416,7 +416,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$this->assertFalse($form->has('project_edit_form[metaFields][0][value]'));
|
||||
}
|
||||
|
||||
public function testEditAction()
|
||||
public function testEditAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/project/1/edit');
|
||||
@@ -432,7 +432,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals('Test 2', $editForm->get('project_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testTeamPermissionAction()
|
||||
public function testTeamPermissionAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$em = $this->getEntityManager();
|
||||
@@ -463,7 +463,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
self::assertEquals(2, $project->getTeams()->count());
|
||||
}
|
||||
|
||||
public function testDeleteAction()
|
||||
public function testDeleteAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -490,7 +490,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntries()
|
||||
public function testDeleteActionWithTimesheetEntries(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -528,7 +528,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntriesAndReplacement()
|
||||
public function testDeleteActionWithTimesheetEntriesAndReplacement(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
@@ -581,7 +581,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
/**
|
||||
* @dataProvider getValidationTestData
|
||||
*/
|
||||
public function testValidationForCreateAction(array $formData, array $validationFields)
|
||||
public function testValidationForCreateAction(array $formData, array $validationFields): void
|
||||
{
|
||||
$this->assertFormHasValidationError(
|
||||
User::ROLE_ADMIN,
|
||||
|
||||
@@ -16,12 +16,12 @@ use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
*/
|
||||
class QuickEntryControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/quick_entry');
|
||||
}
|
||||
|
||||
public function testIndexAction()
|
||||
public function testIndexAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser();
|
||||
$this->request($client, '/quick_entry');
|
||||
@@ -52,7 +52,7 @@ class QuickEntryControllerTest extends ControllerBaseTest
|
||||
self::assertCount(10, $columns);
|
||||
}
|
||||
|
||||
public function testIndexActionWith()
|
||||
public function testIndexActionWith(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser();
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ abstract class AbstractUserPeriodControllerTest extends ControllerBaseTest
|
||||
|
||||
abstract protected function getBoxId(): string;
|
||||
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured($this->getReportUrl());
|
||||
}
|
||||
@@ -49,7 +49,7 @@ abstract class AbstractUserPeriodControllerTest extends ControllerBaseTest
|
||||
/**
|
||||
* @dataProvider getTestData
|
||||
*/
|
||||
public function testUserPeriodReport(int $user, string $dataType, string $title)
|
||||
public function testUserPeriodReport(int $user, string $dataType, string $title): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->importReportingFixture(User::ROLE_SUPER_ADMIN);
|
||||
@@ -61,7 +61,7 @@ abstract class AbstractUserPeriodControllerTest extends ControllerBaseTest
|
||||
self::assertEquals($title, $cell->text());
|
||||
}
|
||||
|
||||
public function testUserPeriodReportAsTeamlead()
|
||||
public function testUserPeriodReportAsTeamlead(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->importReportingFixture(User::ROLE_USER);
|
||||
|
||||
@@ -35,7 +35,7 @@ abstract class AbstractUsersPeriodControllerTest extends ControllerBaseTest
|
||||
|
||||
abstract protected function getBoxId(): string;
|
||||
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured($this->getReportUrl());
|
||||
}
|
||||
@@ -52,7 +52,7 @@ abstract class AbstractUsersPeriodControllerTest extends ControllerBaseTest
|
||||
/**
|
||||
* @dataProvider getTestData
|
||||
*/
|
||||
public function testUsersPeriodReport(string $dataType, string $title)
|
||||
public function testUsersPeriodReport(string $dataType, string $title): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->importReportingFixture(User::ROLE_SUPER_ADMIN);
|
||||
@@ -65,7 +65,7 @@ abstract class AbstractUsersPeriodControllerTest extends ControllerBaseTest
|
||||
/**
|
||||
* @dataProvider getTestData
|
||||
*/
|
||||
public function testUsersPeriodReportAsTeamlead(string $dataType, string $title)
|
||||
public function testUsersPeriodReportAsTeamlead(string $dataType, string $title): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
$this->importReportingFixture(User::ROLE_TEAMLEAD);
|
||||
@@ -80,7 +80,7 @@ abstract class AbstractUsersPeriodControllerTest extends ControllerBaseTest
|
||||
/**
|
||||
* @dataProvider getTestData
|
||||
*/
|
||||
public function testUsersPeriodReportExport(string $dataType, string $title)
|
||||
public function testUsersPeriodReportExport(string $dataType, string $title): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->importReportingFixture(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
@@ -24,12 +24,12 @@ use Symfony\Component\HttpKernel\HttpKernelBrowser;
|
||||
*/
|
||||
class CustomerMonthlyProjectsControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testReportIsSecure()
|
||||
public function testReportIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/reporting/customer/monthly_projects/view');
|
||||
}
|
||||
|
||||
public function testExportReportIsSecure()
|
||||
public function testExportReportIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/reporting/customer/monthly_projects/export');
|
||||
}
|
||||
@@ -73,7 +73,7 @@ class CustomerMonthlyProjectsControllerTest extends ControllerBaseTest
|
||||
return $client;
|
||||
}
|
||||
|
||||
public function testReport()
|
||||
public function testReport(): void
|
||||
{
|
||||
$client = $this->prepareReport();
|
||||
|
||||
@@ -83,7 +83,7 @@ class CustomerMonthlyProjectsControllerTest extends ControllerBaseTest
|
||||
self::assertGreaterThan(0, $rows->count());
|
||||
}
|
||||
|
||||
public function testExport()
|
||||
public function testExport(): void
|
||||
{
|
||||
$client = $this->prepareReport();
|
||||
|
||||
|
||||
@@ -23,12 +23,12 @@ use App\Timesheet\DateTimeFactory;
|
||||
*/
|
||||
class ProjectDateRangeControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testReportIsSecure()
|
||||
public function testReportIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/reporting/project_daterange');
|
||||
}
|
||||
|
||||
public function testReport()
|
||||
public function testReport(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
|
||||
@@ -21,12 +21,12 @@ use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
*/
|
||||
class ProjectDetailsControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testReportIsSecure()
|
||||
public function testReportIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/reporting/project_details');
|
||||
}
|
||||
|
||||
public function testReport()
|
||||
public function testReport(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
|
||||
@@ -21,12 +21,12 @@ use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
*/
|
||||
class ProjectInactiveControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testReportIsSecure()
|
||||
public function testReportIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/reporting/project_inactive');
|
||||
}
|
||||
|
||||
public function testReport()
|
||||
public function testReport(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
|
||||
@@ -21,12 +21,12 @@ use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
*/
|
||||
class ProjectViewControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testReportIsSecure()
|
||||
public function testReportIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/reporting/project_view');
|
||||
}
|
||||
|
||||
public function testReport()
|
||||
public function testReport(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
|
||||
@@ -16,12 +16,12 @@ use App\Entity\User;
|
||||
*/
|
||||
class ReportingControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/reporting');
|
||||
}
|
||||
|
||||
public function testOverviewPage()
|
||||
public function testOverviewPage(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->request($client, '/reporting/');
|
||||
@@ -29,7 +29,7 @@ class ReportingControllerTest extends ControllerBaseTest
|
||||
$this->assertCount(11, $nodes);
|
||||
}
|
||||
|
||||
public function testOverviewPageAsUser()
|
||||
public function testOverviewPageAsUser(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->request($client, '/reporting/');
|
||||
|
||||
@@ -24,27 +24,27 @@ class PasswordResetControllerTest extends ControllerBaseTest
|
||||
$this->assertRouteNotFound($client);
|
||||
}
|
||||
|
||||
public function testResetRequestWithDeactivatedFeature()
|
||||
public function testResetRequestWithDeactivatedFeature(): void
|
||||
{
|
||||
$this->testResetActionWithDeactivatedFeature('/resetting/request');
|
||||
}
|
||||
|
||||
public function testSendEmailRequestWithDeactivatedFeature()
|
||||
public function testSendEmailRequestWithDeactivatedFeature(): void
|
||||
{
|
||||
$this->testResetActionWithDeactivatedFeature('/resetting/send-email', 'POST');
|
||||
}
|
||||
|
||||
public function testCheckEmailWithDeactivatedFeature()
|
||||
public function testCheckEmailWithDeactivatedFeature(): void
|
||||
{
|
||||
$this->testResetActionWithDeactivatedFeature('/resetting/check-email');
|
||||
}
|
||||
|
||||
public function testResetWithDeactivatedFeature()
|
||||
public function testResetWithDeactivatedFeature(): void
|
||||
{
|
||||
$this->testResetActionWithDeactivatedFeature('/resetting/reset/1234567890');
|
||||
}
|
||||
|
||||
public function testResetRequestPageIsRendered()
|
||||
public function testResetRequestPageIsRendered(): void
|
||||
{
|
||||
$client = self::createClient();
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ use Symfony\Bundle\FrameworkBundle\KernelBrowser;
|
||||
*/
|
||||
class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
{
|
||||
private function testRegisterActionWithDeactivatedFeature(string $route)
|
||||
private function assertRegisterActionWithDeactivatedFeature(string $route): void
|
||||
{
|
||||
$client = self::createClient();
|
||||
$this->setSystemConfiguration('user.registration', false);
|
||||
@@ -26,27 +26,27 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
$this->assertRouteNotFound($client);
|
||||
}
|
||||
|
||||
public function testRegisterWithDeactivatedFeature()
|
||||
public function testRegisterWithDeactivatedFeature(): void
|
||||
{
|
||||
$this->testRegisterActionWithDeactivatedFeature('/register/');
|
||||
$this->assertRegisterActionWithDeactivatedFeature('/register/');
|
||||
}
|
||||
|
||||
public function testCheckEmailWithDeactivatedFeature()
|
||||
public function testCheckEmailWithDeactivatedFeature(): void
|
||||
{
|
||||
$this->testRegisterActionWithDeactivatedFeature('/register/check-email');
|
||||
$this->assertRegisterActionWithDeactivatedFeature('/register/check-email');
|
||||
}
|
||||
|
||||
public function testConfirmWithDeactivatedFeature()
|
||||
public function testConfirmWithDeactivatedFeature(): void
|
||||
{
|
||||
$this->testRegisterActionWithDeactivatedFeature('/register/confirm/123123');
|
||||
$this->assertRegisterActionWithDeactivatedFeature('/register/confirm/123123');
|
||||
}
|
||||
|
||||
public function testConfirmedWithDeactivatedFeature()
|
||||
public function testConfirmedWithDeactivatedFeature(): void
|
||||
{
|
||||
$this->testRegisterActionWithDeactivatedFeature('/register/confirmed');
|
||||
$this->assertRegisterActionWithDeactivatedFeature('/register/confirmed');
|
||||
}
|
||||
|
||||
public function testRegisterAccountPageIsRendered()
|
||||
public function testRegisterAccountPageIsRendered(): void
|
||||
{
|
||||
$client = self::createClient();
|
||||
$this->setSystemConfiguration('user.registration', true);
|
||||
@@ -98,7 +98,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
return $this->loadUserFromDatabase($username);
|
||||
}
|
||||
|
||||
public function testCheckEmailWithoutEmail()
|
||||
public function testCheckEmailWithoutEmail(): void
|
||||
{
|
||||
$client = self::createClient();
|
||||
$this->setSystemConfiguration('user.registration', true);
|
||||
@@ -109,7 +109,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testRegisterAccount()
|
||||
public function testRegisterAccount(): void
|
||||
{
|
||||
$client = self::createClient();
|
||||
$this->createUser($client, 'example', 'register@example.com', 'test1234');
|
||||
@@ -120,7 +120,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
$this->assertStringContainsString('<a href="/en/login">', $content);
|
||||
}
|
||||
|
||||
public function testConfirmWithInvalidToken()
|
||||
public function testConfirmWithInvalidToken(): void
|
||||
{
|
||||
$client = self::createClient();
|
||||
$this->setSystemConfiguration('user.registration', true);
|
||||
@@ -131,7 +131,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testConfirmAccount()
|
||||
public function testConfirmAccount(): void
|
||||
{
|
||||
$client = self::createClient();
|
||||
$user = $this->createUser($client, 'example', 'register@example.com', 'test1234');
|
||||
@@ -151,7 +151,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
self::assertTrue($user->isEnabled());
|
||||
}
|
||||
|
||||
public function testConfirmedAnonymousRedirectsToLogin()
|
||||
public function testConfirmedAnonymousRedirectsToLogin(): void
|
||||
{
|
||||
$client = self::createClient();
|
||||
$this->setSystemConfiguration('user.registration', true);
|
||||
@@ -166,7 +166,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
/**
|
||||
* @dataProvider getValidationTestData
|
||||
*/
|
||||
public function testRegisterActionWithValidationProblems(array $formData, array $validationFields)
|
||||
public function testRegisterActionWithValidationProblems(array $formData, array $validationFields): void
|
||||
{
|
||||
$client = self::createClient();
|
||||
$this->setSystemConfiguration('user.registration', true);
|
||||
@@ -174,7 +174,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
$this->assertHasValidationError($client, '/register/', 'form[name=user_registration_form]', $formData, $validationFields);
|
||||
}
|
||||
|
||||
public function getValidationTestData()
|
||||
public function getValidationTestData(): array // @phpstan-ignore-line
|
||||
{
|
||||
return [
|
||||
[
|
||||
|
||||
@@ -17,12 +17,12 @@ use App\Entity\User;
|
||||
*/
|
||||
class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/admin/system-config/');
|
||||
}
|
||||
|
||||
public function testIsSecureForRole()
|
||||
public function testIsSecureForRole(): void
|
||||
{
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_ADMIN, '/admin/system-config/');
|
||||
}
|
||||
@@ -32,7 +32,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
return static::getContainer()->get(SystemConfiguration::class);
|
||||
}
|
||||
|
||||
public function testIndexAction()
|
||||
public function testIndexAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/');
|
||||
@@ -55,7 +55,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
}
|
||||
}
|
||||
|
||||
public function testSectionAction()
|
||||
public function testSectionAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/edit/timesheet');
|
||||
@@ -91,7 +91,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
];
|
||||
}
|
||||
|
||||
public function testUpdateTimesheetConfig()
|
||||
public function testUpdateTimesheetConfig(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/');
|
||||
@@ -129,7 +129,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals(99, $configService->find('timesheet.active_entries.hard_limit'));
|
||||
}
|
||||
|
||||
public function testUpdateLockdownPeriodConfig()
|
||||
public function testUpdateLockdownPeriodConfig(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/');
|
||||
@@ -164,7 +164,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals('+ 12 hours', $configService->find('timesheet.rules.lockdown_grace_period'));
|
||||
}
|
||||
|
||||
public function testUpdateTimesheetConfigValidation()
|
||||
public function testUpdateTimesheetConfigValidation(): void
|
||||
{
|
||||
$this->assertFormHasValidationError(
|
||||
User::ROLE_SUPER_ADMIN,
|
||||
@@ -190,7 +190,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
);
|
||||
}
|
||||
|
||||
public function testUpdateCustomerConfig()
|
||||
public function testUpdateCustomerConfig(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/');
|
||||
@@ -222,7 +222,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals('GBP', $configService->find('defaults.customer.currency'));
|
||||
}
|
||||
|
||||
public function testUpdateCustomerConfigWithSingleParam()
|
||||
public function testUpdateCustomerConfigWithSingleParam(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/edit/customer');
|
||||
@@ -245,7 +245,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertHasFlashSaveSuccess($client);
|
||||
}
|
||||
|
||||
public function testUpdateUserConfig()
|
||||
public function testUpdateUserConfig(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/edit/user');
|
||||
@@ -277,7 +277,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals('ru', $configService->find('defaults.user.language'));
|
||||
}
|
||||
|
||||
public function testUpdateCustomerConfigValidation()
|
||||
public function testUpdateCustomerConfigValidation(): void
|
||||
{
|
||||
$this->assertFormHasValidationError(
|
||||
User::ROLE_SUPER_ADMIN,
|
||||
@@ -300,7 +300,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
);
|
||||
}
|
||||
|
||||
public function testUpdateThemeConfig()
|
||||
public function testUpdateThemeConfig(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/');
|
||||
@@ -326,7 +326,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertTrue($configService->find('timesheet.markdown_content'));
|
||||
}
|
||||
|
||||
public function testUpdateThemeConfigValidation()
|
||||
public function testUpdateThemeConfigValidation(): void
|
||||
{
|
||||
$this->assertFormHasValidationError(
|
||||
User::ROLE_SUPER_ADMIN,
|
||||
@@ -346,7 +346,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
);
|
||||
}
|
||||
|
||||
public function testUpdateCalendarConfig()
|
||||
public function testUpdateCalendarConfig(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/');
|
||||
@@ -387,7 +387,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals('21:43', $configService->find('calendar.visibleHours.end'));
|
||||
}
|
||||
|
||||
public function testUpdateCalendarConfigValidation()
|
||||
public function testUpdateCalendarConfigValidation(): void
|
||||
{
|
||||
$this->assertFormHasValidationError(
|
||||
User::ROLE_SUPER_ADMIN,
|
||||
|
||||
@@ -18,17 +18,17 @@ use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
*/
|
||||
class UserControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/admin/user/');
|
||||
}
|
||||
|
||||
public function testIsSecureForRole()
|
||||
public function testIsSecureForRole(): void
|
||||
{
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_ADMIN, '/admin/user/');
|
||||
}
|
||||
|
||||
public function testIndexAction()
|
||||
public function testIndexAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/user/');
|
||||
@@ -43,7 +43,7 @@ class UserControllerTest extends ControllerBaseTest
|
||||
]);
|
||||
}
|
||||
|
||||
public function testIndexActionWithSearchTermQuery()
|
||||
public function testIndexActionWithSearchTermQuery(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
@@ -64,19 +64,19 @@ class UserControllerTest extends ControllerBaseTest
|
||||
$this->assertDataTableRowCount($client, 'datatable_user_admin', 1);
|
||||
}
|
||||
|
||||
public function testExportIsSecureForRole()
|
||||
public function testExportIsSecureForRole(): void
|
||||
{
|
||||
$this->assertUrlIsSecuredForRole(User::ROLE_ADMIN, '/admin/user/export');
|
||||
}
|
||||
|
||||
public function testExportAction()
|
||||
public function testExportAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/user/export');
|
||||
$this->assertExcelExportResponse($client, 'kimai-users_');
|
||||
}
|
||||
|
||||
public function testExportActionWithSearchTermQuery()
|
||||
public function testExportActionWithSearchTermQuery(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
@@ -96,7 +96,7 @@ class UserControllerTest extends ControllerBaseTest
|
||||
$this->assertExcelExportResponse($client, 'kimai-users_');
|
||||
}
|
||||
|
||||
public function testCreateAction()
|
||||
public function testCreateAction(): void
|
||||
{
|
||||
$username = '亚历山德拉' . uniqid();
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
@@ -119,7 +119,7 @@ class UserControllerTest extends ControllerBaseTest
|
||||
$this->assertEquals($username, $form->get('user_edit[alias]')->getValue());
|
||||
}
|
||||
|
||||
public function testDeleteAction()
|
||||
public function testDeleteAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
@@ -138,7 +138,7 @@ class UserControllerTest extends ControllerBaseTest
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntries()
|
||||
public function testDeleteActionWithTimesheetEntries(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
@@ -172,7 +172,7 @@ class UserControllerTest extends ControllerBaseTest
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithUserReplacementAndTimesheetEntries()
|
||||
public function testDeleteActionWithUserReplacementAndTimesheetEntries(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
@@ -222,7 +222,7 @@ class UserControllerTest extends ControllerBaseTest
|
||||
/**
|
||||
* @dataProvider getValidationTestData
|
||||
*/
|
||||
public function testValidationForCreateAction(array $formData, array $validationFields)
|
||||
public function testValidationForCreateAction(array $formData, array $validationFields): void
|
||||
{
|
||||
$this->assertFormHasValidationError(
|
||||
User::ROLE_SUPER_ADMIN,
|
||||
|
||||
@@ -16,12 +16,12 @@ use App\Entity\User;
|
||||
*/
|
||||
class WidgetControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testIsSecure()
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
$this->assertUrlIsSecured('/widgets/working-time/2020/1');
|
||||
}
|
||||
|
||||
public function testWorkingtimechartAction()
|
||||
public function testWorkingtimechartAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->assertAccessIsGranted($client, '/widgets/working-time/2020/1');
|
||||
|
||||
@@ -16,7 +16,7 @@ use App\Entity\User;
|
||||
*/
|
||||
class WizardControllerTest extends ControllerBaseTest
|
||||
{
|
||||
public function testUnknownWizard()
|
||||
public function testUnknownWizard(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
|
||||
@@ -24,21 +24,21 @@ class WizardControllerTest extends ControllerBaseTest
|
||||
$this->assertRouteNotFound($client);
|
||||
}
|
||||
|
||||
public function testIntroWizard()
|
||||
public function testIntroWizard(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
|
||||
$this->assertAccessIsGranted($client, '/wizard/intro');
|
||||
}
|
||||
|
||||
public function testProfileWizard()
|
||||
public function testProfileWizard(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
|
||||
$this->assertAccessIsGranted($client, '/wizard/profile');
|
||||
}
|
||||
|
||||
public function testDoneWizard()
|
||||
public function testDoneWizard(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ class CustomerServiceTest extends TestCase
|
||||
return new CustomerService($repository, $configuration, $validator, $dispatcher);
|
||||
}
|
||||
|
||||
public function testCannotSavePersistedCustomerAsNew()
|
||||
public function testCannotSavePersistedCustomerAsNew(): void
|
||||
{
|
||||
$Customer = $this->createMock(Customer::class);
|
||||
$Customer->expects($this->once())->method('getId')->willReturn(1);
|
||||
@@ -82,7 +82,7 @@ class CustomerServiceTest extends TestCase
|
||||
$sut->saveNewCustomer($Customer);
|
||||
}
|
||||
|
||||
public function testSaveNewCustomerHasValidationError()
|
||||
public function testSaveNewCustomerHasValidationError(): void
|
||||
{
|
||||
$constraints = new ConstraintViolationList();
|
||||
$constraints->add(new ConstraintViolation('toooo many tests', 'abc.def', [], '$root', 'begin', 4, null, null, null, '$cause'));
|
||||
@@ -98,7 +98,7 @@ class CustomerServiceTest extends TestCase
|
||||
$sut->saveNewCustomer(new Customer('foo'));
|
||||
}
|
||||
|
||||
public function testUpdateDispatchesEvents()
|
||||
public function testUpdateDispatchesEvents(): void
|
||||
{
|
||||
$Customer = $this->createMock(Customer::class);
|
||||
$Customer->method('getId')->willReturn(1);
|
||||
@@ -121,7 +121,7 @@ class CustomerServiceTest extends TestCase
|
||||
$sut->updateCustomer($Customer);
|
||||
}
|
||||
|
||||
public function testCreateNewCustomerDispatchesEvents()
|
||||
public function testCreateNewCustomerDispatchesEvents(): void
|
||||
{
|
||||
$dispatcher = $this->createMock(EventDispatcherInterface::class);
|
||||
$dispatcher->expects($this->exactly(2))->method('dispatch')->willReturnCallback(function ($event) {
|
||||
@@ -146,7 +146,7 @@ class CustomerServiceTest extends TestCase
|
||||
self::assertEquals('RUB', $customer->getCurrency());
|
||||
}
|
||||
|
||||
public function testSaveNewCustomerDispatchesEvents()
|
||||
public function testSaveNewCustomerDispatchesEvents(): void
|
||||
{
|
||||
$dispatcher = $this->createMock(EventDispatcherInterface::class);
|
||||
$dispatcher->expects($this->exactly(2))->method('dispatch')->willReturnCallback(function ($event) {
|
||||
|
||||
@@ -26,7 +26,7 @@ class ConfigurationTest extends TestCase
|
||||
];
|
||||
}
|
||||
|
||||
protected function assertConfig($inputConfig, $expectedConfig)
|
||||
public function assertConfig($inputConfig, $expectedConfig): void
|
||||
{
|
||||
$finalizedConfig = $this->getCompiledConfig($inputConfig);
|
||||
|
||||
@@ -43,7 +43,7 @@ class ConfigurationTest extends TestCase
|
||||
return $node->finalize($normalizedConfig);
|
||||
}
|
||||
|
||||
public function testValidateDataDir()
|
||||
public function testValidateDataDir(): void
|
||||
{
|
||||
$this->expectException(InvalidConfigurationException::class);
|
||||
$this->expectExceptionMessage('Invalid configuration for path "kimai.data_dir": Data directory does not exist');
|
||||
@@ -51,7 +51,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($this->getMinConfig('sdfsdfsdfds'), []);
|
||||
}
|
||||
|
||||
public function testValidateLdapConfigUserBaseDn()
|
||||
public function testValidateLdapConfigUserBaseDn(): void
|
||||
{
|
||||
$this->expectException(InvalidConfigurationException::class);
|
||||
$this->expectExceptionMessage('Invalid configuration for path "kimai.ldap": The "ldap.user.baseDn" config must be set if LDAP is activated.');
|
||||
@@ -67,7 +67,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, []);
|
||||
}
|
||||
|
||||
public function testValidateLdapConfig()
|
||||
public function testValidateLdapConfig(): void
|
||||
{
|
||||
$this->expectException(InvalidConfigurationException::class);
|
||||
$this->expectExceptionMessage('Invalid configuration for path "kimai.ldap.connection": The ldap.connection.useSsl and ldap.connection.useStartTls options are mutually exclusive.');
|
||||
@@ -83,7 +83,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, []);
|
||||
}
|
||||
|
||||
public function testValidateLdapFilterIncludingReplacer()
|
||||
public function testValidateLdapFilterIncludingReplacer(): void
|
||||
{
|
||||
$this->expectException(InvalidConfigurationException::class);
|
||||
$this->expectExceptionMessage('Invalid configuration for path "kimai.ldap.user.filter": The ldap.user.filter must be enclosed by a matching number of parentheses "()" and must NOT contain a "%s" replacer');
|
||||
@@ -98,7 +98,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, []);
|
||||
}
|
||||
|
||||
public function testValidateLdapFilterMissingStartingParenthesis()
|
||||
public function testValidateLdapFilterMissingStartingParenthesis(): void
|
||||
{
|
||||
$this->expectException(InvalidConfigurationException::class);
|
||||
$this->expectExceptionMessage('Invalid configuration for path "kimai.ldap.user.filter": The ldap.user.filter must be enclosed by a matching number of parentheses "()" and must NOT contain a "%s" replacer');
|
||||
@@ -113,7 +113,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, []);
|
||||
}
|
||||
|
||||
public function testValidateCalendarDragDropMaxEntries()
|
||||
public function testValidateCalendarDragDropMaxEntries(): void
|
||||
{
|
||||
$this->expectException(InvalidConfigurationException::class);
|
||||
$this->expectExceptionMessage('Invalid configuration for path "kimai.calendar.dragdrop_amount": The dragdrop_amount must be between 0 and 20');
|
||||
@@ -126,7 +126,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, []);
|
||||
}
|
||||
|
||||
public function testValidateLdapFilterInvalidParenthesisCounter()
|
||||
public function testValidateLdapFilterInvalidParenthesisCounter(): void
|
||||
{
|
||||
$this->expectException(InvalidConfigurationException::class);
|
||||
$this->expectExceptionMessage('Invalid configuration for path "kimai.ldap.user.filter": The ldap.user.filter must be enclosed by a matching number of parentheses "()" and must NOT contain a "%s" replacer');
|
||||
@@ -141,7 +141,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, []);
|
||||
}
|
||||
|
||||
public function testValidateLdapAccountFilterFormatMissingUserAttributeReplacer()
|
||||
public function testValidateLdapAccountFilterFormatMissingUserAttributeReplacer(): void
|
||||
{
|
||||
$this->expectException(InvalidConfigurationException::class);
|
||||
$this->expectExceptionMessage('Invalid configuration for path "kimai.ldap.connection.accountFilterFormat": The accountFilterFormat must be enclosed by a matching number of parentheses "()" and contain one "%s" replacer for the username');
|
||||
@@ -156,7 +156,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, []);
|
||||
}
|
||||
|
||||
public function testValidateLdapAccountFilterFormatMissingStartingParenthesis()
|
||||
public function testValidateLdapAccountFilterFormatMissingStartingParenthesis(): void
|
||||
{
|
||||
$this->expectException(InvalidConfigurationException::class);
|
||||
$this->expectExceptionMessage('Invalid configuration for path "kimai.ldap.connection.accountFilterFormat": The accountFilterFormat must be enclosed by a matching number of parentheses "()" and contain one "%s" replacer for the username');
|
||||
@@ -171,7 +171,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, []);
|
||||
}
|
||||
|
||||
public function testValidateLdapAccountFilterFormatInvalidParenthesisCounter()
|
||||
public function testValidateLdapAccountFilterFormatInvalidParenthesisCounter(): void
|
||||
{
|
||||
$this->expectException(InvalidConfigurationException::class);
|
||||
$this->expectExceptionMessage('Invalid configuration for path "kimai.ldap.connection.accountFilterFormat": The accountFilterFormat must be enclosed by a matching number of parentheses "()" and contain one "%s" replacer for the username');
|
||||
@@ -186,7 +186,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, []);
|
||||
}
|
||||
|
||||
public function testValidateSamlIsMissingMappingForEmail()
|
||||
public function testValidateSamlIsMissingMappingForEmail(): void
|
||||
{
|
||||
$this->expectException(InvalidConfigurationException::class);
|
||||
$this->expectExceptionMessage('Invalid configuration for path "kimai.saml": You need to configure a SAML mapping for the email attribute.');
|
||||
@@ -200,7 +200,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, []);
|
||||
}
|
||||
|
||||
public function testValidateSamlDoesNotTriggerOnDeactivatedSaml()
|
||||
public function testValidateSamlDoesNotTriggerOnDeactivatedSaml(): void
|
||||
{
|
||||
$finalizedConfig = $this->getCompiledConfig($this->getMinConfig());
|
||||
$config = $this->getMinConfig();
|
||||
@@ -212,7 +212,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, $finalizedConfig);
|
||||
}
|
||||
|
||||
public function testValidateSamlDoesNotTriggerWhenEmailMappingExists()
|
||||
public function testValidateSamlDoesNotTriggerWhenEmailMappingExists(): void
|
||||
{
|
||||
$config = $this->getMinConfig();
|
||||
$config['saml'] = [
|
||||
@@ -226,7 +226,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, $finalizedConfig);
|
||||
}
|
||||
|
||||
public function testDefaultLdapSettings()
|
||||
public function testDefaultLdapSettings(): void
|
||||
{
|
||||
$finalizedConfig = $this->getCompiledConfig($this->getMinConfig());
|
||||
$expected = [
|
||||
@@ -257,7 +257,7 @@ class ConfigurationTest extends TestCase
|
||||
self::assertEquals($expected, $finalizedConfig['ldap']);
|
||||
}
|
||||
|
||||
public function testFullDefaultConfig()
|
||||
public function testFullDefaultConfig(): void
|
||||
{
|
||||
$fullDefaultConfig = [
|
||||
'data_dir' => '/tmp/',
|
||||
|
||||
@@ -18,7 +18,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class TimesheetSubscriberTest extends TestCase
|
||||
{
|
||||
public function testGetSubscribedEvents()
|
||||
public function testGetSubscribedEvents(): void
|
||||
{
|
||||
$sut = new TimesheetSubscriber([]);
|
||||
$events = $sut->getSubscribedEvents();
|
||||
|
||||
@@ -17,7 +17,7 @@ abstract class AbstractCommentEntityTest extends TestCase
|
||||
{
|
||||
abstract protected function getEntity(): CommentInterface;
|
||||
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = $this->getEntity();
|
||||
|
||||
@@ -29,7 +29,7 @@ abstract class AbstractCommentEntityTest extends TestCase
|
||||
self::assertFalse($sut->isPinned());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = $this->getEntity();
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ use PHPUnit\Framework\TestCase;
|
||||
|
||||
abstract class AbstractEntityTest extends TestCase
|
||||
{
|
||||
protected function assertBudget(EntityWithBudget $entityWithBudget)
|
||||
public function assertBudget(EntityWithBudget $entityWithBudget): void
|
||||
{
|
||||
$this->assertEquals(0.0, $entityWithBudget->getBudget());
|
||||
$this->assertEquals(0, $entityWithBudget->getTimeBudget());
|
||||
|
||||
@@ -23,7 +23,7 @@ abstract class AbstractMetaEntityTest extends TestCase
|
||||
|
||||
abstract protected function getMetaEntity(): MetaTableTypeInterface;
|
||||
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = $this->getMetaEntity();
|
||||
self::assertNull($sut->getLabel());
|
||||
@@ -40,7 +40,7 @@ abstract class AbstractMetaEntityTest extends TestCase
|
||||
self::assertEquals(0, $sut->getOrder());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = $this->getMetaEntity();
|
||||
self::assertInstanceOf(MetaTableTypeInterface::class, $sut->setName('foo-bar'));
|
||||
@@ -85,7 +85,7 @@ abstract class AbstractMetaEntityTest extends TestCase
|
||||
self::assertSame($entity, $sut->getEntity());
|
||||
}
|
||||
|
||||
public function testMerge()
|
||||
public function testMerge(): void
|
||||
{
|
||||
$entity1 = $this->getEntity();
|
||||
$entity2 = $this->getEntity();
|
||||
|
||||
@@ -30,7 +30,7 @@ class ActivityMetaTest extends AbstractMetaEntityTest
|
||||
return new ActivityMeta();
|
||||
}
|
||||
|
||||
public function testSetEntityThrowsException()
|
||||
public function testSetEntityThrowsException(): void
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
$this->expectExceptionMessage('Expected instanceof Activity, received "App\Entity\Timesheet"');
|
||||
|
||||
@@ -20,7 +20,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class ActivityRateTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new ActivityRate();
|
||||
self::assertNull($sut->getId());
|
||||
@@ -32,7 +32,7 @@ class ActivityRateTest extends TestCase
|
||||
self::assertFalse($sut->isFixed());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new ActivityRate();
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ use Doctrine\Common\Collections\Collection;
|
||||
*/
|
||||
class ActivityTest extends AbstractEntityTest
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new Activity();
|
||||
$this->assertNull($sut->getId());
|
||||
@@ -42,12 +42,12 @@ class ActivityTest extends AbstractEntityTest
|
||||
$this->assertInstanceOf(Collection::class, $sut->getTeams());
|
||||
}
|
||||
|
||||
public function testBudgets()
|
||||
public function testBudgets(): void
|
||||
{
|
||||
$this->assertBudget(new Activity());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new Activity();
|
||||
$this->assertInstanceOf(Activity::class, $sut->setName('foo-bar'));
|
||||
@@ -82,7 +82,7 @@ class ActivityTest extends AbstractEntityTest
|
||||
$this->assertFalse($sut->isGlobal());
|
||||
}
|
||||
|
||||
public function testMetaFields()
|
||||
public function testMetaFields(): void
|
||||
{
|
||||
$sut = new Activity();
|
||||
$meta = new ActivityMeta();
|
||||
@@ -110,7 +110,7 @@ class ActivityTest extends AbstractEntityTest
|
||||
self::assertCount(2, $sut->getVisibleMetaFields());
|
||||
}
|
||||
|
||||
public function testTeams()
|
||||
public function testTeams(): void
|
||||
{
|
||||
$sut = new Activity();
|
||||
$team = new Team('foo');
|
||||
@@ -133,7 +133,7 @@ class ActivityTest extends AbstractEntityTest
|
||||
self::assertCount(0, $team->getActivities());
|
||||
}
|
||||
|
||||
public function testExportAnnotations()
|
||||
public function testExportAnnotations(): void
|
||||
{
|
||||
$sut = new AnnotationExtractor();
|
||||
|
||||
@@ -169,7 +169,7 @@ class ActivityTest extends AbstractEntityTest
|
||||
}
|
||||
}
|
||||
|
||||
public function testClone()
|
||||
public function testClone(): void
|
||||
{
|
||||
$sut = new Activity();
|
||||
$sut->setName('activity1111');
|
||||
|
||||
@@ -18,7 +18,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class BookmarkTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new Bookmark();
|
||||
$this->assertNull($sut->getId());
|
||||
@@ -29,7 +29,7 @@ class BookmarkTest extends TestCase
|
||||
$this->assertNull($sut->getUser());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new Bookmark();
|
||||
$sut->setName('foo-bar');
|
||||
|
||||
@@ -17,7 +17,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class ConfigurationTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new Configuration();
|
||||
$this->assertNull($sut->getId());
|
||||
@@ -25,7 +25,7 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertNull($sut->getValue());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new Configuration();
|
||||
$this->assertInstanceOf(Configuration::class, $sut->setName('foo-bar'));
|
||||
|
||||
@@ -23,7 +23,7 @@ class CustomerCommentTest extends AbstractCommentEntityTest
|
||||
return new CustomerComment(new Customer('foo'));
|
||||
}
|
||||
|
||||
public function testEntitySpecificMethods()
|
||||
public function testEntitySpecificMethods(): void
|
||||
{
|
||||
$sut = $this->getEntity();
|
||||
self::assertNotNull($sut->getCustomer());
|
||||
|
||||
@@ -30,7 +30,7 @@ class CustomerMetaTest extends AbstractMetaEntityTest
|
||||
return new CustomerMeta();
|
||||
}
|
||||
|
||||
public function testSetEntityThrowsException()
|
||||
public function testSetEntityThrowsException(): void
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
$this->expectExceptionMessage('Expected instanceof Customer, received "App\Entity\Activity"');
|
||||
|
||||
@@ -20,7 +20,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class CustomerRateTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new CustomerRate();
|
||||
self::assertNull($sut->getId());
|
||||
@@ -32,7 +32,7 @@ class CustomerRateTest extends TestCase
|
||||
self::assertFalse($sut->isFixed());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new CustomerRate();
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ use Doctrine\Common\Collections\Collection;
|
||||
*/
|
||||
class CustomerTest extends AbstractEntityTest
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new Customer('foo');
|
||||
self::assertNull($sut->getId());
|
||||
@@ -54,12 +54,12 @@ class CustomerTest extends AbstractEntityTest
|
||||
self::assertEquals(0, $sut->getTeams()->count());
|
||||
}
|
||||
|
||||
public function testBudgets()
|
||||
public function testBudgets(): void
|
||||
{
|
||||
$this->assertBudget(new Customer('foo'));
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new Customer('foo-bar');
|
||||
self::assertEquals('foo-bar', $sut->getName());
|
||||
@@ -119,7 +119,7 @@ class CustomerTest extends AbstractEntityTest
|
||||
self::assertNull($sut->getCurrency());
|
||||
}
|
||||
|
||||
public function testMetaFields()
|
||||
public function testMetaFields(): void
|
||||
{
|
||||
$sut = new Customer('foo');
|
||||
$meta = new CustomerMeta();
|
||||
@@ -147,7 +147,7 @@ class CustomerTest extends AbstractEntityTest
|
||||
self::assertCount(2, $sut->getVisibleMetaFields());
|
||||
}
|
||||
|
||||
public function testTeams()
|
||||
public function testTeams(): void
|
||||
{
|
||||
$sut = new Customer('foo');
|
||||
$team = new Team('foo');
|
||||
@@ -171,7 +171,7 @@ class CustomerTest extends AbstractEntityTest
|
||||
self::assertCount(0, $team->getCustomers());
|
||||
}
|
||||
|
||||
public function testExportAnnotations()
|
||||
public function testExportAnnotations(): void
|
||||
{
|
||||
$sut = new AnnotationExtractor();
|
||||
|
||||
@@ -219,7 +219,7 @@ class CustomerTest extends AbstractEntityTest
|
||||
}
|
||||
}
|
||||
|
||||
public function testClone()
|
||||
public function testClone(): void
|
||||
{
|
||||
$sut = new Customer('mycustomer');
|
||||
$sut->setVatId('DE-0123456789');
|
||||
|
||||
@@ -21,7 +21,7 @@ trait EntityValidationTestTrait
|
||||
* @param object $entity
|
||||
* @param array|string $fieldNames
|
||||
*/
|
||||
protected function assertHasViolationForField(object $entity, $fieldNames, $groups = null)
|
||||
public function assertHasViolationForField(object $entity, $fieldNames, $groups = null): void
|
||||
{
|
||||
self::bootKernel();
|
||||
/** @var ValidatorInterface $validator */
|
||||
@@ -56,7 +56,7 @@ trait EntityValidationTestTrait
|
||||
$this->assertEquals($expected, $countViolations, sprintf('Expected %s violations, found %s in %s.', $expected, $actual, implode(', ', array_keys($violatedFields))));
|
||||
}
|
||||
|
||||
protected function assertHasNoViolations($entity, $groups = null)
|
||||
public function assertHasNoViolations($entity, $groups = null): void
|
||||
{
|
||||
self::bootKernel();
|
||||
/** @var ValidatorInterface $validator */
|
||||
|
||||
@@ -30,7 +30,7 @@ class InvoiceMetaTest extends AbstractMetaEntityTest
|
||||
return new InvoiceMeta();
|
||||
}
|
||||
|
||||
public function testSetEntityThrowsException()
|
||||
public function testSetEntityThrowsException(): void
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
$this->expectExceptionMessage('Expected instanceof Invoice, received "App\Entity\Customer"');
|
||||
|
||||
@@ -17,7 +17,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class InvoiceTemplateTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new InvoiceTemplate();
|
||||
|
||||
@@ -38,7 +38,7 @@ class InvoiceTemplateTest extends TestCase
|
||||
self::assertTrue($sut->isDecimalDuration());
|
||||
}
|
||||
|
||||
public function testSetNullForOptionalValues()
|
||||
public function testSetNullForOptionalValues(): void
|
||||
{
|
||||
$sut = new InvoiceTemplate();
|
||||
|
||||
@@ -49,7 +49,7 @@ class InvoiceTemplateTest extends TestCase
|
||||
self::assertInstanceOf(InvoiceTemplate::class, $sut->setPaymentTerms(null));
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new InvoiceTemplate();
|
||||
|
||||
@@ -83,7 +83,7 @@ class InvoiceTemplateTest extends TestCase
|
||||
self::assertEquals($sut, clone $sut);
|
||||
}
|
||||
|
||||
public function testToString()
|
||||
public function testToString(): void
|
||||
{
|
||||
$sut = new InvoiceTemplate();
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class InvoiceTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new Invoice();
|
||||
self::assertNull($sut->getCreatedAt());
|
||||
@@ -58,7 +58,7 @@ class InvoiceTest extends TestCase
|
||||
self::assertNull($sut->getComment());
|
||||
}
|
||||
|
||||
public function testSetInvalidStatus()
|
||||
public function testSetInvalidStatus(): void
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
$this->expectExceptionMessage('Unknown invoice status');
|
||||
@@ -67,7 +67,7 @@ class InvoiceTest extends TestCase
|
||||
$sut->setStatus('foo');
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$date = new \DateTime('-2 months');
|
||||
$sut = new Invoice();
|
||||
@@ -219,7 +219,7 @@ class InvoiceTest extends TestCase
|
||||
return new DateNumberGenerator($repository);
|
||||
}
|
||||
|
||||
public function testClone()
|
||||
public function testClone(): void
|
||||
{
|
||||
$sut = new Invoice();
|
||||
$sut->setComment('foo kajsdhgf aksjdhfg');
|
||||
@@ -242,7 +242,7 @@ class InvoiceTest extends TestCase
|
||||
self::assertEquals('foo kajsdhgf aksjdhfg', $clone->getComment());
|
||||
}
|
||||
|
||||
public function testMetaFields()
|
||||
public function testMetaFields(): void
|
||||
{
|
||||
$sut = new Invoice();
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ class ProjectCommentTest extends AbstractCommentEntityTest
|
||||
return new ProjectComment(new Project());
|
||||
}
|
||||
|
||||
public function testEntitySpecificMethods()
|
||||
public function testEntitySpecificMethods(): void
|
||||
{
|
||||
$sut = $this->getEntity();
|
||||
self::assertNotNull($sut->getProject());
|
||||
|
||||
@@ -30,7 +30,7 @@ class ProjectMetaTest extends AbstractMetaEntityTest
|
||||
return new ProjectMeta();
|
||||
}
|
||||
|
||||
public function testSetEntityThrowsException()
|
||||
public function testSetEntityThrowsException(): void
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
$this->expectExceptionMessage('Expected instanceof Project, received "App\Entity\Customer"');
|
||||
|
||||
@@ -20,7 +20,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class ProjectRateTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new ProjectRate();
|
||||
self::assertNull($sut->getId());
|
||||
@@ -32,7 +32,7 @@ class ProjectRateTest extends TestCase
|
||||
self::assertFalse($sut->isFixed());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new ProjectRate();
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ use Doctrine\Common\Collections\Collection;
|
||||
*/
|
||||
class ProjectTest extends AbstractEntityTest
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new Project();
|
||||
self::assertNull($sut->getId());
|
||||
@@ -48,12 +48,12 @@ class ProjectTest extends AbstractEntityTest
|
||||
self::assertTrue($sut->isVisibleAtDate(new \DateTime()));
|
||||
}
|
||||
|
||||
public function testBudgets()
|
||||
public function testBudgets(): void
|
||||
{
|
||||
$this->assertBudget(new Project());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new Project();
|
||||
|
||||
@@ -110,7 +110,7 @@ class ProjectTest extends AbstractEntityTest
|
||||
self::assertFalse($sut->isGlobalActivities());
|
||||
}
|
||||
|
||||
public function testMetaFields()
|
||||
public function testMetaFields(): void
|
||||
{
|
||||
$sut = new Project();
|
||||
$meta = new ProjectMeta();
|
||||
@@ -138,7 +138,7 @@ class ProjectTest extends AbstractEntityTest
|
||||
self::assertCount(2, $sut->getVisibleMetaFields());
|
||||
}
|
||||
|
||||
public function testTeams()
|
||||
public function testTeams(): void
|
||||
{
|
||||
$sut = new Project();
|
||||
$team = new Team('foo');
|
||||
@@ -161,7 +161,7 @@ class ProjectTest extends AbstractEntityTest
|
||||
self::assertCount(0, $team->getProjects());
|
||||
}
|
||||
|
||||
public function testExportAnnotations()
|
||||
public function testExportAnnotations(): void
|
||||
{
|
||||
$sut = new AnnotationExtractor();
|
||||
|
||||
@@ -201,7 +201,7 @@ class ProjectTest extends AbstractEntityTest
|
||||
}
|
||||
}
|
||||
|
||||
public function testClone()
|
||||
public function testClone(): void
|
||||
{
|
||||
$customer = new Customer('prj-customer');
|
||||
$customer->setVatId('DE-0123456789');
|
||||
@@ -241,7 +241,7 @@ class ProjectTest extends AbstractEntityTest
|
||||
self::assertEquals('prj-customer', $clone->getCustomer()->getName());
|
||||
}
|
||||
|
||||
public function testIsVisibleAtDateTime()
|
||||
public function testIsVisibleAtDateTime(): void
|
||||
{
|
||||
$now = new \DateTime();
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class RolePermissionTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new RolePermission();
|
||||
self::assertNull($sut->getId());
|
||||
@@ -27,7 +27,7 @@ class RolePermissionTest extends TestCase
|
||||
self::assertFalse($sut->isAllowed());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new RolePermission();
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class TagTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new Tag();
|
||||
$this->assertNull($sut->getId());
|
||||
@@ -25,7 +25,7 @@ class TagTest extends TestCase
|
||||
$this->assertNull($sut->getColor());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new Tag();
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class TeamTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new Team('foo');
|
||||
self::assertNull($sut->getId());
|
||||
@@ -40,7 +40,7 @@ class TeamTest extends TestCase
|
||||
self::assertEquals(0, $sut->getActivities()->count());
|
||||
}
|
||||
|
||||
public function testColor()
|
||||
public function testColor(): void
|
||||
{
|
||||
$sut = new Team('foo');
|
||||
self::assertNull($sut->getColor());
|
||||
@@ -55,7 +55,7 @@ class TeamTest extends TestCase
|
||||
self::assertTrue($sut->hasColor());
|
||||
}
|
||||
|
||||
public function testTeamMemberships()
|
||||
public function testTeamMemberships(): void
|
||||
{
|
||||
$user = new User();
|
||||
$user2 = new User();
|
||||
@@ -115,7 +115,7 @@ class TeamTest extends TestCase
|
||||
self::assertCount(2, $sut->getMembers());
|
||||
}
|
||||
|
||||
public function testTeamMembershipsException()
|
||||
public function testTeamMembershipsException(): void
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
$sut = new Team('foo');
|
||||
@@ -124,7 +124,7 @@ class TeamTest extends TestCase
|
||||
$sut->addMember($member);
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
public function testSetterAndGetter(): void
|
||||
{
|
||||
$sut = new Team('foo-bar');
|
||||
self::assertEquals('foo-bar', $sut->getName());
|
||||
@@ -156,7 +156,7 @@ class TeamTest extends TestCase
|
||||
self::assertCount(2, $sut->getTeamleads());
|
||||
}
|
||||
|
||||
public function testCustomer()
|
||||
public function testCustomer(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
self::assertEmpty($customer->getTeams());
|
||||
@@ -175,7 +175,7 @@ class TeamTest extends TestCase
|
||||
self::assertEquals(0, $sut->getCustomers()->count());
|
||||
}
|
||||
|
||||
public function testProject()
|
||||
public function testProject(): void
|
||||
{
|
||||
$project = new Project();
|
||||
$project->setName('foo');
|
||||
@@ -195,7 +195,7 @@ class TeamTest extends TestCase
|
||||
self::assertEquals(0, $sut->getProjects()->count());
|
||||
}
|
||||
|
||||
public function testActivities()
|
||||
public function testActivities(): void
|
||||
{
|
||||
$activity = new Activity();
|
||||
$activity->setName('foo');
|
||||
@@ -215,7 +215,7 @@ class TeamTest extends TestCase
|
||||
self::assertEquals(0, $sut->getActivities()->count());
|
||||
}
|
||||
|
||||
public function testUsers()
|
||||
public function testUsers(): void
|
||||
{
|
||||
$user = new User();
|
||||
$user->setAlias('foo');
|
||||
@@ -241,7 +241,7 @@ class TeamTest extends TestCase
|
||||
self::assertCount(1, $sut->getUsers());
|
||||
}
|
||||
|
||||
public function testClone()
|
||||
public function testClone(): void
|
||||
{
|
||||
$c = new Customer('Foo');
|
||||
$p = new Project();
|
||||
|
||||
@@ -30,7 +30,7 @@ class TimesheetMetaTest extends AbstractMetaEntityTest
|
||||
return new TimesheetMeta();
|
||||
}
|
||||
|
||||
public function testSetEntityThrowsException()
|
||||
public function testSetEntityThrowsException(): void
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
$this->expectExceptionMessage('Expected instanceof Timesheet, received "App\Entity\Project"');
|
||||
|
||||
@@ -44,7 +44,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
return $entity;
|
||||
}
|
||||
|
||||
public function testValidationNeedsActivity()
|
||||
public function testValidationNeedsActivity(): void
|
||||
{
|
||||
$project = new Project();
|
||||
$project->setCustomer(new Customer('foo'));
|
||||
@@ -57,7 +57,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
$this->assertHasViolationForField($entity, 'activity');
|
||||
}
|
||||
|
||||
public function testValidationNeedsProject()
|
||||
public function testValidationNeedsProject(): void
|
||||
{
|
||||
$entity = new Timesheet();
|
||||
$entity->setUser(new User());
|
||||
@@ -67,7 +67,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
$this->assertHasViolationForField($entity, 'project');
|
||||
}
|
||||
|
||||
public function testValidationProjectMismatch()
|
||||
public function testValidationProjectMismatch(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer);
|
||||
@@ -83,7 +83,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
$this->assertHasViolationForField($entity, 'project');
|
||||
}
|
||||
|
||||
public function testValidationCustomerInvisible()
|
||||
public function testValidationCustomerInvisible(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$customer->setVisible(false);
|
||||
@@ -124,7 +124,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
return $entity;
|
||||
}
|
||||
|
||||
public function testValidationCustomerInvisibleDoesNotTriggerOnStoppedEntities()
|
||||
public function testValidationCustomerInvisibleDoesNotTriggerOnStoppedEntities(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$customer->setVisible(false);
|
||||
@@ -140,7 +140,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
$this->assertHasNoViolations($entity);
|
||||
}
|
||||
|
||||
public function testValidationCustomerInvisibleDoesTriggerOnNewEntities()
|
||||
public function testValidationCustomerInvisibleDoesTriggerOnNewEntities(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$customer->setVisible(false);
|
||||
@@ -156,7 +156,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
$this->assertHasViolationForField($entity, 'customer');
|
||||
}
|
||||
|
||||
public function testValidationProjectInvisible()
|
||||
public function testValidationProjectInvisible(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer)->setVisible(false);
|
||||
@@ -172,7 +172,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
$this->assertHasViolationForField($entity, 'project');
|
||||
}
|
||||
|
||||
public function testValidationProjectInvisibleDoesNotTriggerOnStoppedEntities()
|
||||
public function testValidationProjectInvisibleDoesNotTriggerOnStoppedEntities(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer)->setVisible(false);
|
||||
@@ -183,7 +183,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
$this->assertHasNoViolations($entity);
|
||||
}
|
||||
|
||||
public function testValidationProjectInvisibleDoesTriggerOnNewEntities()
|
||||
public function testValidationProjectInvisibleDoesTriggerOnNewEntities(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer)->setVisible(false);
|
||||
@@ -194,7 +194,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
$this->assertHasViolationForField($entity, 'project');
|
||||
}
|
||||
|
||||
public function testValidationActivityInvisible()
|
||||
public function testValidationActivityInvisible(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$project = (new Project())->setName('foo')->setCustomer($customer);
|
||||
@@ -210,7 +210,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
$this->assertHasViolationForField($entity, 'activity');
|
||||
}
|
||||
|
||||
public function testValidationActivityInvisibleDoesNotTriggerOnStoppedEntities()
|
||||
public function testValidationActivityInvisibleDoesNotTriggerOnStoppedEntities(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$project = new Project();
|
||||
@@ -226,7 +226,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
$this->assertHasNoViolations($entity);
|
||||
}
|
||||
|
||||
public function testValidationActivityInvisibleDoesTriggerOnNewEntities()
|
||||
public function testValidationActivityInvisibleDoesTriggerOnNewEntities(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$project = new Project();
|
||||
@@ -242,7 +242,7 @@ class TimesheetValidationTest extends KernelTestCase
|
||||
$this->assertHasViolationForField($entity, 'activity');
|
||||
}
|
||||
|
||||
public function testValidationEndNotEarlierThanBegin()
|
||||
public function testValidationEndNotEarlierThanBegin(): void
|
||||
{
|
||||
$entity = $this->getEntity();
|
||||
$begin = new \DateTime();
|
||||
|
||||
@@ -20,7 +20,7 @@ use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
*/
|
||||
class UserPreferenceTest extends TestCase
|
||||
{
|
||||
public function testDefaultValues()
|
||||
public function testDefaultValues(): void
|
||||
{
|
||||
$sut = new UserPreference('foo');
|
||||
self::assertTrue($sut->isEnabled());
|
||||
@@ -38,7 +38,7 @@ class UserPreferenceTest extends TestCase
|
||||
self::assertNull($sut->getUser());
|
||||
}
|
||||
|
||||
public function testGetValueChangesReturnTypeOnOtherType()
|
||||
public function testGetValueChangesReturnTypeOnOtherType(): void
|
||||
{
|
||||
$sut = new UserPreference('foo');
|
||||
$sut->setValue('1');
|
||||
@@ -52,7 +52,7 @@ class UserPreferenceTest extends TestCase
|
||||
self::assertFalse($sut->getValue());
|
||||
}
|
||||
|
||||
public function testGetLabelWithLabelOption()
|
||||
public function testGetLabelWithLabelOption(): void
|
||||
{
|
||||
$sut = new UserPreference('foo');
|
||||
self::assertEquals('foo', $sut->getLabel());
|
||||
|
||||
@@ -116,7 +116,7 @@ class UserTest extends TestCase
|
||||
$user->setWorkHoursFriday(7600);
|
||||
$user->setWorkHoursSaturday(7700);
|
||||
$user->setWorkHoursSunday(7800);
|
||||
$user->setHolidaysPerYear(10);
|
||||
$user->setHolidaysPerYear(10.7);
|
||||
self::assertTrue($user->hasWorkHourConfiguration());
|
||||
|
||||
self::assertEquals(7200, $user->getWorkHoursMonday());
|
||||
@@ -126,7 +126,7 @@ class UserTest extends TestCase
|
||||
self::assertEquals(7600, $user->getWorkHoursFriday());
|
||||
self::assertEquals(7700, $user->getWorkHoursSaturday());
|
||||
self::assertEquals(7800, $user->getWorkHoursSunday());
|
||||
self::assertEquals(10, $user->getHolidaysPerYear());
|
||||
self::assertEquals(10.5, $user->getHolidaysPerYear());
|
||||
|
||||
self::assertEquals(7200, $user->getWorkHoursForDay($monday));
|
||||
self::assertEquals(7300, $user->getWorkHoursForDay($tuesday));
|
||||
|
||||
@@ -18,7 +18,7 @@ abstract class AbstractActivityEventTest extends TestCase
|
||||
{
|
||||
abstract protected function createActivityEvent(Activity $activity): AbstractActivityEvent;
|
||||
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$activity = new Activity();
|
||||
$sut = $this->createActivityEvent($activity);
|
||||
|
||||
@@ -18,7 +18,7 @@ abstract class AbstractCustomerEventTest extends TestCase
|
||||
{
|
||||
abstract protected function createCustomerEvent(Customer $customer): AbstractCustomerEvent;
|
||||
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$sut = $this->createCustomerEvent($customer);
|
||||
|
||||
@@ -18,7 +18,7 @@ abstract class AbstractProjectEventTest extends TestCase
|
||||
{
|
||||
abstract protected function createProjectEvent(Project $project): AbstractProjectEvent;
|
||||
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$project = new Project();
|
||||
$sut = $this->createProjectEvent($project);
|
||||
|
||||
@@ -18,7 +18,7 @@ abstract class AbstractTimesheetEventTest extends TestCase
|
||||
{
|
||||
abstract protected function createTimesheetEvent(Timesheet $timesheet): AbstractTimesheetEvent;
|
||||
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$timesheet = new Timesheet();
|
||||
$sut = $this->createTimesheetEvent($timesheet);
|
||||
|
||||
@@ -18,7 +18,7 @@ abstract class AbstractTimesheetMultipleEventTest extends TestCase
|
||||
{
|
||||
abstract protected function createTimesheetMultipleEvent(array $timesheets): AbstractTimesheetMultipleEvent;
|
||||
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$timesheets = [new Timesheet(), new Timesheet()];
|
||||
$sut = $this->createTimesheetMultipleEvent($timesheets);
|
||||
|
||||
@@ -18,7 +18,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class ActivityMetaDefinitionEventTest extends TestCase
|
||||
{
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$activity = new Activity();
|
||||
$sut = new ActivityMetaDefinitionEvent($activity);
|
||||
|
||||
@@ -21,7 +21,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class ActivityMetaDisplayEventTest extends TestCase
|
||||
{
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$query = new ActivityQuery();
|
||||
$sut = new ActivityMetaDisplayEvent($query, ActivityMetaDisplayEvent::EXPORT);
|
||||
|
||||
@@ -17,7 +17,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class CalendarConfigurationEventTest extends TestCase
|
||||
{
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$configuration = [
|
||||
'a' => 'b',
|
||||
|
||||
@@ -19,7 +19,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class CalendarDragAndDropSourceEventTest extends TestCase
|
||||
{
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$user = new User();
|
||||
$user->setAlias('foo');
|
||||
|
||||
@@ -19,7 +19,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class CalendarGoogleSourceEventTest extends TestCase
|
||||
{
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$user = new User();
|
||||
$user->setAlias('foo');
|
||||
|
||||
@@ -18,7 +18,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class CustomerMetaDefinitionEventTest extends TestCase
|
||||
{
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$sut = new CustomerMetaDefinitionEvent($customer);
|
||||
|
||||
@@ -21,7 +21,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class CustomerMetaDisplayEventTest extends TestCase
|
||||
{
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$query = new CustomerQuery();
|
||||
$sut = new CustomerMetaDisplayEvent($query, CustomerMetaDisplayEvent::EXPORT);
|
||||
|
||||
@@ -25,7 +25,7 @@ class CustomerStatisticEventTest extends AbstractCustomerEventTest
|
||||
return new CustomerStatisticEvent($customer, new CustomerStatistic());
|
||||
}
|
||||
|
||||
public function testStatistic()
|
||||
public function testStatistic(): void
|
||||
{
|
||||
$customer = new Customer('foo');
|
||||
$statistic = new CustomerStatistic();
|
||||
|
||||
@@ -18,7 +18,7 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class DashboardEventTest extends TestCase
|
||||
{
|
||||
public function testGetterAndSetter()
|
||||
public function testGetterAndSetter(): void
|
||||
{
|
||||
$user = new User();
|
||||
$user->setAlias('foo');
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user