function testFilterAreaAndIncludeAreaAndIncludeVenue() { $this->addCountriesToTestDB(); $countryRepo = new CountryRepository(); $areaRepo = new AreaRepository(); $userRepo = new UserAccountRepository(); $siteRepo = new SiteRepository(); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo->create($site, $user, array($countryRepo->loadByTwoCharCode('GB')), $this->getSiteQuotaUsedForTesting()); $area = new AreaModel(); $area->setTitle("test"); $area->setDescription("test test"); $areaRepo->create($area, null, $site, $countryRepo->loadByTwoCharCode('GB'), $user); $areaRepo->buildCacheAreaHasParent($area); ######################## For now just test it doesn't crash, I commited a bug that did crash here $erb = new EventRepositoryBuilder(); $erb->setArea($area); $erb->setIncludeVenueInformation(true); $erb->setIncludeAreaInformation(true); $erb->fetchAll(); }
public function pastEventsCount($data) { $erb = new EventRepositoryBuilder(); $erb->setBeforeNow(); $erb->setIncludeCancelled(true); $erb->setIncludeDeleted(false); if ($data instanceof \models\AreaModel) { $erb->setArea($data); } return $erb->fetchCount(); }
public function markDuplicateWithMetaData(AreaModel $duplicateArea, AreaModel $originalArea, AreaEditMetaDataModel $areaEditMetaDataModel) { global $DB; if ($duplicateArea->getId() == $originalArea->getId()) { return; } try { $DB->beginTransaction(); $duplicateArea->setIsDuplicateOfId($originalArea->getId()); $duplicateArea->setIsDeleted(true); $this->areaDBAccess->update($duplicateArea, array('is_duplicate_of_id', 'is_deleted'), $areaEditMetaDataModel); // Move Venues $venueDBAccess = new VenueDBAccess($DB, new \TimeSource()); $vrb = new VenueRepositoryBuilder(); $vrb->setArea($duplicateArea); $venueEditMetaData = new VenueEditMetaDataModel(); $venueEditMetaData->setUserAccount($areaEditMetaDataModel->getUserAccount()); foreach ($vrb->fetchAll() as $venue) { $venue->setAreaId($originalArea->getId()); $venueDBAccess->update($venue, array('area_id'), $venueEditMetaData); } // Move Events $eventRepoBuilder = new EventRepositoryBuilder(); $eventRepoBuilder->setArea($duplicateArea); $eventDBAccess = new EventDBAccess($DB, new \TimeSource()); $eventEditMetaData = new EventEditMetaDataModel(); $eventEditMetaData->setUserAccount($areaEditMetaDataModel->getUserAccount()); foreach ($eventRepoBuilder->fetchAll() as $event) { // Check Area actually matches here because we may get events at a venue. // Based on the order we do things in (ie Move Venue, Move Event) we shouldn't but let's be safe. if ($event->getAreaId() == $duplicateArea->getId() && $event->getVenueId() == null) { $event->setAreaId($originalArea->getId()); $eventDBAccess->update($event, array('area_id'), $eventEditMetaData); } } // Move Child Areas $areaRepoBuilder = new AreaRepositoryBuilder(); $areaRepoBuilder->setParentArea($duplicateArea); $areaRepoBuilder->setIncludeParentLevels(0); $flag = false; foreach ($areaRepoBuilder->fetchAll() as $area) { // lets just double check we haven't got any child areas. if ($area->getParentAreaId() == $duplicateArea->getId()) { $area->setParentAreaId($originalArea->getId()); $this->areaDBAccess->update($area, array('parent_area_id'), $areaEditMetaDataModel); $flag = true; } } if ($flag) { // now must clear caches $this->deleteParentCacheForArea($originalArea); $this->deleteParentCacheForArea($duplicateArea); } $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }
function testInChildArea() { $this->addCountriesToTestDB(); TimeSource::mock(2013, 7, 1, 7, 0, 0); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $area1 = new AreaModel(); $area1->setTitle("scotland"); $area1child = new AreaModel(); $area1child->setTitle("edinburgh"); $area2 = new AreaModel(); $area2->setTitle("england"); $areaRepo = new AreaRepository(); $countryRepo = new CountryRepository(); $areaRepo->create($area1, null, $site, $countryRepo->loadByTwoCharCode('GB'), $user); $areaRepo->buildCacheAreaHasParent($area1); $areaRepo->create($area1child, $area1, $site, $countryRepo->loadByTwoCharCode('GB'), $user); $areaRepo->buildCacheAreaHasParent($area1child); $areaRepo->create($area2, null, $site, $countryRepo->loadByTwoCharCode('GB'), $user); $areaRepo->buildCacheAreaHasParent($area2); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setStartAt($this->mktime(2013, 8, 1, 19, 0, 0)); $event->setEndAt($this->mktime(2013, 8, 1, 21, 0, 0)); $event->setAreaId($area1child->getId()); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); #test - find in erb $erb = new EventRepositoryBuilder(); $erb->setSite($site); $erb->setArea($area1); $events = $erb->fetchAll(); $this->assertEquals(1, count($events)); $this->assertEquals($event->getId(), $events[0]->getId()); #test - find in erb $erb = new EventRepositoryBuilder(); $erb->setSite($site); $erb->setArea($area1child); $events = $erb->fetchAll(); $this->assertEquals(1, count($events)); $this->assertEquals($event->getId(), $events[0]->getId()); #test - don't find in erb $erb = new EventRepositoryBuilder(); $erb->setSite($site); $erb->setArea($area2); $events = $erb->fetchAll(); $this->assertEquals(0, count($events)); }