Release 2.25 (#5109)
This commit is contained in:
@@ -225,7 +225,7 @@ abstract class APIControllerBaseTest extends ControllerBaseTest
|
||||
if (\count($globalError) > 0) {
|
||||
self::assertArrayHasKey('errors', $result['errors']);
|
||||
foreach ($globalError as $err) {
|
||||
self::assertTrue(\in_array($err, $result['errors']['errors']), 'Missing global validation error: ' . $err);
|
||||
self::assertTrue(\in_array($err, $result['errors']['errors']), 'Missing global validation error: ' . $err); // @phpstan-ignore binaryOp.invalid
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -60,11 +60,13 @@ class ActionsControllerTest extends APIControllerBaseTest
|
||||
|
||||
$this->assertIsArray($result);
|
||||
foreach ($result as $item) {
|
||||
self::assertIsArray($item);
|
||||
self::assertApiResponseTypeStructure('PageActionItem', $item);
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
foreach ($entries as $id) {
|
||||
self::assertIsArray($result[$i]);
|
||||
self::assertEquals($id, $result[$i]['id'], \sprintf('Failed action "%s" with name "%s" in view "%s"', $i, $id, $view));
|
||||
$i++;
|
||||
}
|
||||
@@ -110,11 +112,13 @@ class ActionsControllerTest extends APIControllerBaseTest
|
||||
|
||||
$this->assertIsArray($result);
|
||||
foreach ($result as $item) {
|
||||
self::assertIsArray($item);
|
||||
self::assertApiResponseTypeStructure('PageActionItem', $item);
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
foreach ($entries as $id) {
|
||||
self::assertIsArray($result[$i]);
|
||||
self::assertEquals($id, $result[$i]['id'], \sprintf('Failed action "%s" with name "%s" in view "%s"', $i, $id, $view));
|
||||
$i++;
|
||||
}
|
||||
@@ -159,11 +163,13 @@ class ActionsControllerTest extends APIControllerBaseTest
|
||||
|
||||
$this->assertIsArray($result);
|
||||
foreach ($result as $item) {
|
||||
self::assertIsArray($item);
|
||||
self::assertApiResponseTypeStructure('PageActionItem', $item);
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
foreach ($entries as $id) {
|
||||
self::assertIsArray($result[$i]);
|
||||
self::assertEquals($id, $result[$i]['id'], \sprintf('Failed action "%s" with name "%s" in view "%s"', $i, $id, $view));
|
||||
$i++;
|
||||
}
|
||||
@@ -204,11 +210,13 @@ class ActionsControllerTest extends APIControllerBaseTest
|
||||
|
||||
$this->assertIsArray($result);
|
||||
foreach ($result as $item) {
|
||||
self::assertIsArray($item);
|
||||
self::assertApiResponseTypeStructure('PageActionItem', $item);
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
foreach ($entries as $id) {
|
||||
self::assertIsArray($result[$i]);
|
||||
self::assertEquals($id, $result[$i]['id'], \sprintf('Failed action "%s" with name "%s" in view "%s"', $i, $id, $view));
|
||||
$i++;
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ use App\Repository\ActivityRateRepository;
|
||||
use App\Repository\ActivityRepository;
|
||||
use App\Repository\Query\VisibilityInterface;
|
||||
use App\Tests\Mocks\ActivityTestMetaFieldSubscriberMock;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
|
||||
/**
|
||||
* @group integration
|
||||
@@ -179,6 +180,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
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']);
|
||||
@@ -219,6 +221,7 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
$this->assertIsArray($result);
|
||||
$this->assertNotEmpty($result);
|
||||
$this->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']);
|
||||
@@ -429,7 +432,9 @@ class ActivityControllerTest extends APIControllerBaseTest
|
||||
public function testMetaAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
static::getContainer()->get('event_dispatcher')->addSubscriber(new ActivityTestMetaFieldSubscriberMock());
|
||||
/** @var EventDispatcher $dispatcher */
|
||||
$dispatcher = static::getContainer()->get('event_dispatcher');
|
||||
$dispatcher->addSubscriber(new ActivityTestMetaFieldSubscriberMock());
|
||||
|
||||
$data = [
|
||||
'name' => 'metatestmock',
|
||||
|
||||
@@ -20,7 +20,6 @@ use Symfony\Component\Security\Core\Exception\BadCredentialsException;
|
||||
use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException;
|
||||
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
|
||||
use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\CustomCredentials;
|
||||
use Symfony\Component\Security\Http\Authenticator\Passport\Passport;
|
||||
|
||||
/**
|
||||
* @covers \App\API\Authentication\TokenAuthenticator
|
||||
@@ -118,7 +117,6 @@ class TokenAuthenticatorTest extends TestCase
|
||||
|
||||
$request = new Request([], [], [], [], [], ['REQUEST_URI' => '/api/fooo', 'HTTP_X-AUTH-USER' => 'foo2', 'HTTP_X-AUTH-TOKEN' => 'bar']);
|
||||
$passport = $sut->authenticate($request);
|
||||
self::assertInstanceOf(Passport::class, $passport);
|
||||
$badge = $passport->getBadge(UserBadge::class);
|
||||
self::assertInstanceOf(UserBadge::class, $badge);
|
||||
self::assertEquals('foo2', $badge->getUserIdentifier());
|
||||
|
||||
@@ -21,6 +21,7 @@ use App\Entity\User;
|
||||
use App\Repository\CustomerRateRepository;
|
||||
use App\Repository\CustomerRepository;
|
||||
use App\Tests\Mocks\CustomerTestMetaFieldSubscriberMock;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
|
||||
/**
|
||||
* @group integration
|
||||
@@ -104,6 +105,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
$this->assertIsArray($result);
|
||||
$this->assertNotEmpty($result);
|
||||
$this->assertEquals(1, \count($result));
|
||||
self::assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('CustomerCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -120,6 +122,7 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
$this->assertIsArray($result);
|
||||
$this->assertNotEmpty($result);
|
||||
$this->assertEquals(1, \count($result));
|
||||
self::assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('CustomerCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -372,7 +375,9 @@ class CustomerControllerTest extends APIControllerBaseTest
|
||||
public function testMetaAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
self::getContainer()->get('event_dispatcher')->addSubscriber(new CustomerTestMetaFieldSubscriberMock());
|
||||
/** @var EventDispatcher $dispatcher */
|
||||
$dispatcher = static::getContainer()->get('event_dispatcher');
|
||||
$dispatcher->addSubscriber(new CustomerTestMetaFieldSubscriberMock());
|
||||
|
||||
$data = [
|
||||
'name' => 'metatestmock',
|
||||
|
||||
@@ -51,6 +51,7 @@ class InvoiceControllerTest extends APIControllerBaseTest
|
||||
$this->assertIsArray($result);
|
||||
$this->assertNotEmpty($result);
|
||||
$this->assertEquals(10, \count($result));
|
||||
self::assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('InvoiceCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -72,6 +73,7 @@ class InvoiceControllerTest extends APIControllerBaseTest
|
||||
$this->assertIsArray($result);
|
||||
$this->assertNotEmpty($result);
|
||||
$this->assertEquals(7, \count($result));
|
||||
self::assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('InvoiceCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -91,6 +93,7 @@ class InvoiceControllerTest extends APIControllerBaseTest
|
||||
$this->assertNotEmpty($result);
|
||||
$this->assertEquals(4, \count($result));
|
||||
$this->assertPagination($client->getResponse(), 2, 4, 5, 20);
|
||||
self::assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('InvoiceCollection', $result[0]);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ use App\Repository\ProjectRateRepository;
|
||||
use App\Repository\ProjectRepository;
|
||||
use App\Repository\Query\VisibilityInterface;
|
||||
use App\Tests\Mocks\ProjectTestMetaFieldSubscriberMock;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\HttpKernel\HttpKernelBrowser;
|
||||
|
||||
/**
|
||||
@@ -105,6 +106,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
$this->assertIsArray($result);
|
||||
$this->assertNotEmpty($result);
|
||||
$this->assertEquals(1, \count($result));
|
||||
self::assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('ProjectCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -219,6 +221,7 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
|
||||
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']);
|
||||
@@ -579,7 +582,9 @@ class ProjectControllerTest extends APIControllerBaseTest
|
||||
public function testMetaAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
self::getContainer()->get('event_dispatcher')->addSubscriber(new ProjectTestMetaFieldSubscriberMock());
|
||||
/** @var EventDispatcher $dispatcher */
|
||||
$dispatcher = static::getContainer()->get('event_dispatcher');
|
||||
$dispatcher->addSubscriber(new ProjectTestMetaFieldSubscriberMock());
|
||||
|
||||
$data = [
|
||||
'name' => 'metatestmock',
|
||||
|
||||
@@ -150,7 +150,13 @@ trait RateControllerTestTrait
|
||||
$this->assertEquals(\count($expectedRates), \count($result));
|
||||
|
||||
foreach ($result as $rate) {
|
||||
$this->assertRateStructure($rate, ($rate['user'] === null ? null : $rate['user']['id']));
|
||||
$this->assertIsArray($rate);
|
||||
if ($rate['user'] === null) {
|
||||
$this->assertRateStructure($rate);
|
||||
} else {
|
||||
$this->assertIsArray($rate['user']);
|
||||
$this->assertRateStructure($rate, $rate['user']['id']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@ class TagControllerTest extends APIControllerBaseTest
|
||||
$this->assertIsArray($result);
|
||||
$this->assertNotEmpty($result);
|
||||
$this->assertEquals(3, \count($result));
|
||||
self::assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TagEntity', $result[0]);
|
||||
}
|
||||
|
||||
|
||||
@@ -65,6 +65,7 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->assertIsArray($result);
|
||||
$this->assertNotEmpty($result);
|
||||
self::assertEquals(2, \count($result));
|
||||
self::assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TeamCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -152,7 +153,9 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$updateId = $result['id'];
|
||||
$this->assertIsNumeric($updateId);
|
||||
|
||||
$data = [
|
||||
'name' => 'foo',
|
||||
@@ -171,14 +174,17 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
self::assertApiResponseTypeStructure('TeamEntity', $result);
|
||||
$this->assertNotEmpty($result['id']);
|
||||
self::assertCount(3, $result['members']);
|
||||
$this->assertIsNumeric($updateId);
|
||||
|
||||
$this->request($client, '/api/teams/' . $updateId);
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TeamEntity', $result);
|
||||
$this->assertIsArray($result['members']);
|
||||
self::assertCount(3, $result['members']);
|
||||
|
||||
$this->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']);
|
||||
@@ -187,7 +193,7 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
self::assertEquals(4, $result['members'][2]['user']['id']);
|
||||
self::assertEquals('tony_teamlead', $result['members'][2]['user']['username']);
|
||||
|
||||
self::assertTrue(true, $result['members'][0]['teamlead']);
|
||||
self::assertTrue($result['members'][0]['teamlead']);
|
||||
self::assertEquals(2, $result['members'][0]['user']['id']);
|
||||
self::assertEquals('john_user', $result['members'][0]['user']['username']);
|
||||
}
|
||||
@@ -204,6 +210,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
|
||||
$data = [
|
||||
'name' => '1',
|
||||
@@ -230,6 +238,7 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
self::assertApiResponseTypeStructure('TeamEntity', $result);
|
||||
$this->assertNotEmpty($result['id']);
|
||||
$id = $result['id'];
|
||||
$this->assertIsNumeric($id);
|
||||
|
||||
$this->request($client, '/api/teams/' . $id, 'DELETE');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
@@ -249,7 +258,10 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsArray($result['members']);
|
||||
self::assertCount(1, $result['members']);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
|
||||
$this->request($client, '/api/teams/' . $result['id'] . '/members/2', 'POST');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
@@ -257,6 +269,7 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TeamEntity', $result);
|
||||
$this->assertIsArray($result['members']);
|
||||
self::assertCount(2, $result['members']);
|
||||
}
|
||||
|
||||
@@ -273,6 +286,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
|
||||
// team not found
|
||||
$this->assertEntityNotFoundForPost($client, '/api/teams/999/members/999');
|
||||
@@ -303,6 +318,9 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
$this->assertIsArray($result['members']);
|
||||
self::assertCount(4, $result['members']);
|
||||
|
||||
$this->request($client, '/api/teams/' . $result['id'] . '/members/2', 'DELETE');
|
||||
@@ -311,6 +329,7 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TeamEntity', $result);
|
||||
$this->assertIsArray($result['members']);
|
||||
self::assertCount(3, $result['members']);
|
||||
}
|
||||
|
||||
@@ -329,6 +348,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
|
||||
// team not found
|
||||
$this->assertNotFoundForDelete($client, '/api/teams/999/members/999');
|
||||
@@ -359,6 +380,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
self::assertCount(0, $result['customers']);
|
||||
|
||||
$this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'POST');
|
||||
@@ -367,7 +390,9 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TeamEntity', $result);
|
||||
$this->assertIsArray($result['customers']);
|
||||
self::assertCount(1, $result['customers']);
|
||||
$this->assertIsArray($result['customers'][0]);
|
||||
self::assertEquals(1, $result['customers'][0]['id']);
|
||||
}
|
||||
|
||||
@@ -384,6 +409,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
|
||||
// team not found
|
||||
$this->assertEntityNotFoundForPost($client, '/api/teams/999/customers/999');
|
||||
@@ -395,6 +422,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'POST');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
self::assertCount(1, $result['customers']);
|
||||
|
||||
// cannot add existing customer
|
||||
@@ -416,12 +445,16 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->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());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
self::assertCount(1, $result['customers']);
|
||||
|
||||
$this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'DELETE');
|
||||
@@ -429,7 +462,10 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TeamEntity', $result);
|
||||
$this->assertIsArray($result['customers']);
|
||||
self::assertCount(0, $result['customers']);
|
||||
|
||||
/** @var EntityManager $em */
|
||||
@@ -454,6 +490,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
|
||||
// team not found
|
||||
$this->assertNotFoundForDelete($client, '/api/teams/999/customers/999');
|
||||
@@ -477,6 +515,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
self::assertCount(0, $result['projects']);
|
||||
$this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'POST');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
@@ -484,7 +524,9 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TeamEntity', $result);
|
||||
$this->assertIsArray($result['projects']);
|
||||
self::assertCount(1, $result['projects']);
|
||||
$this->assertIsArray($result['projects'][0]);
|
||||
self::assertEquals(1, $result['projects'][0]['id']);
|
||||
}
|
||||
|
||||
@@ -501,6 +543,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
|
||||
// team not found
|
||||
$this->assertEntityNotFoundForPost($client, '/api/teams/999/projects/999');
|
||||
@@ -514,6 +558,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'POST');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
self::assertCount(1, $result['projects']);
|
||||
|
||||
// cannot add existing project
|
||||
@@ -535,12 +581,16 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->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());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsArray($result['projects']);
|
||||
self::assertCount(1, $result['projects']);
|
||||
|
||||
$this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'DELETE');
|
||||
@@ -549,6 +599,7 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TeamEntity', $result);
|
||||
$this->assertIsArray($result['projects']);
|
||||
self::assertCount(0, $result['projects']);
|
||||
|
||||
/** @var EntityManager $em */
|
||||
@@ -573,6 +624,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
|
||||
// team not found
|
||||
$this->assertNotFoundForDelete($client, '/api/teams/999/projects/999');
|
||||
@@ -596,6 +649,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
self::assertCount(0, $result['activities']);
|
||||
$this->request($client, '/api/teams/' . $result['id'] . '/activities/1', 'POST');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
@@ -603,7 +658,9 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TeamEntity', $result);
|
||||
$this->assertIsArray($result['activities']);
|
||||
self::assertCount(1, $result['activities']);
|
||||
$this->assertIsArray($result['activities'][0]);
|
||||
self::assertEquals(1, $result['activities'][0]['id']);
|
||||
}
|
||||
|
||||
@@ -620,6 +677,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
|
||||
// team not found
|
||||
$this->assertEntityNotFoundForPost($client, '/api/teams/999/activities/999');
|
||||
@@ -631,6 +690,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams/' . $result['id'] . '/activities/1', 'POST');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
self::assertCount(1, $result['activities']);
|
||||
|
||||
// cannot add existing activity
|
||||
@@ -652,12 +713,16 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->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());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
self::assertCount(1, $result['activities']);
|
||||
|
||||
$this->request($client, '/api/teams/' . $result['id'] . '/activities/1', 'DELETE');
|
||||
@@ -666,6 +731,7 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TeamEntity', $result);
|
||||
$this->assertIsArray($result['activities']);
|
||||
self::assertCount(0, $result['activities']);
|
||||
}
|
||||
|
||||
@@ -684,6 +750,8 @@ class TeamControllerTest extends APIControllerBaseTest
|
||||
$this->request($client, '/api/teams', 'POST', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
$result = json_decode($client->getResponse()->getContent(), true);
|
||||
$this->assertIsArray($result);
|
||||
$this->assertIsNumeric($result['id']);
|
||||
|
||||
// team not found
|
||||
$this->assertNotFoundForDelete($client, '/api/teams/999/activities/9999');
|
||||
|
||||
@@ -20,6 +20,7 @@ use App\Entity\User;
|
||||
use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
use App\Tests\Mocks\TimesheetTestMetaFieldSubscriberMock;
|
||||
use App\Timesheet\DateTimeFactory;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
/**
|
||||
@@ -63,6 +64,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(10, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -79,6 +81,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(10, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollectionFull', $result[0]);
|
||||
}
|
||||
|
||||
@@ -103,6 +106,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(10, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
|
||||
$query = ['users' => [2]];
|
||||
@@ -115,6 +119,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(10, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -162,6 +167,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(10, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -186,6 +192,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(17, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -237,6 +244,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(4, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -289,6 +297,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(5, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -324,6 +333,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(7, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
|
||||
$query = [
|
||||
@@ -342,6 +352,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(10, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
|
||||
$query = [
|
||||
@@ -358,6 +369,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(17, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -896,6 +908,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
|
||||
self::assertNotEmpty($result['id']);
|
||||
self::assertIsNumeric($result['id']);
|
||||
$id = $result['id'];
|
||||
|
||||
$this->request($client, '/api/timesheets/' . $id, 'DELETE');
|
||||
@@ -999,6 +1012,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(1, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollectionFull', $result[0]);
|
||||
}
|
||||
|
||||
@@ -1024,6 +1038,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
|
||||
self::assertEquals(3, \count($result));
|
||||
foreach ($result as $timesheet) {
|
||||
$this->assertIsArray($timesheet);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollectionFull', $timesheet);
|
||||
}
|
||||
}
|
||||
@@ -1142,6 +1157,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(10, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
|
||||
$query = ['tags' => ['Test', 'Admin']];
|
||||
@@ -1154,6 +1170,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(10, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
|
||||
$query = ['tags' => ['Nothing-2-see', 'here']];
|
||||
@@ -1166,6 +1183,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsArray($result);
|
||||
self::assertNotEmpty($result);
|
||||
self::assertEquals(20, \count($result));
|
||||
$this->assertIsArray($result[0]);
|
||||
self::assertApiResponseTypeStructure('TimesheetCollection', $result[0]);
|
||||
}
|
||||
|
||||
@@ -1190,6 +1208,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsString($content);
|
||||
$result = json_decode($content, true);
|
||||
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
|
||||
$this->assertEmpty($result['description']);
|
||||
$this->assertEmpty($result['tags']);
|
||||
@@ -1227,6 +1246,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsString($content);
|
||||
$result = json_decode($content, true);
|
||||
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
|
||||
$this->assertEmpty($result['description']);
|
||||
$this->assertEmpty($result['tags']);
|
||||
@@ -1272,6 +1292,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsString($content);
|
||||
$result = json_decode($content, true);
|
||||
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
|
||||
self::assertEquals('foo', $result['description']);
|
||||
self::assertEquals([['name' => 'sdfsdf', 'value' => 'nnnnn'], ['name' => '1234567890', 'value' => '1234567890']], $result['metaFields']);
|
||||
@@ -1342,8 +1363,9 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertNotEmpty($result['id']);
|
||||
$this->assertTrue($result['duration'] == 28800 || $result['duration'] == 28860); // 1 minute rounding might be applied
|
||||
self::assertEquals(2016, $result['rate']);
|
||||
|
||||
$this->request($client, '/api/timesheets/' . $result['id'] . '/duplicate', 'PATCH');
|
||||
$id = $result['id'];
|
||||
self::assertIsNumeric($id);
|
||||
$this->request($client, '/api/timesheets/' . $id . '/duplicate', 'PATCH');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$content = $client->getResponse()->getContent();
|
||||
@@ -1380,6 +1402,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsString($content);
|
||||
$result = json_decode($content, true);
|
||||
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
|
||||
|
||||
$em->clear();
|
||||
@@ -1456,7 +1479,9 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$timesheets = $this->importFixtureForUser(User::ROLE_USER);
|
||||
$id = $timesheets[0]->getId();
|
||||
static::getContainer()->get('event_dispatcher')->addSubscriber(new TimesheetTestMetaFieldSubscriberMock());
|
||||
/** @var EventDispatcher $dispatcher */
|
||||
$dispatcher = static::getContainer()->get('event_dispatcher');
|
||||
$dispatcher->addSubscriber(new TimesheetTestMetaFieldSubscriberMock());
|
||||
|
||||
$data = [
|
||||
'name' => 'metatestmock',
|
||||
@@ -1472,6 +1497,7 @@ class TimesheetControllerTest extends APIControllerBaseTest
|
||||
self::assertIsString($content);
|
||||
$result = json_decode($content, true);
|
||||
|
||||
$this->assertIsArray($result);
|
||||
self::assertApiResponseTypeStructure('TimesheetEntity', $result);
|
||||
self::assertEquals(['name' => 'metatestmock', 'value' => 'another,testing,bar'], $result['metaFields'][0]);
|
||||
|
||||
|
||||
@@ -53,6 +53,7 @@ class UserControllerTest extends APIControllerBaseTest
|
||||
$this->assertNotEmpty($result);
|
||||
$this->assertEquals(7, \count($result));
|
||||
foreach ($result as $user) {
|
||||
$this->assertIsArray($user);
|
||||
self::assertApiResponseTypeStructure('UserCollection', $user);
|
||||
}
|
||||
}
|
||||
@@ -70,6 +71,7 @@ class UserControllerTest extends APIControllerBaseTest
|
||||
$this->assertNotEmpty($result);
|
||||
$this->assertEquals(7, \count($result));
|
||||
foreach ($result as $user) {
|
||||
$this->assertIsArray($user);
|
||||
self::assertApiResponseTypeStructure('UserEntity', $user);
|
||||
}
|
||||
}
|
||||
@@ -86,6 +88,7 @@ class UserControllerTest extends APIControllerBaseTest
|
||||
$this->assertNotEmpty($result);
|
||||
$this->assertEquals(1, \count($result));
|
||||
foreach ($result as $user) {
|
||||
$this->assertIsArray($user);
|
||||
self::assertApiResponseTypeStructure('UserCollection', $user);
|
||||
}
|
||||
}
|
||||
@@ -102,6 +105,7 @@ class UserControllerTest extends APIControllerBaseTest
|
||||
$this->assertNotEmpty($result);
|
||||
$this->assertEquals(8, \count($result));
|
||||
foreach ($result as $user) {
|
||||
$this->assertIsArray($user);
|
||||
self::assertApiResponseTypeStructure('UserCollection', $user);
|
||||
}
|
||||
}
|
||||
@@ -283,7 +287,9 @@ class UserControllerTest extends APIControllerBaseTest
|
||||
'ROLE_TEAMLEAD',
|
||||
],
|
||||
];
|
||||
$this->request($client, '/api/users/' . $result['id'], 'PATCH', [], json_encode($data));
|
||||
$id = $result['id'];
|
||||
self::assertIsNumeric($id);
|
||||
$this->request($client, '/api/users/' . $id, 'PATCH', [], json_encode($data));
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$content = $client->getResponse()->getContent();
|
||||
|
||||
Reference in New Issue
Block a user