Add create/update user api test #3811

pull/3924/head
Julio Montoya 4 years ago
parent 0581a4f505
commit 34a7c462d7
  1. 1
      ecs.php
  2. 14
      src/CoreBundle/Entity/User.php
  3. 69
      tests/CoreBundle/Repository/Node/UserRepositoryTest.php

@ -118,6 +118,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
\PhpCsFixer\Fixer\FunctionNotation\FopenFlagsFixer::class,
\Symplify\CodingStandard\Fixer\ArrayNotation\ArrayOpenerAndCloserNewlineFixer::class,
\Symplify\CodingStandard\Fixer\ArrayNotation\ArrayListItemNewlineFixer::class,
\Symplify\CodingStandard\Fixer\ArrayNotation\StandaloneLineInMultilineArrayFixer::class
//UnusedVariableSniff::class . '.ignoreUnusedValuesWhenOnlyKeysAreUsedInForeach' => true,
//UnusedVariableSniff::class => 'ignoreUnusedValuesWhenOnlyKeysAreUsedInForeach',
]

@ -41,17 +41,14 @@ use UserManager;
* denormalizationContext={"groups"={"user:write"}},
* collectionOperations={
* "get"={"security"="is_granted('ROLE_ADMIN')"},
* "post"={}
* "post"={"security"="is_granted('ROLE_ADMIN')"}
* },
* itemOperations={
* "get"={"security"="is_granted('ROLE_ADMIN')"},
* "put"={},
* "put"={"security"="is_granted('ROLE_ADMIN')"},
* },
* )
*
* @ApiFilter(SearchFilter::class, properties={"username":"partial", "firstname":"partial", "lastname":"partial"})
* @ApiFilter(BooleanFilter::class, properties={"isActive"})
*
* @ORM\Table(
* name="user",
* indexes={
@ -62,6 +59,13 @@ use UserManager;
* @ORM\Entity
* @ORM\EntityListeners({"Chamilo\CoreBundle\Entity\Listener\UserListener"})
*/
#[ApiFilter(SearchFilter::class, properties: [
'username' => 'partial',
'firstname' => 'partial',
'lastname' => 'partial',
])]
#[ApiFilter(BooleanFilter::class, properties: ['isActive'])]
class User implements UserInterface, EquatableInterface, ResourceInterface, ResourceIllustrationInterface, PasswordAuthenticatedUserInterface
{
use TimestampableEntity;

@ -5,13 +5,13 @@ declare(strict_types=1);
namespace Chamilo\Tests\CoreBundle\Repository\Node;
use Chamilo\CoreBundle\Repository\Node\UserRepository;
use Chamilo\Tests\AbstractApiTest;
use Chamilo\Tests\ChamiloTestTrait;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
/**
* @covers \UserRepository
*/
class UserRepositoryTest extends KernelTestCase
class UserRepositoryTest extends AbstractApiTest
{
use ChamiloTestTrait;
@ -26,10 +26,73 @@ class UserRepositoryTest extends KernelTestCase
public function testCreateUser(): void
{
self::bootKernel();
$this->createUser('user', 'user');
$count = self::getContainer()->get(UserRepository::class)->count([]);
$this->assertSame(3, $count);
}
public function testCreateUserWithApi(): void
{
$token = $this->getUserToken([]);
$username = 'test';
$this->createClientWithCredentials($token)->request(
'POST',
'/api/users',
[
'json' => [
'username' => $username,
'firstname' => 'test',
'lastname' => 'test',
'website' => '',
'biography' => '',
'locale' => 'en',
'plainPassword' => 'test',
'timezone' => 'Europe\Paris',
'email' => 'test@example.com',
//'expiresAt' => new \DateTime(),
'phone' => '123456',
'address' => 'Paris',
'roles' => [
'ROLE_USER',
],
],
]
);
$this->assertResponseIsSuccessful();
$this->assertResponseStatusCodeSame(201);
$this->assertResponseHeaderSame('content-type', 'application/ld+json; charset=utf-8');
$this->assertJsonContains([
'@context' => '/api/contexts/User',
'username' => $username,
]);
}
public function testUpdateUserWithApi(): void
{
$user = $this->createUser('test');
$token = $this->getUserToken([]);
$this->createClientWithCredentials($token)->request(
'PUT',
'/api/users/'.$user->getId(),
[
'json' => [
'firstname' => 'updated',
'lastname' => 'updated',
],
]
);
$this->assertResponseIsSuccessful();
$this->assertResponseStatusCodeSame(200);
$this->assertResponseHeaderSame('content-type', 'application/ld+json; charset=utf-8');
$this->assertJsonContains([
'@context' => '/api/contexts/User',
'firstname' => 'updated',
'lastname' => 'updated',
]);
}
}

Loading…
Cancel
Save