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')); }
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()); }