Upgrade tests to PhpUnit 10 (#5252)
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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(), [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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(), [
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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(), [
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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]);
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user