function it_execute_action(UserRepository $userRepository, CredentialsRepository $credentialsRepository, EncoderFactoryInterface $encoderFactory, EventDispatcherInterface $eventDispatcher, PasswordEncoderInterface $passwordEncoder, User $user, Credentials $credentials, RegisterUserAction $action) { // Mocks $action->getUsername()->willReturn('mattketmo'); $action->getDisplayName()->willReturn('Matthieu Moquet'); $action->getEmail()->willReturn('*****@*****.**'); $action->getPassword()->willReturn('super_passw0rd'); $action->getPreferredLocale()->willReturn('fr_FR'); $encoderFactory->getEncoder($user)->willReturn($passwordEncoder); $passwordEncoder->encodePassword('super_passw0rd', Argument::type('string'))->willReturn('encoded_password=='); $userRepository->createNew(Argument::exact(new Username('mattketmo')))->willReturn($user); $credentialsRepository->createNew($user, 'encoded_password==', Argument::type('string'))->shouldBeCalled()->willReturn($credentials); $user->setName(Argument::exact(new Name('Matthieu Moquet')))->shouldBeCalled()->willReturn($user); $user->setEmail(Argument::exact(new Email('*****@*****.**')))->shouldBeCalled()->willReturn($user); $user->setPreferredLocale(Argument::exact(Locale::parse('fr_FR')))->shouldBeCalled()->willReturn($user); $userRepository->save($user)->shouldBeCalled(); $credentialsRepository->save($credentials)->shouldBeCalled(); $this->execute($action)->shouldReturn($user); }
public function execute(RegisterUserAction $action) { $username = new Username($action->getUsername()); $password = $action->getPassword(); $email = new Email($action->getEmail()); $displayName = new Name($action->getDisplayName()); $preferredLocale = Locale::parse($action->getPreferredLocale()); $user = $this->userRepository->createNew($username); $user->setName($displayName)->setEmail($email)->setPreferredLocale($preferredLocale); $encoder = $this->encoderFactory->getEncoder($user); $salt = md5(uniqid(null, true)); $password = $encoder->encodePassword($password, $salt); $credentials = $this->credentialsRepository->createNew($user, $password, $salt); $this->userRepository->save($user); $this->credentialsRepository->save($credentials); return $user; }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $errOutput = $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output; $action = new RegisterUserAction(); $action->setUsername($input->getOption('username')); $action->setDisplayName($input->getOption('display-name')); $action->setEmail($input->getOption('email')); $action->setPassword($input->getOption('password')); $validator = $this->getContainer()->get('validator'); $violations = $validator->validate($action); if (count($violations) > 0) { $errOutput->writeln('<comment>There are some errors:</comment>'); foreach ($violations as $violation) { $errOutput->writeln(sprintf(' - %s: <error>%s</error>', $violation->getPropertyPath(), $violation->getMessage())); } return 1; } $user = $this->getContainer()->get('openl10n.processor.register_user')->execute($action); $output->writeln(sprintf('<info>User <comment>%s</comment> created</info>', $user->getUsername())); }