public function testSetEmailSeenChanges()
 {
     $emailUser = $this->getMock('Oro\\Bundle\\EmailBundle\\Entity\\EmailUser');
     $emailUser->expects($this->once())->method('isSeen')->will($this->returnValue(false));
     $emailUser->expects($this->once())->method('setSeen')->with(true);
     $this->em->expects($this->once())->method('flush');
     $this->manager->setEmailUserSeen($emailUser);
 }
Beispiel #2
0
 public function testToggleEmailUserSeen()
 {
     $threadArray = [new EmailUser()];
     $emailUser = $this->getMockBuilder('Oro\\Bundle\\EmailBundle\\Entity\\EmailUser')->setMethods(['getEmail', 'getThread', 'getId', 'setSeen', 'isSeen', 'getOwner'])->disableOriginalConstructor()->getMock();
     $emailUser->expects($this->exactly(2))->method('getEmail')->will($this->returnSelf());
     $emailUser->expects($this->exactly(2))->method('getThread')->will($this->returnSelf());
     $emailUser->expects($this->once())->method('getId')->will($this->returnValue(1));
     $emailUser->expects($this->once())->method('setSeen')->with(false);
     $emailUser->expects($this->exactly(2))->method('isSeen')->will($this->returnValue(true));
     $emailUser->expects($this->exactly(2))->method('getOwner')->will($this->returnValue(true));
     $this->em->expects($this->once())->method('flush');
     $this->em->expects($this->exactly(2))->method('persist');
     $this->queryBuilder->expects($this->once())->method('getQuery')->will($this->returnValue($this->queryBuilder));
     $this->queryBuilder->expects($this->once())->method('getResult')->will($this->returnValue($threadArray));
     $this->em->expects($this->once())->method('getRepository')->will($this->returnValue($this->em));
     $this->em->expects($this->once())->method('getEmailUserByThreadId')->will($this->returnValue($this->queryBuilder));
     $this->manager->toggleEmailUserSeen($emailUser);
 }
Beispiel #3
0
 /**
  * @dataProvider dataSeenProvider
  *
  * @param bool $isSeen
  * @param int $setSeenCalls
  */
 public function testMarkAllEmailsAsSeen($isSeen, $setSeenCalls)
 {
     $user = $this->getMockBuilder('Oro\\Bundle\\UserBundle\\Entity\\User')->disableOriginalConstructor()->getMock();
     $organization = $this->getMockBuilder('Oro\\Bundle\\OrganizationBundle\\Entity\\Organization')->disableOriginalConstructor()->getMock();
     $emailUser = $this->getMock('Oro\\Bundle\\EmailBundle\\Entity\\EmailUser');
     $emailUser->expects($this->once())->method('isSeen')->will($this->returnValue($isSeen));
     $emailUser->expects($this->exactly($setSeenCalls))->method('setSeen')->with(true);
     $this->em->expects($this->once())->method('flush');
     $repository = $this->getMockBuilder('Oro\\Bundle\\EmailBundle\\Entity\\Repository\\EmailUserRepository')->setMethods(['createQueryBuilder', 'getQuery', 'getResult', 'findUnseenUserEmail'])->disableOriginalConstructor()->getMock();
     $this->em->expects($this->once())->method('getRepository')->will($this->returnValue($repository));
     $repository->expects($this->once())->method('findUnseenUserEmail')->will($this->returnValue($repository));
     $repository->expects($this->once())->method('getQuery')->will($this->returnValue($repository));
     $repository->expects($this->once())->method('getResult')->will($this->returnValue([$emailUser]));
     $this->manager->markAllEmailsAsSeen($user, $organization);
 }
Beispiel #4
0
 public function testSetSeenStatus()
 {
     $user = new User();
     $organization = new Organization();
     $email = new Email();
     $emailUsers = [new EmailUser(), new EmailUser(), new EmailUser()];
     array_map(function (EmailUser $emailUser) use($email) {
         $emailUser->setEmail($email);
         $this->assertFalse($emailUser->isSeen());
     }, $emailUsers);
     $this->securityFacade->expects($this->once())->method('getLoggedUser')->willReturn($user);
     $this->securityFacade->expects($this->once())->method('getOrganization')->willReturn($organization);
     $emailUsersRepo = $this->getMockBuilder('Oro\\Bundle\\EmailBundle\\Entity\\Repository\\EmailUserRepository')->disableOriginalConstructor()->getMock();
     $emailUsersRepo->expects($this->once())->method('getAllEmailUsersByEmail')->with($email, $user, $organization, false)->willReturn($emailUsers);
     $this->em->expects($this->once())->method('getRepository')->with('OroEmailBundle:EmailUser')->willReturn($emailUsersRepo);
     $this->manager->setSeenStatus($email, true);
     array_map(function (EmailUser $emailUser) use($email) {
         $this->assertTrue($emailUser->isSeen());
     }, $emailUsers);
 }
 /**
  * @param array $options
  */
 protected function handleThreadEmails($options)
 {
     $iteration = 0;
     $markType = $options['mark_type'];
     if (!$this->needToProcessThreadIds) {
         return;
     }
     $queryBuilder = $this->entityManager->getRepository('OroEmailBundle:EmailUser')->getEmailUserByThreadId($this->needToProcessThreadIds, $this->user);
     $result = $queryBuilder->getQuery()->iterate();
     foreach ($result as $entity) {
         $entity = $entity[0];
         if ($this->securityFacade->isGranted('EDIT', $entity)) {
             $this->emailManager->setEmailUserSeen($entity, $markType === self::MARK_READ);
         }
         $this->entityManager->persist($entity);
         if ($iteration % self::FLUSH_BATCH_SIZE === 0) {
             $this->entityManager->flush();
             $this->entityManager->clear();
         }
         $iteration++;
     }
     $this->entityManager->flush();
 }