/** * @param User $user * @param ContactInterface $contact */ protected function archiveEmail(User $user, ContactInterface $contact) { if ($contact->getMainEmail() !== $user->getEmail()) { if ($contact->getMainEmail()) { $hasEmail = false; /** @var Email $email */ foreach ($contact->getEmails() as $email) { if ($email->getEmail() === $contact->getMainEmail()) { $hasEmail = true; } } if (!$hasEmail) { $email = new Email(); $email->setEmail($contact->getMainEmail()); /** @var EmailType $emailType */ $emailType = $this->entityManager->getRepository(EmailType::class)->find(1); if ($emailType) { $email->setEmailType($emailType); $contact->addEmail($email); } } } $contact->setMainEmail($user->getEmail()); } }
public function testSendEmailActionMultipleTimes() { $client = $this->createAuthenticatedClient(); $client->enableProfiler(); $client->request('GET', '/security/reset/email', ['user' => $this->user1->getUsername()]); $response = json_decode($client->getResponse()->getContent()); // asserting response $this->assertEquals(200, $client->getResponse()->getStatusCode()); $this->assertEquals($this->user1->getEmail(), $response->email); // second request should be blocked $client->request('GET', '/security/reset/email', ['user' => $this->user1->getUsername()]); $response = json_decode($client->getResponse()->getContent()); $mailCollector = $client->getProfile()->getCollector('swiftmailer'); // asserting response $this->assertEquals(400, $client->getResponse()->getStatusCode()); $this->assertEquals(1003, $response->code); $this->assertEquals(0, $mailCollector->getMessageCount()); }