public function testFindDefaultCalendars()
 {
     $doctrine = $this->getContainer()->get('doctrine');
     $userRepository = $doctrine->getRepository('OroUserBundle:User');
     $organizationRepository = $doctrine->getRepository('OroOrganizationBundle:Organization');
     $firstOrganization = $organizationRepository->getFirst();
     $firstOrganizationId = $firstOrganization->getId();
     $userIds = [];
     $expectedCalendars = [];
     $users = $userRepository->findBy(['organization' => $firstOrganization]);
     foreach ($users as $user) {
         $userId = $user->getId();
         $calendar = $this->repository->findDefaultCalendar($userId, $firstOrganizationId);
         if ($calendar) {
             $userIds[] = $userId;
             $expectedCalendars[] = $calendar;
         }
     }
     $this->assertEquals($expectedCalendars, $this->repository->findDefaultCalendars($userIds, $firstOrganizationId));
 }
 protected function connectCalendars()
 {
     /** @var \Oro\Bundle\UserBundle\Entity\User[] $users */
     $users = $this->user->findAll();
     // first user is admin, often
     /** @var \Oro\Bundle\UserBundle\Entity\User $admin */
     $admin = $this->user->find(1);
     /** @var Calendar $calendarAdmin */
     $calendarAdmin = $this->calendar->findDefaultCalendar($admin->getId(), $admin->getOrganization()->getId());
     /** @var \Oro\Bundle\UserBundle\Entity\User $sale */
     $sale = $this->user->findOneBy(['username' => 'sale']);
     /** @var Calendar $calendarSale */
     $calendarSale = $this->calendar->findDefaultCalendar($sale->getId(), $sale->getOrganization()->getId());
     /** @var \Oro\Bundle\UserBundle\Entity\User $market */
     $market = $this->user->findOneBy(['username' => 'marketing']);
     /** @var Calendar $calendarMarket */
     $calendarMarket = $this->calendar->findDefaultCalendar($market->getId(), $market->getOrganization()->getId());
     $i = 0;
     while ($i <= 5) {
         //get random user
         $userId = mt_rand(2, count($users) - 1);
         $user = $users[$userId];
         unset($users[$userId]);
         $users = array_values($users);
         if (in_array($user->getId(), [$admin->getId(), $sale->getId(), $market->getId()])) {
             //to prevent self assignment
             continue;
         }
         /** @var Calendar $calendar */
         $calendar = $this->calendar->findDefaultCalendar($user->getId(), $user->getOrganization()->getId());
         if (mt_rand(0, 1)) {
             $calendarProperty = new CalendarProperty();
             $calendarProperty->setTargetCalendar($calendarAdmin)->setCalendarAlias('user')->setCalendar($calendar->getId());
             $this->persist($this->container->get('doctrine.orm.entity_manager'), $calendarProperty);
         }
         if (mt_rand(0, 1)) {
             $calendarProperty = new CalendarProperty();
             $calendarProperty->setTargetCalendar($calendarSale)->setCalendarAlias('user')->setCalendar($calendar->getId());
             $this->persist($this->container->get('doctrine.orm.entity_manager'), $calendarProperty);
         }
         if (mt_rand(0, 1)) {
             $calendarProperty = new CalendarProperty();
             $calendarProperty->setTargetCalendar($calendarMarket)->setCalendarAlias('user')->setCalendar($calendar->getId());
             $this->persist($this->container->get('doctrine.orm.entity_manager'), $calendarProperty);
         }
         $this->persist($this->container->get('doctrine.orm.entity_manager'), $calendar);
         $i++;
     }
     $this->flush($this->container->get('doctrine.orm.entity_manager'));
 }
示例#3
0
 protected function connectCalendars()
 {
     // first user is admin, often
     /** @var \Oro\Bundle\UserBundle\Entity\User $admin */
     $admin = $this->user->find(1);
     /** @var Calendar $calendarAdmin */
     $calendarAdmin = $this->calendar->findDefaultCalendar($admin->getId(), $admin->getOrganization()->getId());
     /** @var \Oro\Bundle\UserBundle\Entity\User $sale */
     $sale = $this->user->findOneBy(['username' => 'sale']);
     /** @var Calendar $calendarSale */
     $calendarSale = $this->calendar->findDefaultCalendar($sale->getId(), $sale->getOrganization()->getId());
     /** @var \Oro\Bundle\UserBundle\Entity\User $market */
     $market = $this->user->findOneBy(['username' => 'marketing']);
     /** @var Calendar $calendarMarket */
     $calendarMarket = $this->calendar->findDefaultCalendar($market->getId(), $market->getOrganization()->getId());
     /** @var User[] $users */
     $users = $this->getRandomUsers();
     foreach ($users as $user) {
         if (in_array($user->getId(), [$admin->getId(), $sale->getId(), $market->getId()])) {
             //to prevent self assignment
             continue;
         }
         /** @var Calendar $calendar */
         $calendar = $this->calendar->findDefaultCalendar($user->getId(), $user->getOrganization()->getId());
         if (mt_rand(0, 1)) {
             $calendarProperty = new CalendarProperty();
             $calendarProperty->setTargetCalendar($calendarAdmin)->setCalendarAlias('user')->setCalendar($calendar->getId());
             $this->em->persist($calendarProperty);
         }
         if (mt_rand(0, 1)) {
             $calendarProperty = new CalendarProperty();
             $calendarProperty->setTargetCalendar($calendarSale)->setCalendarAlias('user')->setCalendar($calendar->getId());
             $this->em->persist($calendarProperty);
         }
         if (mt_rand(0, 1)) {
             $calendarProperty = new CalendarProperty();
             $calendarProperty->setTargetCalendar($calendarMarket)->setCalendarAlias('user')->setCalendar($calendar->getId());
             $this->em->persist($calendarProperty);
         }
         $this->em->persist($calendar);
     }
     $this->em->flush();
 }
 /**
  * @param User $user
  * @return null|Calendar
  */
 protected function getDefaultUserCalendar(User $user)
 {
     return $this->calendarRepository->findDefaultCalendar($user->getId(), $user->getOrganization()->getId());
 }