public function createShow($show_name) { $show = new Show(); $show->setName($show_name)->setCategory('drama')->setAuthorisedBy($this->getAuthoriseUser()); $em = $this->getEntityManager(); $em->persist($show); $em->flush(); return $show; }
public function testIsOwner_ExternalUserIsOwner() { $user = new User(); $user->setEmail('*****@*****.**'); $external_user = new ExternalUser(); $external_user->setUser($user)->setUsername('testuser'); $show = new Show(); $show->setName('Test Show'); $this->repository->expects($this->once())->method('aceExists')->with($user, $show)->will($this->returnValue(false)); $this->assertFalse($this->aclProvider->isOwner($user, $show)); }
public function testCreateEventFromShows() { $s1 = new Show(); $s1->setName('Test Show 1'); $s1->setSlug('test-show-1'); $p1 = new Performance(); $p1->setStartDate(new \DateTime('2013-04-01')); $p1->setEndDate(new \DateTime('2013-04-02')); $p1->setTime(new \DateTime('19:30')); $p1->setShow($s1); $s1->addPerformance($p1); $s2 = new Show(); $s2->setName('Test Show 2'); $s2->setSlug('test-show-2'); $p2 = new Performance(); $p2->setStartDate(new \DateTime('2013-02-10')); $p2->setEndDate(new \DateTime('2013-02-15')); $p2->setTime(new \DateTime('19:45')); $p2->setShow($s2); $s2->addPerformance($p2); $p3 = new Performance(); $p3->setStartDate(new \DateTime('2013-02-15')); $p3->setEndDate(new \DateTime('2013-02-15')); $p3->setTime(new \DateTime('14:30')); $p3->setShow($s2); $s2->addPerformance($p3); $events = $this->diaryHelper->createEventsFromShows(array($s1, $s2)); $this->assertEquals(3, count($events)); $this->assertEquals(new \DateTime('2013-04-01'), $events[0]->getStartDate()); $this->assertEquals(new \DateTime('2013-02-10'), $events[1]->getStartDate()); $this->assertEquals(new \DateTime('2013-02-15'), $events[2]->getStartDate()); }
/** * {@inheritDoc} */ public function load(ObjectManager $manager) { $file = __DIR__ . '/../../Resources/data/shows.yml'; $plays = Yaml::parse(file_get_contents($file)); $max = count($plays) - 1; mt_srand(microtime(true)); $start_date = new \DateTime('-6 months'); $end_date = new \DateTime('+18 months'); $diff = $end_date->diff($start_date, true); $total_weeks = $diff->days / 7; $this->person_repo = $manager->getRepository('ActsCamdramBundle:Person'); $this->people_ids = array_map(function ($val) { return $val['id']; }, $this->person_repo->createQueryBuilder('p')->select('p.id')->getQuery()->getArrayResult()); $this->venue_repo = $manager->getRepository('ActsCamdramBundle:Venue'); $this->venue_ids = array_map(function ($val) { return $val['id']; }, $this->venue_repo->createQueryBuilder('v')->select('v.id')->getQuery()->getArrayResult()); $this->society_repo = $manager->getRepository('ActsCamdramBundle:Society'); $this->society_ids = array_map(function ($val) { return $val['id']; }, $this->society_repo->createQueryBuilder('s')->select('s.id')->getQuery()->getArrayResult()); for ($i = 0; $i < 250; $i++) { $show = new Show(); $play = $plays[mt_rand(0, $max)]; $show->setName($play['name']); $show->setDescription($play['description']); $show->setAuthor($play['author']); $show->setCategory($play['category']); $show->setAuthorisedBy($this->getReference('adminuser')); $this->allocateSociety($show); $start = clone $start_date; $start->modify('+' . mt_rand(0, $total_weeks) . ' weeks'); $manager->persist($show); //Use a random number to decide what sort of show it is... $type = mt_rand(0, 8); switch ($type) { case 0: case 1: case 2: case 3: case 4: //A week-long run of a show $offset = mt_rand(1, 3); $start->modify('+' . $offset . ' days'); $end = clone $start; $end->modify('+' . mt_rand(3, 7 - $offset) . ' days'); $p = $this->generatePerformance($show, $start, $end); $this->allocateVenue($show); $show->addPerformance($p); $manager->persist($p); break; case 5: //A one-night show $start->modify('+' . mt_rand(0, 6) . ' days'); $p = $this->generatePerformance($show, $start, $start); $manager->persist($p); $this->allocateVenue($show); $show->addPerformance($p); break; case 6: //a muli-venue tour $num_perfs = mt_rand(2, 9); $start->modify('+' . mt_rand(0, 5) . ' days'); for ($j = 0; $j <= $num_perfs; $j++) { $start->modify('+' . mt_rand(1, 3) . ' days'); $p = $this->generatePerformance($show, clone $start, clone $start); $p->setShow($show); $this->allocateVenue($p); $show->addPerformance($p); $manager->persist($p); } break; case 7: case 8: //a multi-week show $offset = mt_rand(1, 3); $start->modify('+' . $offset . ' days'); $end = clone $start; $end->modify('+' . mt_rand(3, 7 - $offset) . ' days'); $this->allocateVenue($show); for ($j = 0; $j <= 2; $j++) { $start->modify('+1 week'); $end->modify('+1 week'); $p = $this->generatePerformance($show, clone $start, clone $end); $p->setShow($show); $show->addPerformance($p); $manager->persist($p); } break; } $roles = $this->generateRoles($play['characters'], $play['category'] == 'musical'); foreach ($roles as $role) { $show->addRole($role); $role->setShow($show); $manager->persist($role); } if (mt_rand(0, 1) == 1) { $this->addAuditions($manager, $show); } if (mt_rand(0, 1) == 1) { $this->addApplications($manager, $show); } if (mt_rand(0, 1) == 1) { $this->addTechieAdverts($manager, $show); } } $manager->flush(); }