Example #1
0
 public function setUp()
 {
     $this->id = ReminderId::generate();
     $this->email = new Email('*****@*****.**');
     $this->code = ReminderCode::generate();
     $this->timestamp = Carbon::create(2014, 10, 11, 10, 23, 34);
     Carbon::setTestNow($this->timestamp);
     $this->reminder = new Reminder($this->id, $this->email, $this->code);
 }
Example #2
0
 public function setUp()
 {
     $id = UserId::generate();
     $email = new Email('*****@*****.**');
     $username = new Username('username');
     $password = new HashedPassword('qwerty123');
     $this->user = User::register($id, $email, $username, $password);
     $this->fixture = ['id' => ReminderId::generate(), 'code' => ReminderCode::generate(), 'email' => new Email('*****@*****.**')];
     $this->users = m::mock('Cribbb\\Domain\\Model\\Identity\\UserRepository');
     $this->reminders = m::mock('Cribbb\\Domain\\Model\\Identity\\ReminderRepository');
     $this->hasher = m::mock('Cribbb\\Domain\\Services\\Identity\\HashingService');
     $this->service = new ReminderService($this->reminders, $this->users, $this->hasher);
 }
Example #3
0
 /**
  * Load the User fixtures
  *
  * @param ObjectManager $manager
  * @return void
  */
 public function load(ObjectManager $manager)
 {
     // Create valid Reminder
     $id = ReminderId::generate();
     $email = new Email('*****@*****.**');
     $code = ReminderCode::fromNative('code+99');
     $reminder = new Reminder($id, $email, $code);
     $manager->persist($reminder);
     // Create expired Reminder
     Carbon::setTestNow(Carbon::create(2014, 10, 11, 10, 23, 34));
     $id = ReminderId::generate();
     $email = new Email('*****@*****.**');
     $code = ReminderCode::fromNative('code+1');
     $reminder = new Reminder($id, $email, $code);
     Carbon::setTestNow();
     $manager->persist($reminder);
     $manager->flush();
 }
 /**
  * Delete a Reminder by it's ReminderCode
  *
  * @param RemindeCode $code
  * @return void
  */
 public function deleteReminderByCode(ReminderCode $code)
 {
     $query = $this->em->createQuery('DELETE Cribbb\\Domain\\Model\\Identity\\Reminder r WHERE r.code = :code');
     $query->setParameters(['code' => $code->toString()]);
     $query->execute();
 }
Example #5
0
 /**
  * Reset a user's password
  *
  * @param string $email
  * @param string $password
  * @param string $code
  * @return User;
  */
 public function reset($email, $password, $code)
 {
     if ($this->check($email, $code)) {
         $user = $this->findUserByEmail(Email::fromNative($email));
         $password = $this->hasher->hash(new Password($password));
         $user->resetPassword($password);
         $this->users->update($user);
         $this->reminders->deleteReminderByCode(ReminderCode::fromNative($code));
         return $user;
     }
     throw new InvalidValueException("{$code} is not a valid reminder code");
 }
Example #6
0
 /** @test */
 public function should_return_as_string()
 {
     $code = ReminderCode::fromNative('D1zcA5ncaEHzmjvCGjJIt3Kd8sGxTTtE7DkathqB');
     $this->assertEquals('D1zcA5ncaEHzmjvCGjJIt3Kd8sGxTTtE7DkathqB', $code->toString());
     $this->assertEquals('D1zcA5ncaEHzmjvCGjJIt3Kd8sGxTTtE7DkathqB', (string) $code);
 }
Example #7
0
 /**
  * Set the Reminder Code
  *
  * @param ReminderCode $code
  * @return void
  */
 private function setCode(ReminderCode $code)
 {
     $this->code = $code->toString();
 }
 /** @test */
 public function should_delete_expired_reminders()
 {
     $this->executor->execute($this->loader->getFixtures());
     $code = ReminderCode::fromNative('code+1');
     $email = new Email('*****@*****.**');
     $this->repository->deleteExpiredReminders();
     $reminder = $this->repository->findReminderByEmailAndCode($email, $code);
     $this->assertEquals(null, $reminder);
 }