. */ declare(strict_types=1); namespace Fisharebest\Webtrees; use Fisharebest\Webtrees\Contracts\CacheFactoryInterface; use Fisharebest\Webtrees\Contracts\UserInterface; use Symfony\Component\Cache\Adapter\NullAdapter; /** * Test the DefaultUser class */ class DefaultUserTest extends TestCase { protected static bool $uses_database = true; /** * Things to run before every test. */ protected function setUp(): void { parent::setUp(); $cache_factory = $this->createMock(CacheFactoryInterface::class); $cache_factory->method('array')->willReturn(new Cache(new NullAdapter())); Registry::cache($cache_factory); } /** * @covers \Fisharebest\Webtrees\DefaultUser::__construct * @covers \Fisharebest\Webtrees\DefaultUser::id * @covers \Fisharebest\Webtrees\DefaultUser::email * @covers \Fisharebest\Webtrees\DefaultUser::realName * @covers \Fisharebest\Webtrees\DefaultUser::userName * @return void */ public function testDefaultUser(): void { $user = new DefaultUser(); self::assertInstanceOf(UserInterface::class, $user); self::assertSame(-1, $user->id()); self::assertSame('DEFAULT_USER', $user->email()); self::assertSame('DEFAULT_USER', $user->realName()); self::assertSame('', $user->userName()); } /** * @covers \Fisharebest\Webtrees\DefaultUser::getPreference * @covers \Fisharebest\Webtrees\DefaultUser::setPreference * @return void */ public function testPreferences(): void { $user = new DefaultUser(); self::assertSame('', $user->getPreference('foo')); self::assertSame('', $user->getPreference('foo')); self::assertSame('bar', $user->getPreference('foo', 'bar')); // Default users store preferences in the database $user->setPreference('foo', 'bar'); self::assertSame('bar', $user->getPreference('foo')); } }