function it_builds() { $this->beConstructedWith(User::class); $this->shouldHaveType(UserFactorySignUp::class); $this->shouldImplement(BaseUserFactorySignUp::class); $this->build(new UserId('user-id'), new UserEmail('*****@*****.**'), UserPassword::fromEncoded('encoded-pass', null), [new UserRole('ROLE_USER')])->shouldReturnAnInstanceOf(User::class); }
function it_transforms(User $user, \DateTimeImmutable $createdOn, \DateTimeImmutable $lastLogin, \DateTimeImmutable $updatedOn) { $this->read()->shouldReturn([]); $this->write($user); $user->roles()->shouldBeCalled()->willReturn([new UserRole('ROLE_USER')]); $password = UserPassword::fromEncoded('encoded-password', 'user-password-salt'); $user->id()->shouldBeCalled()->willReturn(new UserId('user-id')); $user->confirmationToken()->shouldBeCalled()->willReturn(null); $user->createdOn()->shouldBeCalled()->willReturn($createdOn); $user->email()->shouldBeCalled()->willReturn(new UserEmail('*****@*****.**')); $user->invitationToken()->shouldBeCalled()->willReturn(null); $user->lastLogin()->shouldBeCalled()->willReturn($lastLogin); $user->password()->shouldBeCalled()->willReturn($password); $user->rememberPasswordToken()->shouldBeCalled()->willReturn(null); $user->updatedOn()->shouldBeCalled()->willReturn($updatedOn); $this->read()->shouldReturn(['id' => 'user-id', 'confirmation_token' => null, 'created_on' => $createdOn, 'email' => '*****@*****.**', 'invitation_token' => null, 'last_login' => $lastLogin, 'encoded_password' => 'encoded-password', 'salt' => 'user-password-salt', 'remember_password_token' => null, 'roles' => ['ROLE_USER'], 'updated_on' => $updatedOn]); }
/** * Builds the user with the given sql row attributes. * * @param array $row Array which contains attributes of user * * @return User */ private function buildUser($row) { $createdOn = new \DateTimeImmutable($row['created_on']); $updatedOn = new \DateTimeImmutable($row['updated_on']); $lastLogin = null === $row['last_login'] ? null : new \DateTimeImmutable($row['last_login']); $confirmationToken = null; if (null !== $row['confirmation_token_token']) { $confirmationToken = new UserToken($row['confirmation_token_token']); $this->set($confirmationToken, 'createdOn', new \DateTimeImmutable($row['confirmation_token_created_on'])); } $invitationToken = null; if (null !== $row['invitation_token_token']) { $invitationToken = new UserToken($row['invitation_token_token']); $this->set($invitationToken, 'createdOn', new \DateTimeImmutable($row['invitation_token_created_on'])); } $rememberPasswordToken = null; if (null !== $row['remember_password_token_token']) { $rememberPasswordToken = new UserToken($row['remember_password_token_token']); $this->set($rememberPasswordToken, 'createdOn', new \DateTimeImmutable($row['remember_password_token_created_on'])); } $user = User::signUp(new UserId($row['id']), new UserEmail($row['email']), UserPassword::fromEncoded($row['password'], $row['salt']), $this->rolesToArray($row['roles'])); $user = $this->set($user, 'createdOn', $createdOn); $user = $this->set($user, 'updatedOn', $updatedOn); $user = $this->set($user, 'lastLogin', $lastLogin); $user = $this->set($user, 'confirmationToken', $confirmationToken); $user = $this->set($user, 'invitationToken', $invitationToken); $user = $this->set($user, 'rememberPasswordToken', $rememberPasswordToken); return $user; }