function it_cannot_send_token_when_email_was_not_valid(ConfirmationSubjectInterface $subject, TokenProviderInterface $tokenProvider)
 {
     $tokenProvider->generateUniqueToken()->shouldBeCalled()->willReturn('foobar');
     $subject->setConfirmationType('email')->shouldBeCalled();
     $subject->confirmationRequest('foobar')->shouldBeCalled();
     $subject->getConfirmationChannel('customer.email')->shouldBeCalled()->willReturn('a_invalid_email');
     $this->shouldThrow('DoS\\UserBundle\\Confirmation\\Exception\\NotFoundChannelException')->duringSend($subject);
 }
 /**
  * {@inheritdoc}
  */
 public function send(ConfirmationSubjectInterface $subject)
 {
     $subject->confirmationDisableAccess();
     $subject->setConfirmationType($this->getType());
     $subject->confirmationRequest($token = $this->tokenProvider->generateUniqueToken());
     $this->sendToken($subject, $token);
     if (!$this->isValid) {
         return;
     }
     $this->manager->persist($subject);
     $this->manager->flush();
     $this->storage->setData(self::STORE_KEY, $subject->getConfirmationToken());
 }