Upgrade tests to PhpUnit 10 (#5252)

This commit is contained in:
Kevin Papst
2024-12-22 01:25:30 +01:00
committed by GitHub
parent 9bd37fb695
commit c7f0508707
377 changed files with 3308 additions and 3409 deletions

View File

@@ -11,7 +11,7 @@ namespace App\Tests\API;
use App\DataFixtures\UserFixtures;
use App\Entity\User;
use App\Tests\Controller\ControllerBaseTest;
use App\Tests\Controller\AbstractControllerBaseTestCase;
use PHPUnit\Framework\Constraint\IsType;
use Symfony\Component\DomCrawler\Crawler;
use Symfony\Component\HttpFoundation\Response;
@@ -20,7 +20,7 @@ use Symfony\Component\HttpKernel\HttpKernelBrowser;
/**
* Adds some useful functions for writing API integration tests.
*/
abstract class APIControllerBaseTest extends ControllerBaseTest
abstract class APIControllerBaseTestCase extends AbstractControllerBaseTestCase
{
/**
* @return array<string, string>
@@ -50,15 +50,15 @@ abstract class APIControllerBaseTest extends ControllerBaseTest
protected function assertPagination(Response $response, int $page, int $pageSize, int $totalPages, int $totalResults): void
{
$this->assertTrue($response->headers->has('X-Page'), 'Missing "X-Page" header');
$this->assertTrue($response->headers->has('X-Total-Count'), 'Missing "X-Total-Count" header');
$this->assertTrue($response->headers->has('X-Total-Pages'), 'Missing "X-Total-Pages" header');
$this->assertTrue($response->headers->has('X-Per-Page'), 'Missing "X-Per-Page" header');
self::assertTrue($response->headers->has('X-Page'), 'Missing "X-Page" header');
self::assertTrue($response->headers->has('X-Total-Count'), 'Missing "X-Total-Count" header');
self::assertTrue($response->headers->has('X-Total-Pages'), 'Missing "X-Total-Pages" header');
self::assertTrue($response->headers->has('X-Per-Page'), 'Missing "X-Per-Page" header');
$this->assertEquals($page, $response->headers->get('X-Page'));
$this->assertEquals($totalResults, $response->headers->get('X-Total-Count'));
$this->assertEquals($totalPages, $response->headers->get('X-Total-Pages'));
$this->assertEquals($pageSize, $response->headers->get('X-Per-Page'));
self::assertEquals($page, $response->headers->get('X-Page'));
self::assertEquals($totalResults, $response->headers->get('X-Total-Count'));
self::assertEquals($totalPages, $response->headers->get('X-Total-Pages'));
self::assertEquals($pageSize, $response->headers->get('X-Per-Page'));
}
protected function assertRequestIsSecured(HttpKernelBrowser $client, string $url, string $method = 'GET'): void
@@ -242,7 +242,7 @@ abstract class APIControllerBaseTest extends ControllerBaseTest
if (\count($expectedFields) > 0) {
foreach ($expectedFields as $expectedField) {
$this->assertArrayHasKey($expectedField, $data, 'Expected field is missing: ' . $expectedField);
self::assertArrayHasKey($expectedField, $data, 'Expected field is missing: ' . $expectedField);
}
}

View File

@@ -18,7 +18,7 @@ use App\Tests\DataFixtures\TimesheetFixtures;
/**
* @group integration
*/
class ActionsControllerTest extends APIControllerBaseTest
class ActionsControllerTest extends APIControllerBaseTestCase
{
public function testIsSecure(): void
{
@@ -58,7 +58,7 @@ class ActionsControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, \sprintf('/api/actions/timesheet/%s/%s/en', $items[0]->getId(), $view));
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
foreach ($result as $item) {
self::assertIsArray($item);
self::assertApiResponseTypeStructure('PageActionItem', $item);
@@ -110,7 +110,7 @@ class ActionsControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, \sprintf('/api/actions/activity/%s/%s/en', $activities[0]->getId(), $view));
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
foreach ($result as $item) {
self::assertIsArray($item);
self::assertApiResponseTypeStructure('PageActionItem', $item);
@@ -161,7 +161,7 @@ class ActionsControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, \sprintf('/api/actions/project/%s/%s/en', $projects[0]->getId(), $view));
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
foreach ($result as $item) {
self::assertIsArray($item);
self::assertApiResponseTypeStructure('PageActionItem', $item);
@@ -208,7 +208,7 @@ class ActionsControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, \sprintf('/api/actions/customer/%s/%s/en', $customers[0]->getId(), $view));
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
foreach ($result as $item) {
self::assertIsArray($item);
self::assertApiResponseTypeStructure('PageActionItem', $item);

View File

@@ -28,7 +28,7 @@ use Symfony\Component\HttpFoundation\Response;
/**
* @group integration
*/
class ActivityControllerTest extends APIControllerBaseTest
class ActivityControllerTest extends APIControllerBaseTestCase
{
use RateControllerTestTrait;
@@ -173,19 +173,19 @@ class ActivityControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, $url, 'GET', $parameters);
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(\count($expected), \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(\count($expected), \count($result));
for ($i = 0; $i < \count($result); $i++) {
$activity = $result[$i];
$hasProject = $expected[$i][0];
self::assertIsArray($activity);
self::assertApiResponseTypeStructure('ActivityCollection', $activity);
if ($hasProject && $projectId !== null) {
$this->assertEquals($projectId, $activity['project']);
self::assertEquals($projectId, $activity['project']);
}
}
}
@@ -193,7 +193,7 @@ class ActivityControllerTest extends APIControllerBaseTest
/**
* @return \Generator<array<mixed>>
*/
public function getCollectionTestData(): iterable
public static function getCollectionTestData(): iterable
{
yield ['/api/activities', null, [], [[false], [true, 2], [true, 2], [null], [true, 1]]];
//yield ['/api/activities', [], [[false], [false], [true, 2], [true, 1], [true, 2]]];
@@ -217,17 +217,17 @@ class ActivityControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/activities', 'GET', $query);
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(5, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(5, \count($result));
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('ActivityCollection', $result[0]);
$this->assertEquals($imports[0]->getId(), $result[4]['project']);
$this->assertEquals($imports[1]->getId(), $result[3]['project']);
$this->assertEquals($imports[1]->getId(), $result[2]['project']);
self::assertEquals($imports[0]->getId(), $result[4]['project']);
self::assertEquals($imports[1]->getId(), $result[3]['project']);
self::assertEquals($imports[1]->getId(), $result[2]['project']);
}
public function testGetEntityIsSecure(): void
@@ -241,10 +241,10 @@ class ActivityControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/activities/1');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ActivityEntity', $result);
}
@@ -264,15 +264,15 @@ class ActivityControllerTest extends APIControllerBaseTest
'timeBudget' => '7200',
];
$this->request($client, '/api/activities', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ActivityEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
}
public function testPostActionWithLeastFields(): void
@@ -282,15 +282,15 @@ class ActivityControllerTest extends APIControllerBaseTest
'name' => 'foo',
];
$this->request($client, '/api/activities', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ActivityEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
}
public function testPostActionWithInvalidUser(): void
@@ -331,15 +331,15 @@ class ActivityControllerTest extends APIControllerBaseTest
'timeBudget' => '7200',
];
$this->request($client, '/api/activities/1', 'PATCH', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ActivityEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
}
public function testPatchActionWithNonGlobalActivity(): void
@@ -356,16 +356,16 @@ class ActivityControllerTest extends APIControllerBaseTest
'timeBudget' => '7200',
];
$this->request($client, '/api/activities/' . $imports[2]->getId(), 'PATCH', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ActivityEntity', $result);
$this->assertNotEmpty($result['id']);
$this->assertEquals($imports[1]->getId(), $result['project']);
self::assertNotEmpty($result['id']);
self::assertEquals($imports[1]->getId(), $result['project']);
}
public function testPatchActionWithInvalidUser(): void
@@ -398,7 +398,7 @@ class ActivityControllerTest extends APIControllerBaseTest
$this->request($client, '/api/activities/1', 'PATCH', [], json_encode($data));
$response = $client->getResponse();
$this->assertEquals(400, $response->getStatusCode());
self::assertEquals(400, $response->getStatusCode());
$this->assertApiCallValidationError($response, ['name']);
}
@@ -444,12 +444,12 @@ class ActivityControllerTest extends APIControllerBaseTest
];
$this->request($client, '/api/activities/1/meta', 'PATCH', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$em = $this->getEntityManager();
/** @var Activity $activity */
$activity = $em->getRepository(Activity::class)->find(1);
$this->assertEquals('another,testing,bar', $activity->getMetaField('metatestmock')->getValue());
self::assertEquals('another,testing,bar', $activity->getMetaField('metatestmock')->getValue());
}
// ------------------------------- [DELETE] -------------------------------
@@ -499,9 +499,9 @@ class ActivityControllerTest extends APIControllerBaseTest
$id = $result['id'];
$this->request($client, '/api/activities/' . $id, Request::METHOD_DELETE);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
self::assertEquals(Response::HTTP_NO_CONTENT, $client->getResponse()->getStatusCode());
$this->assertEmpty($client->getResponse()->getContent());
self::assertEmpty($client->getResponse()->getContent());
$this->request($client, $getUrl);
$this->assertApiException($client->getResponse(), [

View File

@@ -10,12 +10,12 @@
namespace App\Tests\API;
use App\Entity\User;
use App\Tests\Controller\ControllerBaseTest;
use App\Tests\Controller\AbstractControllerBaseTestCase;
/**
* @group integration
*/
class ApiDocControllerTest extends ControllerBaseTest
class ApiDocControllerTest extends AbstractControllerBaseTestCase
{
public function testIsSecure(): void
{
@@ -26,7 +26,7 @@ class ApiDocControllerTest extends ControllerBaseTest
{
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
$this->assertAccessIsGranted($client, '/api/doc');
$this->assertStringContainsString('<title>Kimai', $client->getResponse()->getContent());
self::assertStringContainsString('<title>Kimai', $client->getResponse()->getContent());
$result = $client->getCrawler()->filter('script#swagger-data');
$swaggerJson = json_decode($result->text(), true);
$tags = [];
@@ -104,25 +104,25 @@ class ApiDocControllerTest extends ControllerBaseTest
'/api/users/api-token/{id}',
];
$this->assertArrayHasKey('openapi', $json);
$this->assertEquals('3.0.0', $json['openapi']);
$this->assertArrayHasKey('info', $json);
$this->assertStringStartsWith('Kimai', $json['info']['title']);
$this->assertEquals('1.0', $json['info']['version']);
self::assertArrayHasKey('openapi', $json);
self::assertEquals('3.0.0', $json['openapi']);
self::assertArrayHasKey('info', $json);
self::assertStringStartsWith('Kimai', $json['info']['title']);
self::assertEquals('1.0', $json['info']['version']);
$this->assertArrayHasKey('paths', $json);
$this->assertEquals($paths, array_keys($json['paths']));
self::assertArrayHasKey('paths', $json);
self::assertEquals($paths, array_keys($json['paths']));
$this->assertArrayHasKey('security', $json);
$this->assertEquals(['bearer' => []], $json['security'][0]);
self::assertArrayHasKey('security', $json);
self::assertEquals(['bearer' => []], $json['security'][0]);
$this->assertArrayHasKey('components', $json);
$this->assertArrayHasKey('schemas', $json['components']);
$this->assertArrayHasKey('securitySchemes', $json['components']);
self::assertArrayHasKey('components', $json);
self::assertArrayHasKey('schemas', $json['components']);
self::assertArrayHasKey('securitySchemes', $json['components']);
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
self::assertIsArray($result);
self::assertNotEmpty($result);
}
protected function createUrl(string $url): string

View File

@@ -55,11 +55,11 @@ class AccessTokenHandlerTest extends TestCase
$user = new User();
$user->setUserIdentifier('foo-bar');
$accessToken = new AccessToken($user, 'Test');
$this->assertNull($accessToken->getLastUsage());
self::assertNull($accessToken->getLastUsage());
$sut = $this->getSut($accessToken);
$badge = $sut->getUserBadgeFrom('foo');
$this->assertNotNull($accessToken->getLastUsage());
$this->assertSame('foo-bar', $badge->getUserIdentifier());
self::assertNotNull($accessToken->getLastUsage());
self::assertSame('foo-bar', $badge->getUserIdentifier());
}
}

View File

@@ -19,7 +19,7 @@ use Symfony\Component\HttpFoundation\Response;
* @group legacy
* @group integration
*/
class AuthenticationTest extends APIControllerBaseTest
class AuthenticationTest extends APIControllerBaseTestCase
{
public function testPinIsSecure(): void
{
@@ -31,11 +31,11 @@ class AuthenticationTest extends APIControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
$this->assertAccessIsGranted($client, '/api/ping');
$response = $client->getResponse()->getContent();
$this->assertIsString($response);
self::assertIsString($response);
$result = json_decode($response, true);
$this->assertIsArray($result);
$this->assertEquals(['message' => 'pong'], $result);
self::assertIsArray($result);
self::assertEquals(['message' => 'pong'], $result);
}
public function testPingWithAuthTokenAndUsername(): void
@@ -44,11 +44,11 @@ class AuthenticationTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/ping');
$response = $client->getResponse()->getContent();
$this->assertIsString($response);
self::assertIsString($response);
$result = json_decode($response, true);
$this->assertIsArray($result);
$this->assertEquals(['message' => 'pong'], $result);
self::assertIsArray($result);
self::assertEquals(['message' => 'pong'], $result);
}
public function testPingWithInvalidAuthTokenAndUsername(): void
@@ -64,15 +64,15 @@ class AuthenticationTest extends APIControllerBaseTest
'message' => 'Invalid credentials',
];
$this->assertIsString($response->getContent());
self::assertIsString($response->getContent());
$this->assertEquals(
self::assertEquals(
$data,
json_decode($response->getContent(), true),
\sprintf('The secure URL %s is not protected.', $url)
);
$this->assertEquals(
self::assertEquals(
Response::HTTP_FORBIDDEN,
$response->getStatusCode(),
\sprintf('The secure URL %s has the wrong status code %s.', $url, $response->getStatusCode())

View File

@@ -14,7 +14,7 @@ use App\Entity\User;
/**
* @group integration
*/
class ConfigurationControllerTest extends APIControllerBaseTest
class ConfigurationControllerTest extends APIControllerBaseTestCase
{
public function testIsTimesheetSecure(): void
{
@@ -26,18 +26,18 @@ class ConfigurationControllerTest extends APIControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
$this->assertAccessIsGranted($client, '/api/config/timesheet', 'GET');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
self::assertIsArray($result);
self::assertNotEmpty($result);
$expectedKeys = ['activeEntriesHardLimit', 'defaultBeginTime', 'isAllowFutureTimes', 'isAllowOverlapping', 'trackingMode'];
$this->assertCount(\count($expectedKeys), $result);
self::assertCount(\count($expectedKeys), $result);
$actual = array_keys($result);
sort($actual);
sort($expectedKeys);
$this->assertEquals($expectedKeys, $actual, 'Config structure does not match');
self::assertEquals($expectedKeys, $actual, 'Config structure does not match');
}
public function testIsColorsSecure(): void
@@ -50,11 +50,11 @@ class ConfigurationControllerTest extends APIControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
$this->assertAccessIsGranted($client, '/api/config/colors', 'GET');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$actual = json_decode($content, true);
$this->assertIsArray($actual);
$this->assertNotEmpty($actual);
self::assertIsArray($actual);
self::assertNotEmpty($actual);
$expected = [
'Silver' => '#c0c0c0',
'Gray' => '#808080',
@@ -84,8 +84,8 @@ class ConfigurationControllerTest extends APIControllerBaseTest
'Rose' => '#ffe4e1',
'Lavender' => '#E6E6FA',
];
$this->assertCount(\count($expected), $actual);
self::assertCount(\count($expected), $actual);
$this->assertEquals($expected, $actual, 'Color structure does not match');
self::assertEquals($expected, $actual, 'Color structure does not match');
}
}

View File

@@ -28,7 +28,7 @@ use Symfony\Component\HttpFoundation\Response;
/**
* @group integration
*/
class CustomerControllerTest extends APIControllerBaseTest
class CustomerControllerTest extends APIControllerBaseTestCase
{
use RateControllerTestTrait;
@@ -140,12 +140,12 @@ class CustomerControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/customers');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(1, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(1, \count($result));
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('CustomerCollection', $result[0]);
}
@@ -157,12 +157,12 @@ class CustomerControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/customers', 'GET', $query);
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(1, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(1, \count($result));
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('CustomerCollection', $result[0]);
}
@@ -178,10 +178,10 @@ class CustomerControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/customers/1');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('CustomerEntity', $result);
}
@@ -225,10 +225,10 @@ class CustomerControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/customers/1');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('CustomerEntity', $result);
}
@@ -250,15 +250,15 @@ class CustomerControllerTest extends APIControllerBaseTest
'timeBudget' => '7200',
];
$this->request($client, '/api/customers', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('CustomerEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
}
public function testPostActionWithLeastFields(): void
@@ -271,15 +271,15 @@ class CustomerControllerTest extends APIControllerBaseTest
'timezone' => 'Europe/Berlin',
];
$this->request($client, '/api/customers', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('CustomerEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
}
public function testPostActionWithInvalidUser(): void
@@ -327,15 +327,15 @@ class CustomerControllerTest extends APIControllerBaseTest
'timeBudget' => '7200',
];
$this->request($client, '/api/customers/1', 'PATCH', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('CustomerEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
}
public function testPatchActionWithInvalidUser(): void
@@ -373,7 +373,7 @@ class CustomerControllerTest extends APIControllerBaseTest
$this->request($client, '/api/customers/1', 'PATCH', [], json_encode($data));
$response = $client->getResponse();
$this->assertEquals(400, $response->getStatusCode());
self::assertEquals(400, $response->getStatusCode());
$this->assertApiCallValidationError($response, ['currency']);
}
@@ -426,12 +426,12 @@ class CustomerControllerTest extends APIControllerBaseTest
];
$this->request($client, '/api/customers/1/meta', 'PATCH', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$em = $this->getEntityManager();
/** @var Customer $customer */
$customer = $em->getRepository(Customer::class)->find(1);
$this->assertEquals('another,testing,bar', $customer->getMetaField('metatestmock')->getValue());
self::assertEquals('another,testing,bar', $customer->getMetaField('metatestmock')->getValue());
}
// ------------------------------- [DELETE] -------------------------------
@@ -481,9 +481,9 @@ class CustomerControllerTest extends APIControllerBaseTest
$id = $result['id'];
$this->request($client, '/api/customers/' . $id, Request::METHOD_DELETE);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
self::assertEquals(Response::HTTP_NO_CONTENT, $client->getResponse()->getStatusCode());
$this->assertEmpty($client->getResponse()->getContent());
self::assertEmpty($client->getResponse()->getContent());
$this->request($client, $getUrl);
$this->assertApiException($client->getResponse(), [

View File

@@ -16,7 +16,7 @@ use App\Tests\DataFixtures\InvoiceFixtures;
/**
* @group integration
*/
class InvoiceControllerTest extends APIControllerBaseTest
class InvoiceControllerTest extends APIControllerBaseTestCase
{
/**
* @return Invoice[]
@@ -45,12 +45,12 @@ class InvoiceControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/invoices');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(10, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(10, \count($result));
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('InvoiceCollection', $result[0]);
}
@@ -67,12 +67,12 @@ class InvoiceControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/invoices', 'GET', $query);
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(7, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(7, \count($result));
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('InvoiceCollection', $result[0]);
}
@@ -86,12 +86,12 @@ class InvoiceControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/invoices', 'GET', $query);
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(4, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(4, \count($result));
$this->assertPagination($client->getResponse(), 2, 4, 5, 20);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('InvoiceCollection', $result[0]);
@@ -113,10 +113,10 @@ class InvoiceControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/invoices/' . $invoices[0]->getId());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('Invoice', $result);
}

View File

@@ -28,7 +28,7 @@ use Symfony\Component\HttpFoundation\Response;
/**
* @group integration
*/
class ProjectControllerTest extends APIControllerBaseTest
class ProjectControllerTest extends APIControllerBaseTestCase
{
use RateControllerTestTrait;
@@ -101,12 +101,12 @@ class ProjectControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/projects');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(1, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(1, \count($result));
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('ProjectCollection', $result[0]);
}
@@ -224,18 +224,18 @@ class ProjectControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, $url, 'GET', $parameters);
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertEquals(\count($expected), \count($result), 'Found wrong amount of projects');
self::assertIsArray($result);
self::assertEquals(\count($expected), \count($result), 'Found wrong amount of projects');
for ($i = 0; $i < \count($expected); $i++) {
$project = $result[$i];
self::assertIsArray($project);
self::assertApiResponseTypeStructure('ProjectCollection', $project);
if ($customerId !== null) {
$this->assertEquals($customerId, $project['customer']);
self::assertEquals($customerId, $project['customer']);
}
}
}
@@ -243,7 +243,7 @@ class ProjectControllerTest extends APIControllerBaseTest
/**
* @return \Generator<array<mixed>>
*/
public function getCollectionTestData(): iterable
public static function getCollectionTestData(): iterable
{
// if you wonder why: case-sensitive ordering feels strange ... "Title" > "fifth”
yield ['/api/projects', null, [], [[true, 1], [false, 1], [false, 3]]];
@@ -273,10 +273,10 @@ class ProjectControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/projects/1');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ProjectEntity', $result);
}
@@ -308,10 +308,10 @@ class ProjectControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/projects/' . $project->getId());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ProjectEntity', $result);
$expected = [
@@ -357,15 +357,15 @@ class ProjectControllerTest extends APIControllerBaseTest
'orderNumber' => '1234567890/WXYZ/SUBPROJECT/1234/CONTRACT/EMPLOYEE1',
];
$this->request($client, '/api/projects', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ProjectEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
self::assertEquals('2018-04-17', $result['orderDate']);
self::assertEquals('2019-02-01', $result['start']);
self::assertEquals('2020-02-08', $result['end']);
@@ -386,15 +386,15 @@ class ProjectControllerTest extends APIControllerBaseTest
'visible' => '',
];
$this->request($client, '/api/projects', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ProjectEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
self::assertEquals('foo', $result['name']);
self::assertTrue($result['globalActivities']);
self::assertTrue($result['billable']);
@@ -412,15 +412,15 @@ class ProjectControllerTest extends APIControllerBaseTest
'visible' => false,
];
$this->request($client, '/api/projects', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ProjectEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
self::assertEquals('foo', $result['name']);
self::assertFalse($result['globalActivities']);
self::assertFalse($result['billable']);
@@ -438,15 +438,15 @@ class ProjectControllerTest extends APIControllerBaseTest
'visible' => true,
];
$this->request($client, '/api/projects', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ProjectEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
self::assertEquals('foo', $result['name']);
self::assertTrue($result['globalActivities']);
self::assertTrue($result['billable']);
@@ -461,15 +461,15 @@ class ProjectControllerTest extends APIControllerBaseTest
'customer' => 1
];
$this->request($client, '/api/projects', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ProjectEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
self::assertEquals('foo', $result['name']);
self::assertFalse($result['globalActivities']);
self::assertFalse($result['billable']);
@@ -515,15 +515,15 @@ class ProjectControllerTest extends APIControllerBaseTest
'timeBudget' => '7200',
];
$this->request($client, '/api/projects/1', 'PATCH', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('ProjectEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
}
public function testPatchActionWithInvalidUser(): void
@@ -557,7 +557,7 @@ class ProjectControllerTest extends APIControllerBaseTest
$this->request($client, '/api/projects/1', 'PATCH', [], json_encode($data));
$response = $client->getResponse();
$this->assertEquals(400, $response->getStatusCode());
self::assertEquals(400, $response->getStatusCode());
$this->assertApiCallValidationError($response, ['customer']);
}
@@ -603,12 +603,12 @@ class ProjectControllerTest extends APIControllerBaseTest
];
$this->request($client, '/api/projects/1/meta', 'PATCH', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$em = $this->getEntityManager();
/** @var Project $project */
$project = $em->getRepository(Project::class)->find(1);
$this->assertEquals('another,testing,bar', $project->getMetaField('metatestmock')->getValue());
self::assertEquals('another,testing,bar', $project->getMetaField('metatestmock')->getValue());
}
// ------------------------------- [DELETE] -------------------------------
@@ -658,9 +658,9 @@ class ProjectControllerTest extends APIControllerBaseTest
$id = $result['id'];
$this->request($client, '/api/projects/' . $id, Request::METHOD_DELETE);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
self::assertEquals(Response::HTTP_NO_CONTENT, $client->getResponse()->getStatusCode());
$this->assertEmpty($client->getResponse()->getContent());
self::assertEmpty($client->getResponse()->getContent());
$this->request($client, $getUrl);
$this->assertApiException($client->getResponse(), [

View File

@@ -53,7 +53,7 @@ trait RateControllerTestTrait
$this->request($client, $this->getRateUrl(), 'POST', [], json_encode($data));
$response = $client->getResponse();
$this->assertEquals(400, $response->getStatusCode());
self::assertEquals(400, $response->getStatusCode());
$this->assertApiCallValidationError($response, ['user']);
}
@@ -81,18 +81,18 @@ trait RateControllerTestTrait
'is_fixed' => false
];
$this->request($client, $this->getRateUrl(), 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
$this->assertRateStructure($result, null);
$this->assertNotEmpty($result['id']);
$this->assertEquals(12.34, $result['rate']);
$this->assertEquals(6.66, $result['internalRate']);
$this->assertFalse($result['isFixed']);
self::assertNotEmpty($result['id']);
self::assertEquals(12.34, $result['rate']);
self::assertEquals(6.66, $result['internalRate']);
self::assertFalse($result['isFixed']);
}
public function testAddFixedRateAction(): void
@@ -105,32 +105,32 @@ trait RateControllerTestTrait
'is_fixed' => true
];
$this->request($client, $this->getRateUrl(), 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
$this->assertRateStructure($result, 1);
$this->assertNotEmpty($result['id']);
$this->assertEquals(12.34, $result['rate']);
$this->assertEquals(6.66, $result['internalRate']);
$this->assertTrue($result['isFixed']);
self::assertNotEmpty($result['id']);
self::assertEquals(12.34, $result['rate']);
self::assertEquals(6.66, $result['internalRate']);
self::assertTrue($result['isFixed']);
}
public function testGetRatesEmptyResult(): void
{
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
$this->request($client, $this->getRateUrl(1));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertEmpty($result);
self::assertIsArray($result);
self::assertEmpty($result);
}
public function testGetRates(): void
@@ -139,22 +139,22 @@ trait RateControllerTestTrait
$expectedRates = $this->importTestRates(1);
$this->request($client, $this->getRateUrl(1));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(\count($expectedRates), \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(\count($expectedRates), \count($result));
foreach ($result as $rate) {
$this->assertIsArray($rate);
self::assertIsArray($rate);
if ($rate['user'] === null) {
$this->assertRateStructure($rate);
} else {
$this->assertIsArray($rate['user']);
self::assertIsArray($rate['user']);
$this->assertRateStructure($rate, $rate['user']['id']);
}
}
@@ -176,19 +176,19 @@ trait RateControllerTestTrait
$expectedRates = $this->importTestRates(1);
$this->request($client, $this->getRateUrlByRate($expectedRates[0], false), 'DELETE');
$this->assertTrue($client->getResponse()->isSuccessful());
$this->assertEmpty($client->getResponse()->getContent());
self::assertTrue($client->getResponse()->isSuccessful());
self::assertEmpty($client->getResponse()->getContent());
// fetch rates to validate that one was removed
$this->request($client, $this->getRateUrlByRate($expectedRates[0], true));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertEquals(\count($expectedRates) - 1, \count($result));
self::assertIsArray($result);
self::assertEquals(\count($expectedRates) - 1, \count($result));
}
public function testDeleteRateEntityNotFound(): void
@@ -234,7 +234,7 @@ trait RateControllerTestTrait
sort($actual);
sort($expectedKeys);
$this->assertEquals($expectedKeys, $actual, 'Rate structure does not match');
self::assertEquals($expectedKeys, $actual, 'Rate structure does not match');
if (null !== $user) {
self::assertIsArray($result['user'], 'Rate user is not an array');

View File

@@ -15,7 +15,7 @@ use App\Entity\User;
/**
* @group integration
*/
class StatusControllerTest extends APIControllerBaseTest
class StatusControllerTest extends APIControllerBaseTestCase
{
public function testIsSecurePing(): void
{
@@ -38,8 +38,8 @@ class StatusControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/ping');
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertEquals(['message' => 'pong'], $result);
self::assertIsArray($result);
self::assertEquals(['message' => 'pong'], $result);
}
public function testVersion(): void
@@ -48,15 +48,15 @@ class StatusControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/version');
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
$this->assertArrayHasKey('version', $result);
$this->assertArrayHasKey('versionId', $result);
$this->assertArrayHasKey('copyright', $result);
self::assertArrayHasKey('version', $result);
self::assertArrayHasKey('versionId', $result);
self::assertArrayHasKey('copyright', $result);
$this->assertSame(Constants::VERSION, $result['version']);
$this->assertSame(Constants::VERSION_ID, $result['versionId']);
$this->assertEquals(
self::assertSame(Constants::VERSION, $result['version']);
self::assertSame(Constants::VERSION_ID, $result['versionId']);
self::assertEquals(
'Kimai ' . Constants::VERSION . ' by Kevin Papst.',
$result['copyright']
);
@@ -68,7 +68,7 @@ class StatusControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/plugins');
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
// no asserts, as plugins are disabled in tests
}
}

View File

@@ -17,7 +17,7 @@ use Symfony\Component\HttpFoundation\Response;
/**
* @group integration
*/
class TagControllerTest extends APIControllerBaseTest
class TagControllerTest extends APIControllerBaseTestCase
{
/**
* @return Tag[]
@@ -45,13 +45,13 @@ class TagControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/tags');
$content = $client->getResponse()->getContent();
$this->assertNotFalse($content);
self::assertNotFalse($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(10, \count($result));
$this->assertEquals('Test', $result[9]);
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(10, \count($result));
self::assertEquals('Test', $result[9]);
}
public function testFindCollection(): void
@@ -60,12 +60,12 @@ class TagControllerTest extends APIControllerBaseTest
$this->importTagFixtures();
$this->assertAccessIsGranted($client, '/api/tags/find', 'GET', ['name' => '2018']);
$content = $client->getResponse()->getContent();
$this->assertNotFalse($content);
self::assertNotFalse($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(3, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(3, \count($result));
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TagEntity', $result[0]);
}
@@ -78,12 +78,12 @@ class TagControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/tags', 'GET', $query);
$content = $client->getResponse()->getContent();
$this->assertNotFalse($content);
self::assertNotFalse($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertEmpty($result);
$this->assertEquals(0, \count($result));
self::assertIsArray($result);
self::assertEmpty($result);
self::assertEquals(0, \count($result));
}
public function testPostAction(): void
@@ -95,15 +95,15 @@ class TagControllerTest extends APIControllerBaseTest
'color' => '#00ff00'
];
$this->request($client, '/api/tags', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertNotFalse($content);
self::assertNotFalse($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TagEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
self::assertEquals('#00ff00', $result['color']);
}
@@ -117,7 +117,7 @@ class TagControllerTest extends APIControllerBaseTest
];
$this->request($client, '/api/tags', 'POST', [], json_encode($data));
$response = $client->getResponse();
$this->assertEquals(400, $response->getStatusCode());
self::assertEquals(400, $response->getStatusCode());
$this->assertApiCallValidationError($response, ['name', 'color']);
}
@@ -129,15 +129,15 @@ class TagControllerTest extends APIControllerBaseTest
'name' => 'foo',
];
$this->request($client, '/api/tags', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertNotFalse($content);
self::assertNotFalse($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TagEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
self::assertEquals('foo', $result['name']);
}
@@ -149,16 +149,16 @@ class TagControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/tags', 'GET', $query);
$content = $client->getResponse()->getContent();
$this->assertNotFalse($content);
self::assertNotFalse($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(3, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(3, \count($result));
$this->assertEquals('Administration', $result[0]);
$this->assertEquals('Bug Fixing', $result[1]);
$this->assertEquals('Marketing', $result[2]);
self::assertEquals('Administration', $result[0]);
self::assertEquals('Bug Fixing', $result[1]);
self::assertEquals('Marketing', $result[2]);
}
public function testDeleteAction(): void
@@ -168,17 +168,17 @@ class TagControllerTest extends APIControllerBaseTest
$id = $tags[0]->getId();
$this->request($client, '/api/tags/' . $id, 'DELETE');
$this->assertTrue($client->getResponse()->isSuccessful());
$this->assertEquals(Response::HTTP_NO_CONTENT, $client->getResponse()->getStatusCode());
$this->assertEmpty($client->getResponse()->getContent());
self::assertTrue($client->getResponse()->isSuccessful());
self::assertEquals(Response::HTTP_NO_CONTENT, $client->getResponse()->getStatusCode());
self::assertEmpty($client->getResponse()->getContent());
$this->assertAccessIsGranted($client, '/api/tags');
$content = $client->getResponse()->getContent();
$this->assertNotFalse($content);
self::assertNotFalse($content);
$result = json_decode($content, true);
$this->assertEquals(9, \count($result));
self::assertEquals(9, \count($result));
}
public function testDeleteActionWithUnknownTimesheet(): void

View File

@@ -18,7 +18,7 @@ use Symfony\Component\HttpFoundation\Response;
/**
* @group integration
*/
class TeamControllerTest extends APIControllerBaseTest
class TeamControllerTest extends APIControllerBaseTestCase
{
/**
* @return Team[]
@@ -39,7 +39,7 @@ class TeamControllerTest extends APIControllerBaseTest
/**
* @return array<int, array<int, string>>
*/
public function getRoleTestData(): array
public static function getRoleTestData(): array
{
return [
[User::ROLE_USER],
@@ -62,8 +62,8 @@ class TeamControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/teams');
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(2, \count($result));
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TeamCollection', $result[0]);
@@ -78,7 +78,7 @@ class TeamControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/teams/' . $id);
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
}
@@ -103,12 +103,12 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
}
public function testPostActionWithInvalidUser(): void
@@ -135,7 +135,7 @@ class TeamControllerTest extends APIControllerBaseTest
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$response = $client->getResponse();
$this->assertEquals(400, $response->getStatusCode());
self::assertEquals(400, $response->getStatusCode());
$this->assertApiCallValidationError($response, ['name', 'members.0.user']);
}
@@ -151,11 +151,11 @@ class TeamControllerTest extends APIControllerBaseTest
]
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
$updateId = $result['id'];
$this->assertIsNumeric($updateId);
self::assertIsNumeric($updateId);
$data = [
'name' => 'foo',
@@ -167,24 +167,24 @@ class TeamControllerTest extends APIControllerBaseTest
];
$this->request($client, '/api/teams/' . $updateId, 'PATCH', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
self::assertCount(3, $result['members']);
$this->assertIsNumeric($updateId);
self::assertIsNumeric($updateId);
$this->request($client, '/api/teams/' . $updateId);
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
$this->assertIsArray($result['members']);
self::assertIsArray($result['members']);
self::assertCount(3, $result['members']);
$this->assertIsArray($result['members'][1]);
self::assertIsArray($result['members'][1]);
self::assertFalse($result['members'][1]['teamlead']);
self::assertEquals(1, $result['members'][1]['user']['id']);
self::assertEquals('clara_customer', $result['members'][1]['user']['username']);
@@ -208,10 +208,10 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
$data = [
'name' => '1',
@@ -222,7 +222,7 @@ class TeamControllerTest extends APIControllerBaseTest
$this->request($client, '/api/teams/' . $result['id'], 'PATCH', [], json_encode($data));
$response = $client->getResponse();
$this->assertEquals(400, $response->getStatusCode());
self::assertEquals(400, $response->getStatusCode());
$this->assertApiCallValidationError($response, ['name', 'members.0.user']);
}
@@ -234,16 +234,16 @@ class TeamControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/teams/' . $id);
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
$id = $result['id'];
$this->assertIsNumeric($id);
self::assertIsNumeric($id);
$this->request($client, '/api/teams/' . $id, 'DELETE');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
self::assertEquals(Response::HTTP_NO_CONTENT, $client->getResponse()->getStatusCode());
$this->assertEmpty($client->getResponse()->getContent());
self::assertEmpty($client->getResponse()->getContent());
}
public function testPostMemberAction(): void
@@ -256,20 +256,20 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsArray($result['members']);
self::assertIsArray($result);
self::assertIsArray($result['members']);
self::assertCount(1, $result['members']);
$this->assertIsNumeric($result['id']);
self::assertIsNumeric($result['id']);
$this->request($client, '/api/teams/' . $result['id'] . '/members/2', 'POST');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
$this->assertIsArray($result['members']);
self::assertIsArray($result['members']);
self::assertCount(2, $result['members']);
}
@@ -284,10 +284,10 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
// team not found
$this->assertEntityNotFoundForPost($client, '/api/teams/999/members/999');
@@ -297,7 +297,7 @@ class TeamControllerTest extends APIControllerBaseTest
// add user
$this->request($client, '/api/teams/' . $result['id'] . '/members/5', 'POST');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
// cannot add existing member
$this->assertBadRequest($client, '/api/teams/' . $result['id'] . '/members/5', 'POST');
@@ -316,20 +316,20 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
$this->assertIsArray($result['members']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
self::assertIsArray($result['members']);
self::assertCount(4, $result['members']);
$this->request($client, '/api/teams/' . $result['id'] . '/members/2', 'DELETE');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
$this->assertIsArray($result['members']);
self::assertIsArray($result['members']);
self::assertCount(3, $result['members']);
}
@@ -346,10 +346,10 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
// team not found
$this->assertNotFoundForDelete($client, '/api/teams/999/members/999');
@@ -359,7 +359,7 @@ class TeamControllerTest extends APIControllerBaseTest
// remove user
$this->request($client, '/api/teams/' . $result['id'] . '/members/2', 'DELETE');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
// cannot remove non-member
$this->assertBadRequest($client, '/api/teams/' . $result['id'] . '/members/2', 'DELETE');
@@ -378,21 +378,21 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
self::assertCount(0, $result['customers']);
$this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'POST');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
$this->assertIsArray($result['customers']);
self::assertIsArray($result['customers']);
self::assertCount(1, $result['customers']);
$this->assertIsArray($result['customers'][0]);
self::assertIsArray($result['customers'][0]);
self::assertEquals(1, $result['customers'][0]['id']);
}
@@ -407,10 +407,10 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
// team not found
$this->assertEntityNotFoundForPost($client, '/api/teams/999/customers/999');
@@ -420,10 +420,10 @@ class TeamControllerTest extends APIControllerBaseTest
// add customer
$this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'POST');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
self::assertCount(1, $result['customers']);
// cannot add existing customer
@@ -443,29 +443,29 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
self::assertCount(0, $result['customers']);
// add customer
$this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'POST');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
self::assertCount(1, $result['customers']);
$this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'DELETE');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
$this->assertIsArray($result['customers']);
self::assertIsArray($result['customers']);
self::assertCount(0, $result['customers']);
/** @var EntityManager $em */
@@ -488,10 +488,10 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
// team not found
$this->assertNotFoundForDelete($client, '/api/teams/999/customers/999');
@@ -513,20 +513,20 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
self::assertCount(0, $result['projects']);
$this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'POST');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
$this->assertIsArray($result['projects']);
self::assertIsArray($result['projects']);
self::assertCount(1, $result['projects']);
$this->assertIsArray($result['projects'][0]);
self::assertIsArray($result['projects'][0]);
self::assertEquals(1, $result['projects'][0]['id']);
}
@@ -541,10 +541,10 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
// team not found
$this->assertEntityNotFoundForPost($client, '/api/teams/999/projects/999');
@@ -556,10 +556,10 @@ class TeamControllerTest extends APIControllerBaseTest
// add project
$this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'POST');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
self::assertCount(1, $result['projects']);
// cannot add existing project
@@ -579,27 +579,27 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
self::assertCount(0, $result['projects']);
// add project
$this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'POST');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsArray($result['projects']);
self::assertIsArray($result);
self::assertIsArray($result['projects']);
self::assertCount(1, $result['projects']);
$this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'DELETE');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
$this->assertIsArray($result['projects']);
self::assertIsArray($result['projects']);
self::assertCount(0, $result['projects']);
/** @var EntityManager $em */
@@ -622,10 +622,10 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
// team not found
$this->assertNotFoundForDelete($client, '/api/teams/999/projects/999');
@@ -647,20 +647,20 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
self::assertCount(0, $result['activities']);
$this->request($client, '/api/teams/' . $result['id'] . '/activities/1', 'POST');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
$this->assertIsArray($result['activities']);
self::assertIsArray($result['activities']);
self::assertCount(1, $result['activities']);
$this->assertIsArray($result['activities'][0]);
self::assertIsArray($result['activities'][0]);
self::assertEquals(1, $result['activities'][0]['id']);
}
@@ -675,10 +675,10 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
// team not found
$this->assertEntityNotFoundForPost($client, '/api/teams/999/activities/999');
@@ -688,10 +688,10 @@ class TeamControllerTest extends APIControllerBaseTest
// add activity
$this->request($client, '/api/teams/' . $result['id'] . '/activities/1', 'POST');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
self::assertCount(1, $result['activities']);
// cannot add existing activity
@@ -711,27 +711,27 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsArray($result['activities']);
self::assertIsArray($result);
self::assertIsArray($result['activities']);
self::assertCount(0, $result['activities']);
// add activity
$this->request($client, '/api/teams/' . $result['id'] . '/activities/1', 'POST');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
self::assertCount(1, $result['activities']);
$this->request($client, '/api/teams/' . $result['id'] . '/activities/1', 'DELETE');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TeamEntity', $result);
$this->assertIsArray($result['activities']);
self::assertIsArray($result['activities']);
self::assertCount(0, $result['activities']);
}
@@ -748,10 +748,10 @@ class TeamControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$result = json_decode($client->getResponse()->getContent(), true);
$this->assertIsArray($result);
$this->assertIsNumeric($result['id']);
self::assertIsArray($result);
self::assertIsNumeric($result['id']);
// team not found
$this->assertNotFoundForDelete($client, '/api/teams/999/activities/9999');

View File

@@ -26,7 +26,7 @@ use Symfony\Component\HttpFoundation\Response;
/**
* @group integration
*/
class TimesheetControllerTest extends APIControllerBaseTest
class TimesheetControllerTest extends APIControllerBaseTestCase
{
public const DATE_FORMAT = 'Y-m-d H:i:s';
public const DATE_FORMAT_HTML5 = 'Y-m-d\TH:i:s';
@@ -64,7 +64,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(10, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
}
@@ -81,7 +81,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(10, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollectionFull', $result[0]);
}
@@ -106,7 +106,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(10, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
$query = ['users' => [2]];
@@ -119,7 +119,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(10, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
}
@@ -167,7 +167,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(10, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
}
@@ -192,7 +192,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(17, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
}
@@ -207,7 +207,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$result = json_decode($content, true);
self::assertIsArray($result);
$this->assertEmpty($result);
self::assertEmpty($result);
}
public function testGetCollectionWithQuery(): void
@@ -244,7 +244,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(4, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
}
@@ -297,7 +297,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(5, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
}
@@ -333,7 +333,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(7, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
$query = [
@@ -352,7 +352,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(10, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
$query = [
@@ -369,7 +369,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(17, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
}
@@ -440,7 +440,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
$this->importFixtureForUser(User::ROLE_USER);
$timesheets = $this->importFixtureForUser(User::ROLE_ADMIN);
$this->assertCount(10, $timesheets);
self::assertCount(10, $timesheets);
$this->assertApiAccessDenied($client, '/api/timesheets/' . $timesheets[0]->getId(), 'Access denied.');
}
@@ -480,7 +480,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$json = json_encode($data);
self::assertIsString($json);
$this->request($client, '/api/timesheets', 'POST', [], $json);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
@@ -489,9 +489,9 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
self::assertNotEmpty($result['id']);
$this->assertTrue($result['duration'] == 28800 || $result['duration'] == 28860); // 1 minute rounding might be applied
self::assertTrue($result['duration'] == 28800 || $result['duration'] == 28860); // 1 minute rounding might be applied
self::assertEquals(2016, $result['rate']);
$this->assertFalse($result['billable']);
self::assertFalse($result['billable']);
}
public function testPostActionWithFullExpandedResponse(): void
@@ -511,7 +511,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$json = json_encode($data);
self::assertIsString($json);
$this->request($client, '/api/timesheets?full=true', 'POST', [], $json);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
@@ -520,9 +520,9 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TimesheetExpanded', $result);
self::assertNotEmpty($result['id']);
$this->assertTrue($result['duration'] == 28800 || $result['duration'] == 28860); // 1 minute rounding might be applied
self::assertTrue($result['duration'] == 28800 || $result['duration'] == 28860); // 1 minute rounding might be applied
self::assertEquals(2016, $result['rate']);
$this->assertTrue($result['billable']);
self::assertTrue($result['billable']);
}
public function testPostActionForDifferentUser(): void
@@ -545,7 +545,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$json = json_encode($data);
self::assertIsString($json);
$this->request($client, '/api/timesheets', 'POST', [], $json);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
@@ -556,7 +556,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertNotEmpty($result['id']);
self::assertEquals($user->getId(), $result['user']);
$this->assertNotEquals($admin->getId(), $result['user']);
$this->assertTrue($result['billable']);
self::assertTrue($result['billable']);
}
// check for project, as this is a required field. It will not be included in the select, as it is
@@ -711,7 +711,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$json = json_encode($data);
self::assertIsString($json);
$this->request($client, '/api/timesheets', 'POST', [], $json);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
@@ -719,7 +719,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
$this->assertFalse($result['billable']);
self::assertFalse($result['billable']);
}
public function testPostActionWithNonBillableCustomerExplicit(): void
@@ -752,7 +752,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$json = json_encode($data);
self::assertIsString($json);
$this->request($client, '/api/timesheets', 'POST', [], $json);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
@@ -761,10 +761,10 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
// explicit overwritten values win!
$this->assertTrue($result['billable']);
self::assertTrue($result['billable']);
}
public function getTrackingModeTestData(): array
public static function getTrackingModeTestData(): array
{
return [
['duration_fixed_begin', User::ROLE_USER, false],
@@ -800,7 +800,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$response = $client->getResponse();
if ($showTimes) {
$this->assertTrue($response->isSuccessful());
self::assertTrue($response->isSuccessful());
} else {
$this->assertApiCallValidationError($response, [], true, [], [], ['begin', 'end']);
}
@@ -822,7 +822,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$json = json_encode($data);
self::assertIsString($json);
$this->request($client, '/api/timesheets/' . $timesheets[0]->getId(), 'PATCH', [], $json);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
@@ -833,7 +833,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertNotEmpty($result['id']);
self::assertEquals(25200, $result['duration']);
self::assertEquals('foo', $result['description']);
$this->assertFalse($result['billable']);
self::assertFalse($result['billable']);
}
public function testPatchActionWithInvalidUser(): void
@@ -912,9 +912,9 @@ class TimesheetControllerTest extends APIControllerBaseTest
$id = $result['id'];
$this->request($client, '/api/timesheets/' . $id, 'DELETE');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
self::assertEquals(Response::HTTP_NO_CONTENT, $client->getResponse()->getStatusCode());
$this->assertEmpty($client->getResponse()->getContent());
self::assertEmpty($client->getResponse()->getContent());
}
public function testDeleteActionWithUnknownTimesheet(): void
@@ -929,9 +929,9 @@ class TimesheetControllerTest extends APIControllerBaseTest
$timesheets = $this->importFixtureForUser(User::ROLE_USER);
$this->request($client, '/api/timesheets/' . $timesheets[0]->getId(), 'DELETE');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
self::assertEquals(Response::HTTP_NO_CONTENT, $client->getResponse()->getStatusCode());
$this->assertEmpty($client->getResponse()->getContent());
self::assertEmpty($client->getResponse()->getContent());
}
public function testDeleteActionWithoutAuthorization(): void
@@ -979,7 +979,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$em->flush();
$this->request($client, '/api/timesheets/' . $id, 'DELETE');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
}
public function testGetRecentAction(): void
@@ -1012,7 +1012,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(1, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollectionFull', $result[0]);
}
@@ -1030,7 +1030,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$this->importFixture($fixture);
$this->request($client, '/api/timesheets/active');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
@@ -1038,7 +1038,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertEquals(3, \count($result));
foreach ($result as $timesheet) {
$this->assertIsArray($timesheet);
self::assertIsArray($timesheet);
self::assertApiResponseTypeStructure('TimesheetCollectionFull', $timesheet);
}
}
@@ -1063,7 +1063,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$id = $timesheets[0]->getId();
$this->request($client, '/api/timesheets/' . $id . '/stop', 'PATCH');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
@@ -1076,7 +1076,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$em = $this->getEntityManager();
/** @var Timesheet $timesheet */
$timesheet = $em->getRepository(Timesheet::class)->find($id);
$this->assertInstanceOf(\DateTime::class, $timesheet->getEnd());
self::assertInstanceOf(\DateTime::class, $timesheet->getEnd());
}
public function testStopActionTriggersValidationOnLongRunning(): void
@@ -1157,7 +1157,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(10, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
$query = ['tags' => ['Test', 'Admin']];
@@ -1170,7 +1170,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(10, \count($result));
$this->assertIsArray($result[0]);
self::assertIsArray($result[0]);
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
$query = ['tags' => ['Nothing-2-see', 'not-existing-here']];
@@ -1193,26 +1193,26 @@ class TimesheetControllerTest extends APIControllerBaseTest
$this->request($client, '/api/timesheets/' . $id, 'PATCH', [], $json);
$this->request($client, '/api/timesheets/' . $id . '/restart', 'PATCH');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
$this->assertEmpty($result['description']);
$this->assertEmpty($result['tags']);
self::assertEmpty($result['description']);
self::assertEmpty($result['tags']);
$em = $this->getEntityManager();
/** @var Timesheet $timesheet */
$timesheet = $em->getRepository(Timesheet::class)->find($result['id']);
$this->assertInstanceOf(\DateTime::class, $timesheet->getBegin());
$this->assertNull($timesheet->getEnd());
self::assertInstanceOf(\DateTime::class, $timesheet->getBegin());
self::assertNull($timesheet->getEnd());
self::assertEquals(1, $timesheet->getActivity()->getId());
self::assertEquals(1, $timesheet->getProject()->getId());
$this->assertEmpty($timesheet->getDescription());
$this->assertEmpty($timesheet->getTags());
self::assertEmpty($timesheet->getDescription());
self::assertEmpty($timesheet->getTags());
}
public function testRestartActionWithBegin(): void
@@ -1231,27 +1231,27 @@ class TimesheetControllerTest extends APIControllerBaseTest
$begin = new \DateTime('2019-11-27 13:55:00');
$this->request($client, '/api/timesheets/' . $id . '/restart', 'PATCH', ['begin' => $begin->format(BaseApiController::DATE_FORMAT_PHP)]);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
$this->assertEmpty($result['description']);
$this->assertEmpty($result['tags']);
self::assertEmpty($result['description']);
self::assertEmpty($result['tags']);
$em = $this->getEntityManager();
/** @var Timesheet $timesheet */
$timesheet = $em->getRepository(Timesheet::class)->find($result['id']);
$this->assertInstanceOf(\DateTime::class, $timesheet->getBegin());
self::assertInstanceOf(\DateTime::class, $timesheet->getBegin());
self::assertEquals($begin->format(BaseApiController::DATE_FORMAT_PHP), $timesheet->getBegin()->format(BaseApiController::DATE_FORMAT_PHP));
$this->assertNull($timesheet->getEnd());
self::assertNull($timesheet->getEnd());
self::assertEquals(1, $timesheet->getActivity()->getId());
self::assertEquals(1, $timesheet->getProject()->getId());
$this->assertEmpty($timesheet->getDescription());
$this->assertEmpty($timesheet->getTags());
self::assertEmpty($timesheet->getDescription());
self::assertEmpty($timesheet->getTags());
}
public function testRestartActionWithCopyData(): void
@@ -1277,13 +1277,13 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertEquals('foo', $timesheet->getDescription());
$this->request($client, '/api/timesheets/' . $id . '/restart', 'PATCH', ['copy' => 'all']);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
self::assertEquals('foo', $result['description']);
self::assertEquals([['name' => 'sdfsdf', 'value' => 'nnnnn'], ['name' => '1234567890', 'value' => '1234567890']], $result['metaFields']);
@@ -1292,8 +1292,8 @@ class TimesheetControllerTest extends APIControllerBaseTest
$em = $this->getEntityManager();
/** @var Timesheet $timesheet */
$timesheet = $em->getRepository(Timesheet::class)->find($result['id']);
$this->assertInstanceOf(\DateTime::class, $timesheet->getBegin());
$this->assertNull($timesheet->getEnd());
self::assertInstanceOf(\DateTime::class, $timesheet->getBegin());
self::assertNull($timesheet->getEnd());
self::assertEquals(1, $timesheet->getActivity()->getId());
self::assertEquals(1, $timesheet->getProject()->getId());
self::assertEquals('foo', $timesheet->getDescription());
@@ -1343,7 +1343,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
$json = json_encode($data);
self::assertIsString($json);
$this->request($client, '/api/timesheets', 'POST', [], $json);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
@@ -1352,12 +1352,12 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
self::assertNotEmpty($result['id']);
$this->assertTrue($result['duration'] == 28800 || $result['duration'] == 28860); // 1 minute rounding might be applied
self::assertTrue($result['duration'] == 28800 || $result['duration'] == 28860); // 1 minute rounding might be applied
self::assertEquals(2016, $result['rate']);
$id = $result['id'];
self::assertIsNumeric($id);
$this->request($client, '/api/timesheets/' . $id . '/duplicate', 'PATCH');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
@@ -1366,7 +1366,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
self::assertNotEmpty($result['id']);
$this->assertTrue($result['duration'] == 28800 || $result['duration'] == 28860); // 1 minute rounding might be applied
self::assertTrue($result['duration'] == 28800 || $result['duration'] == 28860); // 1 minute rounding might be applied
self::assertEquals(2016, $result['rate']);
}
@@ -1384,29 +1384,29 @@ class TimesheetControllerTest extends APIControllerBaseTest
$em = $this->getEntityManager();
/** @var Timesheet $timesheet */
$timesheet = $em->getRepository(Timesheet::class)->find($id);
$this->assertFalse($timesheet->isExported());
self::assertFalse($timesheet->isExported());
$this->request($client, '/api/timesheets/' . $id . '/export', 'PATCH');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
$em->clear();
/** @var Timesheet $timesheet */
$timesheet = $em->getRepository(Timesheet::class)->find($id);
$this->assertTrue($timesheet->isExported());
self::assertTrue($timesheet->isExported());
$this->request($client, '/api/timesheets/' . $id . '/export', 'PATCH');
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$em->clear();
$timesheet = $em->getRepository(Timesheet::class)->find($id);
$this->assertFalse($timesheet->isExported());
self::assertFalse($timesheet->isExported());
}
public function testExportNotAllowedForUser(): void
@@ -1482,13 +1482,13 @@ class TimesheetControllerTest extends APIControllerBaseTest
self::assertIsString($json);
$this->request($client, '/api/timesheets/' . $id . '/meta', 'PATCH', [], $json);
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
self::assertEquals(['name' => 'metatestmock', 'value' => 'another,testing,bar'], $result['metaFields'][0]);

View File

@@ -14,7 +14,7 @@ use App\Entity\User;
/**
* @group integration
*/
class UserControllerTest extends APIControllerBaseTest
class UserControllerTest extends APIControllerBaseTestCase
{
public function testIsSecure(): void
{
@@ -24,7 +24,7 @@ class UserControllerTest extends APIControllerBaseTest
/**
* @return array<array<string>>
*/
public function getRoleTestData(): array
public static function getRoleTestData(): array
{
return [
[User::ROLE_USER],
@@ -46,14 +46,14 @@ class UserControllerTest extends APIControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
$this->assertAccessIsGranted($client, '/api/users');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(7, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(7, \count($result));
foreach ($result as $user) {
$this->assertIsArray($user);
self::assertIsArray($user);
self::assertApiResponseTypeStructure('UserCollection', $user);
}
}
@@ -64,14 +64,14 @@ class UserControllerTest extends APIControllerBaseTest
$this->assertAccessIsGranted($client, '/api/users?full=true');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(7, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(7, \count($result));
foreach ($result as $user) {
$this->assertIsArray($user);
self::assertIsArray($user);
self::assertApiResponseTypeStructure('UserEntity', $user);
}
}
@@ -81,14 +81,14 @@ class UserControllerTest extends APIControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
$this->assertAccessIsGranted($client, '/api/users', 'GET', ['visible' => 2, 'orderBy' => 'email', 'order' => 'DESC', 'term' => 'chris']);
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(1, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(1, \count($result));
foreach ($result as $user) {
$this->assertIsArray($user);
self::assertIsArray($user);
self::assertApiResponseTypeStructure('UserCollection', $user);
}
}
@@ -98,14 +98,14 @@ class UserControllerTest extends APIControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
$this->assertAccessIsGranted($client, '/api/users', 'GET', ['visible' => 3, 'orderBy' => 'email', 'order' => 'DESC']);
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
$this->assertNotEmpty($result);
$this->assertEquals(8, \count($result));
self::assertIsArray($result);
self::assertNotEmpty($result);
self::assertEquals(8, \count($result));
foreach ($result as $user) {
$this->assertIsArray($user);
self::assertIsArray($user);
self::assertApiResponseTypeStructure('UserCollection', $user);
}
}
@@ -115,10 +115,10 @@ class UserControllerTest extends APIControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
$this->assertAccessIsGranted($client, '/api/users/1');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('UserEntity', $result);
self::assertEquals('1', $result['id']);
self::assertEquals('CFO', $result['title']);
@@ -130,10 +130,10 @@ class UserControllerTest extends APIControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
$this->assertAccessIsGranted($client, '/api/users/me');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('UserEntity', $result);
self::assertEquals('6', $result['id']);
self::assertEquals('Super Administrator', $result['title']);
@@ -156,10 +156,10 @@ class UserControllerTest extends APIControllerBaseTest
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
$this->assertAccessIsGranted($client, '/api/users/2');
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('UserEntity', $result);
}
@@ -181,14 +181,14 @@ class UserControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/users', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('UserEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
self::assertEquals('foo', $result['username']);
self::assertEquals('asdfghjkl', $result['title']);
self::assertTrue($result['enabled']);
@@ -216,7 +216,7 @@ class UserControllerTest extends APIControllerBaseTest
$this->request($client, '/api/users', 'POST', [], json_encode($data));
$response = $client->getResponse();
$this->assertEquals(400, $response->getStatusCode());
self::assertEquals(400, $response->getStatusCode());
$this->assertApiCallValidationError($response, ['plainPassword']);
}
@@ -236,7 +236,7 @@ class UserControllerTest extends APIControllerBaseTest
$this->request($client, '/api/users', 'POST', [], json_encode($data));
$response = $client->getResponse();
$this->assertEquals(400, $response->getStatusCode());
self::assertEquals(400, $response->getStatusCode());
$this->assertApiCallValidationError($response, ['username', 'email', 'plainPassword', 'language', 'timezone', 'roles']);
}
@@ -272,9 +272,9 @@ class UserControllerTest extends APIControllerBaseTest
],
];
$this->request($client, '/api/users', 'POST', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
self::assertFalse($result['enabled']);
@@ -290,14 +290,14 @@ class UserControllerTest extends APIControllerBaseTest
$id = $result['id'];
self::assertIsNumeric($id);
$this->request($client, '/api/users/' . $id, 'PATCH', [], json_encode($data));
$this->assertTrue($client->getResponse()->isSuccessful());
self::assertTrue($client->getResponse()->isSuccessful());
$content = $client->getResponse()->getContent();
$this->assertIsString($content);
self::assertIsString($content);
$result = json_decode($content, true);
$this->assertIsArray($result);
self::assertIsArray($result);
self::assertApiResponseTypeStructure('UserEntity', $result);
$this->assertNotEmpty($result['id']);
self::assertNotEmpty($result['id']);
self::assertEquals('foo', $result['username']);
self::assertEquals('qwertzui', $result['title']);
self::assertTrue($result['enabled']);
@@ -335,7 +335,7 @@ class UserControllerTest extends APIControllerBaseTest
$this->request($client, '/api/users/1', 'PATCH', [], json_encode($data));
$response = $client->getResponse();
$this->assertEquals(400, $response->getStatusCode());
self::assertEquals(400, $response->getStatusCode());
$this->assertApiCallValidationError($response, ['email', 'language', 'timezone', 'roles'], true);
}
}