| App\Identity\Infrastructure\Security\GoogleTokenInfoVerifier::verify | 15 | 100.0% |
| App\Identity\Application\Command\AdminUpdateUserHandler::handle | 9 | 100.0% |
| App\Identity\Infrastructure\Console\GrantAdminCommand::execute | 6.03 | 90.9% |
| App\Identity\Application\Port\GoogleIdentity::nameParts | 6 | 100.0% |
| App\Identity\Infrastructure\Controllers\Admin\UpdateUserController::update | 6 | 95.5% |
| App\Identity\Infrastructure\Persistence\Doctrine\Type\UserStatusType::convertToDatabaseValue | 4.12 | 50.0% |
| App\Identity\Infrastructure\Controllers\Admin\DeleteUserController::delete | 4.01 | 90.9% |
| App\Identity\Application\Command\SignInWithGoogleHandler::handle | 4 | 100.0% |
| App\Identity\Infrastructure\Controllers\SetMyAvatarController::set | 4 | 100.0% |
| App\Identity\Infrastructure\Controllers\UpdateUserController::update | 4 | 100.0% |
| App\Identity\Infrastructure\Security\GoogleAuthenticator::authenticate | 4 | 100.0% |
| App\Identity\Infrastructure\Trip\MemberDirectoryAdapter::findIdByEmail | 4 | 100.0% |
| App\Identity\Application\Command\ChangePasswordHandler::handle | 3 | 100.0% |
| App\Identity\Application\Command\DeleteUserByAdminHandler::handle | 3 | 100.0% |
| App\Identity\Application\Command\UpdateUserHandler::handle | 3 | 100.0% |
| App\Identity\Domain\User::sanitizeName | 3 | 100.0% |
| App\Identity\Domain\ValueObject\BirthDate::__construct | 3 | 100.0% |
| App\Identity\Domain\ValueObject\BirthDate::fromNullable | 3 | 100.0% |
| App\Identity\Infrastructure\Controllers\ChangePasswordController::changePassword | 3 | 100.0% |
| App\Identity\Infrastructure\Controllers\RegisterUserController::register | 3 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\Type\EmailType::convertToDatabaseValue | 3 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\Type\HashedPasswordType::convertToDatabaseValue | 3 | 100.0% |
| App\Identity\Infrastructure\Security\SymfonyValidatorPasswordPolicy::assert | 3 | 100.0% |
| App\Identity\Infrastructure\Security\UserChecker::checkPreAuth | 3 | 100.0% |
| App\Identity\Infrastructure\Security\UserProvider::loadUserByIdentifier | 3 | 100.0% |
| App\Identity\Infrastructure\Trip\MemberDirectoryAdapter::summariesOf | 3 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\Type\UserStatusType::convertToPHPValue | 2.06 | 75.0% |
| App\Identity\Application\AuthenticatedUserFinder::getOrFail | 2 | 100.0% |
| App\Identity\Application\Command\ChangeMyAvatarHandler::handle | 2 | 100.0% |
| App\Identity\Application\Command\DeleteUserHandler::handle | 2 | 100.0% |
| App\Identity\Application\Command\RegisterUserHandler::handle | 2 | 100.0% |
| App\Identity\Application\Query\GetCurrentUserHandler::handle | 2 | 100.0% |
| App\Identity\Domain\User::birthDate | 2 | 100.0% |
| App\Identity\Domain\UserIdentity::__construct | 2 | 100.0% |
| App\Identity\Domain\ValueObject\Email::__construct | 2 | 100.0% |
| App\Identity\Domain\ValueObject\HashedPassword::__construct | 2 | 100.0% |
| App\Identity\Infrastructure\Controllers\DeleteMyAvatarController::delete | 2 | 100.0% |
| App\Identity\Infrastructure\Controllers\DeleteUserController::delete | 2 | 100.0% |
| App\Identity\Infrastructure\Controllers\MeController::me | 2 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\Type\EmailType::convertToPHPValue | 2 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\Type\HashedPasswordType::convertToPHPValue | 2 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\Type\UserStatusType::getSQLDeclaration | 2 | 0.0% |
| App\Identity\Infrastructure\Security\GoogleAuthenticator::supports | 2 | 100.0% |
| App\Identity\Infrastructure\Security\GoogleTokenInfoVerifier::claim | 2 | 100.0% |
| App\Identity\Infrastructure\Security\SecurityUser::getRoles | 2 | 100.0% |
| App\Identity\Infrastructure\Security\UserProvider::refreshUser | 2 | 100.0% |
| App\Identity\Infrastructure\Security\UserProvider::supportsClass | 2 | 100.0% |
| App\Identity\Infrastructure\Http\ValidatesUserId::parseUserId | 2 | 100.0% |
| App\Identity\Application\AuthenticatedUserFinder::__construct | 1 | 100.0% |
| App\Identity\Application\AvatarCleanupOnUserDeletion::__construct | 1 | 100.0% |
| App\Identity\Application\AvatarCleanupOnUserDeletion::onUserDeletion | 1 | 100.0% |
| App\Identity\Application\Command\AdminUpdateUserCommand::__construct | 1 | 100.0% |
| App\Identity\Application\Command\AdminUpdateUserHandler::__construct | 1 | 100.0% |
| App\Identity\Application\Command\ChangeMyAvatarCommand::__construct | 1 | 100.0% |
| App\Identity\Application\Command\ChangeMyAvatarHandler::__construct | 1 | 100.0% |
| App\Identity\Application\Command\ChangePasswordCommand::__construct | 1 | 100.0% |
| App\Identity\Application\Command\ChangePasswordHandler::__construct | 1 | 100.0% |
| App\Identity\Application\Command\DeleteUserByAdminCommand::__construct | 1 | 100.0% |
| App\Identity\Application\Command\DeleteUserByAdminHandler::__construct | 1 | 100.0% |
| App\Identity\Application\Command\DeleteUserCommand::__construct | 1 | 100.0% |
| App\Identity\Application\Command\DeleteUserHandler::__construct | 1 | 100.0% |
| App\Identity\Application\Command\RegisterUserCommand::__construct | 1 | 100.0% |
| App\Identity\Application\Command\RegisterUserHandler::__construct | 1 | 100.0% |
| App\Identity\Application\Command\SignInWithGoogleCommand::__construct | 1 | 100.0% |
| App\Identity\Application\Command\SignInWithGoogleHandler::__construct | 1 | 100.0% |
| App\Identity\Application\Command\UpdateUserCommand::__construct | 1 | 100.0% |
| App\Identity\Application\Command\UpdateUserHandler::__construct | 1 | 100.0% |
| App\Identity\Application\Port\GoogleIdentity::__construct | 1 | 100.0% |
| App\Identity\Application\Query\AdminUserView::__construct | 1 | 100.0% |
| App\Identity\Application\Query\AdminUserView::fromUser | 1 | 100.0% |
| App\Identity\Application\Query\AdminUserView::toArray | 1 | 100.0% |
| App\Identity\Application\Query\CurrentUserView::__construct | 1 | 100.0% |
| App\Identity\Application\Query\CurrentUserView::fromUser | 1 | 100.0% |
| App\Identity\Application\Query\CurrentUserView::toArray | 1 | 100.0% |
| App\Identity\Application\Query\GetCurrentUserHandler::__construct | 1 | 100.0% |
| App\Identity\Application\Query\GetCurrentUserQuery::__construct | 1 | 100.0% |
| App\Identity\Application\Query\ListUsersHandler::__construct | 1 | 100.0% |
| App\Identity\Application\Query\ListUsersHandler::handle | 1 | 100.0% |
| App\Identity\Application\Query\ListUsersQuery::__construct | 1 | 100.0% |
| App\Identity\Domain\Exceptions\AdminSelfAction::cannotRevokeSelf | 1 | 100.0% |
| App\Identity\Domain\Exceptions\AdminSelfAction::cannotDeleteSelf | 1 | 100.0% |
| App\Identity\Domain\Exceptions\AdminSelfAction::cannotSuspendSelf | 1 | 100.0% |
| App\Identity\Domain\Exceptions\EmailAlreadyInUse::of | 1 | 100.0% |
| App\Identity\Domain\Exceptions\InvalidCurrentPassword::create | 1 | 100.0% |
| App\Identity\Domain\Exceptions\UserNotFound::of | 1 | 100.0% |
| App\Identity\Domain\Exceptions\WeakPassword::of | 1 | 100.0% |
| App\Identity\Domain\User::__construct | 1 | 100.0% |
| App\Identity\Domain\User::register | 1 | 100.0% |
| App\Identity\Domain\User::registerWithoutPassword | 1 | 100.0% |
| App\Identity\Domain\User::update | 1 | 100.0% |
| App\Identity\Domain\User::changePassword | 1 | 100.0% |
| App\Identity\Domain\User::grantAdmin | 1 | 100.0% |
| App\Identity\Domain\User::revokeAdmin | 1 | 100.0% |
| App\Identity\Domain\User::isAdmin | 1 | 100.0% |
| App\Identity\Domain\User::suspend | 1 | 100.0% |
| App\Identity\Domain\User::activate | 1 | 100.0% |
| App\Identity\Domain\User::status | 1 | 100.0% |
| App\Identity\Domain\User::id | 1 | 100.0% |
| App\Identity\Domain\User::email | 1 | 100.0% |
| App\Identity\Domain\User::password | 1 | 100.0% |
| App\Identity\Domain\User::hasPassword | 1 | 100.0% |
| App\Identity\Domain\User::preferredCurrency | 1 | 100.0% |
| App\Identity\Domain\User::name | 1 | 100.0% |
| App\Identity\Domain\User::surnames | 1 | 100.0% |
| App\Identity\Domain\User::createdAt | 1 | 100.0% |
| App\Identity\Domain\User::avatarName | 1 | 100.0% |
| App\Identity\Domain\User::changeAvatar | 1 | 100.0% |
| App\Identity\Domain\UserIdentity::provider | 1 | 100.0% |
| App\Identity\Domain\UserIdentity::subject | 1 | 100.0% |
| App\Identity\Domain\UserIdentity::userId | 1 | 100.0% |
| App\Identity\Domain\UserIdentity::createdAt | 1 | 100.0% |
| App\Identity\Domain\ValueObject\BirthDate::fromDate | 1 | 100.0% |
| App\Identity\Domain\ValueObject\BirthDate::age | 1 | 100.0% |
| App\Identity\Domain\ValueObject\BirthDate::toDateTimeImmutable | 1 | 100.0% |
| App\Identity\Domain\ValueObject\BirthDate::value | 1 | 100.0% |
| App\Identity\Domain\ValueObject\Email::__toString | 1 | 100.0% |
| App\Identity\Domain\ValueObject\Email::value | 1 | 100.0% |
| App\Identity\Domain\ValueObject\Email::equals | 1 | 100.0% |
| App\Identity\Domain\ValueObject\HashedPassword::__toString | 1 | 100.0% |
| App\Identity\Domain\ValueObject\HashedPassword::value | 1 | 100.0% |
| App\Identity\Infrastructure\Console\GrantAdminCommand::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Console\GrantAdminCommand::configure | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\Admin\DeleteUserController::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\Admin\ListUsersController::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\Admin\ListUsersController::list | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\Admin\UpdateUserController::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\ChangePasswordController::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\DeleteMyAvatarController::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\DeleteUserController::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\GoogleSignInConfigController::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\GoogleSignInConfigController::config | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\MeController::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\RegisterUserController::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\SetMyAvatarController::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Controllers\UpdateUserController::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\DoctrineUserIdentityRepository::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\DoctrineUserIdentityRepository::save | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\DoctrineUserIdentityRepository::ofProviderSubject | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\DoctrineUserRepository::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\DoctrineUserRepository::save | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\DoctrineUserRepository::remove | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\DoctrineUserRepository::ofId | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\DoctrineUserRepository::ofEmail | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\DoctrineUserRepository::existsByEmail | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\DoctrineUserRepository::paginate | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\DoctrineUserRepository::count | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\Type\EmailType::getSQLDeclaration | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\Type\HashedPasswordType::getSQLDeclaration | 1 | 100.0% |
| App\Identity\Infrastructure\Persistence\Doctrine\Type\UserIdType::className | 1 | 100.0% |
| App\Identity\Infrastructure\Security\GoogleAuthenticator::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Security\GoogleAuthenticator::onAuthenticationSuccess | 1 | 100.0% |
| App\Identity\Infrastructure\Security\GoogleAuthenticator::onAuthenticationFailure | 1 | 100.0% |
| App\Identity\Infrastructure\Security\GoogleTokenInfoVerifier::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SecurityUser::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SecurityUser::fromDomain | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SecurityUser::userId | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SecurityUser::preferredCurrency | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SecurityUser::getUserIdentifier | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SecurityUser::getPassword | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SecurityUser::isAdmin | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SecurityUser::isSuspended | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SecurityUser::eraseCredentials | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SymfonyPasswordHasher::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SymfonyPasswordHasher::hash | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SymfonyPasswordHasher::verify | 1 | 100.0% |
| App\Identity\Infrastructure\Security\SymfonyValidatorPasswordPolicy::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Security\UserChecker::checkPostAuth | 1 | 100.0% |
| App\Identity\Infrastructure\Security\UserProvider::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Trip\MemberDirectoryAdapter::__construct | 1 | 100.0% |
| App\Identity\Infrastructure\Http\ResolvesAuthenticatedUser::securityUser | 1 | 100.0% |