public function testResetPassword() { $emailAddress = '*****@*****.**'; $diamanteUser = new DiamanteUser($emailAddress, null, 'firstName', 'lastName'); $apiUser = new ApiUser($emailAddress, null); $this->diamanteUserRepository->expects($this->once())->method('findUserByEmail')->with($this->equalTo($emailAddress))->will($this->returnValue($diamanteUser)); $this->apiUserRepository->expects($this->once())->method('findUserByEmail')->with($this->equalTo($emailAddress))->will($this->returnValue($apiUser)); $this->apiUserRepository->expects($this->once())->method('store')->with($apiUser); $this->resetPasswordMailer->expects($this->once())->method('sendResetEmail')->with($emailAddress, $apiUser->getHash()); $command = new ResetPasswordCommand(); $command->email = $emailAddress; $this->resetPasswordService->resetPassword($command); }
public function testRegister() { $apiUser = $this->createApiUser(); $diamanteUser = $this->createDiamanteUser(); $this->diamanteUserFactory->expects($this->once())->method('create')->with($diamanteUser->getEmail(), $diamanteUser->getFirstName(), $diamanteUser->getLastName())->will($this->returnValue($diamanteUser)); $this->apiUserFactory->expects($this->once())->method('create')->with($apiUser->getEmail(), $apiUser->getPassword())->will($this->returnValue($apiUser)); $this->diamanteUserRepository->expects($this->once())->method('store')->with($diamanteUser); $this->registrationMailer->expects($this->once())->method('sendConfirmationEmail')->with($diamanteUser->getEmail(), $apiUser->getHash()); $command = new RegisterCommand(); $command->email = $diamanteUser->getEmail(); $command->password = $apiUser->getPassword(); $command->firstName = $diamanteUser->getFirstName(); $command->lastName = $diamanteUser->getLastName(); $this->service->register($command); }
/** * @expectedException \Symfony\Component\Security\Core\Exception\AuthenticationException * @expectedExceptionMessage Attempt of unauthorized access */ public function testGetCurrentUserWithNoDiamanteUser() { $apiUser = $this->createApiUser(); $this->authorizationService->expects($this->once())->method('getLoggedUser')->will($this->returnValue($apiUser)); $this->diamanteUserRepository->expects($this->once())->method('findUserByEmail')->with($apiUser->getEmail())->will($this->returnValue(null)); $this->service->getCurrentUser(); }
public function testNotifyWithEmptyAuthor() { $ticketUniqueId = UniqueId::generate(); $reporter = new UserAdapter(1, UserAdapter::TYPE_DIAMANTE); $assignee = new User(); $assignee->setId(2); $assignee->setEmail('*****@*****.**'); $author = null; $branch = new Branch('KEY', 'Name', 'Description'); $ticket = new Ticket($ticketUniqueId, new TicketSequenceNumber(1), 'Subject', 'Description', $branch, $reporter, $assignee, new Source(Source::WEB), new Priority(Priority::PRIORITY_MEDIUM), new Status(Status::NEW_ONE)); $notification = new TicketNotification((string) $ticketUniqueId, $author, 'Header', 'Subject', new \ArrayIterator(array('key' => 'value')), array('file.ext')); $message = new \Swift_Message(); $this->watchersService->expects($this->once())->method('getWatchers')->will($this->returnValue([new WatcherList($ticket, 'diamante_1')])); $this->diamanteUserRepository->expects($this->exactly(2))->method('get')->with(1)->will($this->returnValue($this->diamanteUser)); $this->configManager->expects($this->once())->method('get')->will($this->returnValue('*****@*****.**')); $this->nameFormatter->expects($this->once())->method('format')->with($this->diamanteUser)->will($this->returnValue('First Last')); $this->mailer->expects($this->once())->method('createMessage')->will($this->returnValue($message)); $this->ticketRepository->expects($this->once())->method('getByUniqueId')->with($ticketUniqueId)->will($this->returnValue($ticket)); $this->templateResolver->expects($this->any())->method('resolve')->will($this->returnValueMap(array(array($notification, TemplateResolver::TYPE_TXT, 'txt.template.html'), array($notification, TemplateResolver::TYPE_HTML, 'html.template.html')))); $optionsConstraint = $this->logicalAnd($this->arrayHasKey('changes'), $this->arrayHasKey('attachments'), $this->arrayHasKey('user'), $this->arrayHasKey('header'), $this->contains($notification->getChangeList()), $this->contains($notification->getAttachments()), $this->contains('First Last'), $this->contains($notification->getHeaderText())); $this->twig->expects($this->at(0))->method('render')->with('txt.template.html', $optionsConstraint)->will($this->returnValue('Rendered TXT template')); $this->twig->expects($this->at(1))->method('render')->with('html.template.html', $optionsConstraint)->will($this->returnValue('Rendered HTML template')); $this->mailer->expects($this->once())->method('send')->with($this->logicalAnd($this->isInstanceOf('\\Swift_Message'), $this->callback(function (\Swift_Message $other) use($notification) { $to = $other->getTo(); return false !== strpos($other->getSubject(), $notification->getSubject()) && false !== strpos($other->getSubject(), 'KEY-1') && false !== strpos($other->getBody(), 'Rendered TXT template') && array_key_exists('*****@*****.**', $to) && $other->getHeaders()->has('References') && false !== strpos($other->getHeaders()->get('References'), '*****@*****.**') && false !== strpos($other->getHeaders()->get('References'), '*****@*****.**'); }))); $this->messageReferenceRepository->expects($this->once())->method('findAllByTicket')->with($ticket)->will($this->returnValue(array(new MessageReference('*****@*****.**', $ticket), new MessageReference('*****@*****.**', $ticket)))); $this->messageReferenceRepository->expects($this->once())->method('store')->with($this->logicalAnd($this->isInstanceOf('\\Diamante\\DeskBundle\\Model\\Ticket\\EmailProcessing\\MessageReference'))); $notifier = new EmailNotifier($this->container, $this->twig, $this->mailer, $this->templateResolver, $this->ticketRepository, $this->messageReferenceRepository, $this->userService, $this->nameFormatter, $this->diamanteUserRepository, $this->configManager, $this->oroUserManager, $this->watchersService, $this->senderHost); $notifier->notify($notification); }
public function testProcessWhenMessageWithReference() { $message = new Message(self::DUMMY_UNIQUE_ID, self::DUMMY_MESSAGE_ID, self::DUMMY_SUBJECT, self::DUMMY_CONTENT, $this->getDummyFrom(), self::DUMMY_MESSAGE_TO, self::DUMMY_REFERENCE); $diamanteUser = $this->getDiamanteUser(); $this->diamanteUserRepository->expects($this->once())->method('findUserByEmail')->with($this->equalTo(self::DUMMY_MESSAGE_FROM))->will($this->returnValue($diamanteUser)); $reporter = $this->getReporter($diamanteUser->getId()); $this->messageReferenceService->expects($this->once())->method('createCommentForTicket')->with($this->equalTo($message->getContent()), $reporter, $message->getReference()); $this->ticketStrategy->process($message); }
/** * @test */ public function testSearchWithNotEmptyQuery() { $query = 'Name'; $expectedDiamanteUsers = 1; $expectedOroUsers = 3; $totalExpectedResult = $expectedDiamanteUsers + $expectedOroUsers; $this->userService->expects($this->once())->method('getGravatarLink')->with($this->equalTo('*****@*****.**', DiamanteUserSearchHandler::AVATAR_SIZE)); $this->diamanteUserRepository->expects($this->once())->method('searchByInput')->with($this->equalTo($query), $this->equalTo($this->getProperties()))->will($this->returnValue($this->getDiamanteUsersCollection($expectedDiamanteUsers, $query))); $this->userSearchHandler->expects($this->once())->method('search')->with($this->equalTo($query), 1, 10)->will($this->returnValue(array('results' => $this->getOroUsersCollection($expectedOroUsers, $query), 'more' => false))); $result = $this->diamanteUserSearchHandler->search($query, 1, 10); $this->assertInternalType('array', $result); $this->assertTrue(array_key_exists('results', $result)); $this->assertEquals($totalExpectedResult, count($result['results'])); foreach ($result['results'] as $item) { $this->assertStringEndsWith($query, $item['firstName']); } }
/** * @test * @expectedException \RuntimeException * @expectedExceptionMessage User loading failed. User not found */ public function testThrowsExceptionIfUserNotFound() { $userValueObject = new User(1, User::TYPE_DIAMANTE); $this->diamanteUserRepository->expects($this->once())->method('get')->with($this->equalTo($userValueObject->getId()))->will($this->returnValue(null)); $this->diamanteUserService->getByUser($userValueObject); }