function test1() { $this->addCountriesToTestDB(); \TimeSource::mock(2014, 10, 1, 1, 1, 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()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); $area = new AreaModel(); $area->setTitle("test"); $area->setDescription("test test"); $areaRepo = new \repositories\AreaRepository(); $areaRepo->create($area, null, $site, $gb, $user); $venue = new VenueModel(); $venue->setTitle("test"); $venue->setDescription("test test"); $venue->setCountryId($gb->getId()); $venue->setAreaId($area->getId()); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); $venueDuplicate = new VenueModel(); $venueDuplicate->setTitle("test Duplicate"); $venueRepo->create($venueDuplicate, $site, $user); \TimeSource::mock(2014, 10, 1, 1, 2, 0); $venueRepo->markDuplicate($venueDuplicate, $venue, $user); $event = new EventModel(); $event->setSummary("test"); $event->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0, 'Europe/London')); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0, 'Europe/London')); $event->setVenueId($venue->getId()); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); ## Test $this->assertNotNull($venueRepo->loadBySlug($site, $venue->getSlug())); $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals($venue->getId(), $event->getVenueId()); ## Now Purge! $venueRepo->purge($venue); ## Test $this->assertNull($venueRepo->loadBySlug($site, $venue->getSlug())); $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertNull($event->getVenueId()); }
function test1() { \TimeSource::mock(2014, 1, 1, 0, 0, 0); $this->addCountriesToTestDB(); $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()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); $venue1 = new VenueModel(); $venue1->setTitle("test"); $venue1->setDescription("test test"); $venue1->setCountryId($gb->getId()); $venue2 = new VenueModel(); $venue2->setTitle("test this looks similar"); $venue2->setDescription("test test"); $venue2->setCountryId($gb->getId()); $venueRepo = new VenueRepository(); $venueRepo->create($venue1, $site, $user); $venueRepo->create($venue2, $site, $user); $event = new EventModel(); $event->setSummary("test"); $event->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0)); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0)); $event->setVenueId($venue2->getId()); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); // Test before $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals($venue2->getId(), $event->getVenueId()); $venue2 = $venueRepo->loadById($venue2->getId()); $this->assertFalse($venue2->getIsDeleted()); $this->assertNull($venue2->getIsDuplicateOfId()); // Mark \TimeSource::mock(2014, 1, 1, 2, 0, 0); $venueRepo->markDuplicate($venue2, $venue1, $user); // Test Duplicate $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals($venue1->getId(), $event->getVenueId()); $venue2 = $venueRepo->loadById($venue2->getId()); $this->assertTrue($venue2->getIsDeleted()); $this->assertEquals($venue1->getId(), $venue2->getIsDuplicateOfId()); }
function test1() { \TimeSource::mock(2014, 1, 1, 0, 0, 0); $this->addCountriesToTestDB(); $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()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); $venue = new VenueModel(); $venue->setTitle("test"); $venue->setDescription("test test"); $venue->setCountryId($gb->getId()); \TimeSource::mock(2014, 1, 1, 1, 0, 0); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); \TimeSource::mock(2014, 1, 1, 2, 0, 0); $venueRepo->delete($venue, $user); $this->checkVenueInTest1($venueRepo->loadById($venue->getId())); $this->checkVenueInTest1($venueRepo->loadBySlug($site, $venue->getSlug())); $vrb = new VenueRepositoryBuilder(); $vrb->setIncludeDeleted(true); $this->assertEquals(1, count($vrb->fetchAll())); $vrb = new VenueRepositoryBuilder(); $vrb->setIncludeDeleted(false); $this->assertEquals(0, count($vrb->fetchAll())); }
function test1() { $this->addCountriesToTestDB(); $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()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); $venue = new VenueModel(); $venue->setTitle("test"); $venue->setDescription("test test"); $venue->setCountryId($gb->getId()); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); $this->checkVenueInTest1($venueRepo->loadById($venue->getId())); $this->checkVenueInTest1($venueRepo->loadBySlug($site, $venue->getSlug())); $grb = new VenueRepositoryBuilder(); $grb->setFreeTextsearch('test'); $this->assertEquals(1, count($grb->fetchAll())); $grb = new VenueRepositoryBuilder(); $grb->setFreeTextsearch('cats'); $this->assertEquals(0, count($grb->fetchAll())); }
function newVenueJSON(Request $request, Application $app) { $venue = new VenueModel(); $data = array(); if ('POST' == $request->getMethod()) { if ($request->request->get('CSFRToken') == $app['websession']->getCSFRToken()) { $venue->setTitle($request->request->get('title')); $venue->setDescription($request->request->get('description')); if (intval($request->request->get('country'))) { $venue->setCountryId(intval($request->request->get('country'))); } $venueRepository = new VenueRepository(); $venueRepository->create($venue, $app['currentSite'], $app['currentUser']); $data['venue'] = array('id' => $venue->getId(), 'slug' => $venue->getSlug(), 'title' => $venue->getTitle()); } } $response = new Response(json_encode($data)); $response->headers->set('Content-Type', 'application/json'); return $response; }
function testIntegration2() { $this->addCountriesToTestDB(); \TimeSource::mock(2014, 1, 1, 12, 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()); $countryRepo = new CountryRepository(); $gb = $countryRepo->loadByTwoCharCode('GB'); ## Create venue \TimeSource::mock(2014, 1, 1, 13, 0, 0); $venue = new VenueModel(); $venue->setTitle("test"); $venue->setDescription("test test"); $venue->setCountryId($gb->getId()); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); ## Edit venue \TimeSource::mock(2014, 1, 1, 14, 0, 0); $venue = $venueRepo->loadById($venue->getId()); $venue->setDescription("testy"); $venue->setLat(3.6); $venue->setLng(3.7); $venueRepo->edit($venue, $user); ## Delete venue \TimeSource::mock(2014, 1, 1, 15, 0, 0); $venueRepo->delete($venue, $user); ## Now save changed flags on these ..... $venueHistoryRepo = new VenueHistoryRepository(); $stat = $this->app['db']->prepare("SELECT * FROM venue_history"); $stat->execute(); while ($data = $stat->fetch()) { $venueHistory = new VenueHistoryModel(); $venueHistory->setFromDataBaseRow($data); $venueHistoryRepo->ensureChangedFlagsAreSet($venueHistory); } ## Now load and check $historyRepo = new HistoryRepositoryBuilder(); $historyRepo->setVenue($venue); $historyRepo->setIncludeEventHistory(false); $historyRepo->setIncludeGroupHistory(false); $historyRepo->setIncludeVenueHistory(true); $histories = $historyRepo->fetchAll(); $this->assertEquals(3, count($histories)); #the delete $this->assertEquals(FALSE, $histories[0]->getTitleChanged()); $this->assertEquals(false, $histories[0]->getDescriptionChanged()); $this->assertEquals(false, $histories[0]->getCountryIdChanged()); $this->assertEquals(true, $histories[0]->getIsDeletedChanged()); $this->assertEquals(false, $histories[0]->getLatChanged()); $this->assertEquals(false, $histories[0]->getLngChanged()); #the edit $this->assertEquals(FALSE, $histories[1]->getTitleChanged()); $this->assertEquals(true, $histories[1]->getDescriptionChanged()); $this->assertEquals(false, $histories[1]->getCountryIdChanged()); $this->assertEquals(false, $histories[1]->getIsDeletedChanged()); $this->assertEquals(true, $histories[1]->getLatChanged()); $this->assertEquals(true, $histories[1]->getLngChanged()); #the create $this->assertEquals(true, $histories[2]->getTitleChanged()); $this->assertEquals(true, $histories[2]->getDescriptionChanged()); $this->assertEquals(true, $histories[2]->getCountryIdChanged()); $this->assertEquals(false, $histories[2]->getIsDeletedChanged()); $this->assertEquals(false, $histories[2]->getLatChanged()); $this->assertEquals(false, $histories[2]->getLngChanged()); }
function testMoveAllFutureEventsAtVenueToNoSetVenueWithNoArea() { $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()); $countryRepo = new CountryRepository(); $venue = new VenueModel(); $venue->setCountryId($countryRepo->loadByTwoCharCode('GB')->getId()); $venue->setTitle("edinburgh hall"); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); #### Event To Change $event = new EventModel(); $event->setCountryId($countryRepo->loadByTwoCharCode('GB')->getId()); $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->setVenueId($venue->getId()); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); #### Load Event, Check in Venue $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals(false, $event->getIsDeleted()); $this->assertNull($event->getAreaId()); $this->assertEquals($venue->getId(), $event->getVenueId()); #### In preperation for deleting event, call moveAllFutureEventsAtVenueToNoSetVenue() TimeSource::mock(2013, 7, 1, 8, 0, 0); $eventRepository->moveAllFutureEventsAtVenueToNoSetVenue($venue, $user); #### Load event, check in area $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals(false, $event->getIsDeleted()); $this->assertNull($event->getVenueId()); $this->assertNull($event->getAreaId()); }
function editVenueNew($slug, Request $request, Application $app) { //var_dump($_POST); die(); if (!$this->build($slug, $request, $app)) { $app->abort(404, "Event does not exist."); } if ($this->parameters['event']->getIsDeleted()) { die("No"); // TODO } $areaRepository = new AreaRepository(); $this->parameters['shouldWeAskForArea'] = $app['currentSite']->getIsFeaturePhysicalEvents() && $areaRepository->doesCountryHaveAnyNotDeletedAreas($app['currentSite'], $this->parameters['country']); $this->parameters['newVenueFieldsSubmitted'] = (bool) ('POST' == $request->getMethod() && $request->request->get('newVenueFieldsSubmitted')); //===================================== Set Venue Object as Much as possible from what user passed! $this->parameters['venue'] = new VenueModel(); $this->parameters['venue']->setTitle('POST' == $request->getMethod() ? $request->request->get('fieldTitle') : $request->query->get('fieldTitle')); $this->parameters['venue']->setDescription('POST' == $request->getMethod() ? $request->request->get('fieldDescription') : $request->query->get('fieldDescription')); $this->parameters['venue']->setAddress('POST' == $request->getMethod() ? $request->request->get('fieldAddress') : $request->query->get('fieldAddress')); $this->parameters['venue']->setAddressCode('POST' == $request->getMethod() ? $request->request->get('fieldAddressCode') : $request->query->get('fieldAddressCode')); $this->parameters['venue']->setCountryId($this->parameters['country']->getId()); $this->parameters['venue']->setLat('POST' == $request->getMethod() ? $request->request->get('fieldLat') : $request->query->get('fieldLat')); $this->parameters['venue']->setLng('POST' == $request->getMethod() ? $request->request->get('fieldLng') : $request->query->get('fieldLng')); $this->parameters['fieldAreaObject'] = null; $this->parameters['noneOfAboveSelected'] = false; $this->parameters['areasToSelectSearch'] = false; $this->parameters['areasToSelectChildren'] = false; if ($this->parameters['shouldWeAskForArea']) { // has area already been passed? $this->parameters['fieldAreaSearchText'] = 'POST' == $request->getMethod() ? $request->request->get('fieldAreaSearchText') : $request->query->get('fieldAreaSearchText'); $this->parameters['fieldAreaSlug'] = 'POST' == $request->getMethod() ? $request->request->get('fieldAreaSlug') : $request->query->get('fieldAreaSlug'); $this->parameters['fieldAreaSlugSelected'] = 'POST' == $request->getMethod() ? $request->request->get('fieldAreaSlugSelected') : null; // Did the user select a area from a list? // -1 indicates skip, must check for that // we must check this before we check fieldAreaSlug so that this can override fieldAreaSlug if ($this->parameters['fieldAreaSlugSelected']) { $fass = intval($this->parameters['fieldAreaSlugSelected']); if ($fass == -1) { $this->parameters['noneOfAboveSelected'] = true; } elseif ($fass > 0) { $this->parameters['fieldAreaObject'] = $areaRepository->loadBySlug($app['currentSite'], $fass); } } // Slug passed? // -1 indicates skip, must check for that if (!$this->parameters['fieldAreaObject'] && $this->parameters['fieldAreaSlug']) { $fas = intval($this->parameters['fieldAreaSlug']); if ($fas == -1) { $this->parameters['noneOfAboveSelected'] = true; } else { if ($fas > 0) { $this->parameters['fieldAreaObject'] = $areaRepository->loadBySlug($app['currentSite'], $fas); if ($this->parameters['fieldAreaObject']) { $this->parameters['fieldArea'] = $this->parameters['fieldAreaObject']->getTitle(); } } } } // Free text search string passed that only has 1 result? if (!$this->parameters['fieldAreaObject'] && $this->parameters['fieldAreaSearchText']) { $arb = new AreaRepositoryBuilder(); $arb->setSite($app['currentSite']); $arb->setCountry($this->parameters['country']); $arb->setFreeTextSearch($this->parameters['fieldAreaSearchText']); $arb->setIncludeParentLevels(1); $this->parameters['areasToSelectSearch'] = $arb->fetchAll(); if (count($this->parameters['areasToSelectSearch']) == 1) { $this->parameters['fieldAreaObject'] = $this->parameters['areasToSelectSearch'][0]; } } } //===================================== Call out to extensions to add details // Slightly ackward we have to set Area ID on venue object, then when extensions have done we need to reload the area object again. if ($this->parameters['fieldAreaObject']) { $this->parameters['venue']->setAreaId($this->parameters['fieldAreaObject']->getId()); } foreach ($app['extensions']->getExtensionsIncludingCore() as $extension) { $extension->addDetailsToVenue($this->parameters['venue']); } if ($this->parameters['venue']->getAreaId() && (!$this->parameters['fieldAreaObject'] || $this->parameters['fieldAreaObject']->getId() != $this->parameters['venue']->getAreaId())) { $this->parameters['fieldAreaObject'] = $areaRepository->loadById($this->parameters['venue']->getAreaId()); } //===================================== User gets to add details? // Check newVenueFieldsSubmitted because we always show the fields to user once // also title is a required field. if (!$this->parameters['newVenueFieldsSubmitted'] || !trim($this->parameters['venue']->getTitle())) { return $app['twig']->render('site/event/edit.venue.new.html.twig', $this->parameters); } //===================================== Do we prompt the user for more? if ($this->parameters['shouldWeAskForArea']) { // Did user type in text we had multiple options for? if (!$this->parameters['fieldAreaObject'] && $this->parameters['fieldAreaSearchText'] && !$this->parameters['noneOfAboveSelected'] && count($this->parameters['areasToSelectSearch']) > 1) { return $app['twig']->render('site/event/edit.venue.new.area.html.twig', $this->parameters); } // Child areas? // -1 indicates "none of the above", so don't prompt the user again. if (!$this->parameters['noneOfAboveSelected']) { $areaRepoBuilder = new AreaRepositoryBuilder(); $areaRepoBuilder->setSite($app['currentSite']); $areaRepoBuilder->setCountry($this->parameters['country']); $areaRepoBuilder->setIncludeDeleted(false); $areaRepoBuilder->setIncludeParentLevels(1); if ($this->parameters['fieldAreaObject']) { $areaRepoBuilder->setParentArea($this->parameters['fieldAreaObject']); } else { $areaRepoBuilder->setNoParentArea(true); } $childAreas = $areaRepoBuilder->fetchAll(); if ($childAreas) { $this->parameters['areasToSelectChildren'] = $childAreas; return $app['twig']->render('site/event/edit.venue.new.area.html.twig', $this->parameters); } } } //===================================== No prompt? We can save! $venueRepository = new VenueRepository(); $venueRepository->create($this->parameters['venue'], $app['currentSite'], $app['currentUser']); $this->parameters['event']->setVenueId($this->parameters['venue']->getId()); $this->parameters['event']->setAreaId(null); $eventRepository = new EventRepository(); $eventRepository->edit($this->parameters['event'], $app['currentUser']); $repo = new EventRecurSetRepository(); if ($repo->isEventInSetWithNotDeletedFutureEvents($this->parameters['event'])) { return $app->redirect("/event/" . $this->parameters['event']->getSlugforURL() . '/edit/future'); } else { return $app->redirect("/event/" . $this->parameters['event']->getSlugforURL()); } }
function testVenue() { $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); TimeSource::mock(2013, 7, 1, 7, 0, 0); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $venue = new VenueModel(); $venue->setTitle("test"); $venueRepo = new VenueRepository(); $venueRepo->create($venue, $site, $user); $this->assertTrue($userRepo->hasMadeAnyEdits($user)); }