slovocast/app/tests/Domain/Repository/UserRepositoryTest.php

54 lines
1.5 KiB
PHP
Raw Normal View History

<?php
namespace Slovocast\Tests\Domain\Repository;
use Slovocast\Domain\Repository\User\UserRepository;
use Slovocast\Infrastructure\Api\Database\DatabaseHandlerInterface;
use Slovocast\Infrastructure\User\BasicUserAuthorization;
use Slovocast\Tests\TestCase;
use Prophecy\Argument;
class UserRepositoryTest extends TestCase
{
public function testRegisteringAUser(): void
{
$user = $this->getUserFromArray();
$databaseHandler = $this->prophesize(DatabaseHandlerInterface::class);
$databaseHandler
->execute(Argument::type('string'), Argument::type('array'))
->willReturn(true, true);
$databaseHandler
->getConnection()
->willReturn(new class {
public function lastInsertId(): int
{
return 100;
}
});
$userRepository = new UserRepository(
$databaseHandler->reveal(),
new BasicUserAuthorization()
);
/**
* We are testing if the User entity has been mutated by the `create`
* method in the UserRepository.
*/
$results = $userRepository->create($user);
$this->assertTrue($results);
$this->assertEquals(100, $user->getId());
$user->setName("Dave Smith-Hayes");
$results = $userRepository->update($user);
$this->assertTrue($results);
$this->assertEquals(
$user->getUpdatedAt()->format("dmY"),
(new \DateTime())->format("dmY")
);
}
}