function testAcrossBST1() { \TimeSource::mock(2015, 5, 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()); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setTimezone('Europe/London'); $start = new \DateTime("", new \DateTimeZone('Europe/London')); $start->setDate(2015, 5, 10); $start->setTime(19, 0, 0); $event->setStartAt($start); $end = new \DateTime("", new \DateTimeZone('Europe/London')); $end->setDate(2015, 5, 10); $end->setTime(21, 0, 0); $event->setEndAt($end); $event->setUrl("http://www.info.com"); $event->setTicketUrl("http://www.tickets.com"); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); $event = $eventRepository->loadBySlug($site, $event->getSlug()); $eventRecurSetRepository = new EventRecurSetRepository(); $eventRecurSet = $eventRecurSetRepository->getForEvent($event); $eventRecurSet->setTimeZoneName($event->getTimezone()); $newStart = new \DateTime(); $newStart->setDate(2015, 11, 1); $newEvent = $eventRecurSet->getNewEventOnArbitraryDate($event, $newStart); // What we are really testing here is start and end times set correctly $this->assertEquals("2015-11-01T19:00:00+00:00", $newEvent->getStartAtInUTC()->format("c")); $this->assertEquals("2015-11-01T21:00:00+00:00", $newEvent->getEndAtInUTC()->format("c")); $this->assertEquals("2015-11-01T19:00:00+00:00", $newEvent->getStartAtInTimezone()->format("c")); $this->assertEquals("2015-11-01T21:00:00+00:00", $newEvent->getEndAtInTimezone()->format("c")); }
public function go() { $event = new EventModel(); $event->setSummary($this->summary); $event->setDescription($this->description); $event->setUrl($this->url); $event->setTimezone($this->timezone); $event->setStartAt($this->start_at); $event->setEndAt($this->end_at); $event->setCountryId($this->country->getId()); $eventRepo = new EventRepository(); $eventRepo->create($event, $this->site, $this->user, $this->group); }
function addDataToEventBeforeCheck(EventModel $eventModel) { if ($this->draftEvent->hasDetailsValue('event.country_id')) { $eventModel->setCountryId($this->draftEvent->getDetailsValue('event.country_id')); } if ($this->draftEvent->hasDetailsValue('event.timezone')) { $eventModel->setTimezone($this->draftEvent->getDetailsValue('event.timezone')); } if ($this->draftEvent->hasDetailsValue('event.start_at')) { $eventModel->setStartAt($this->draftEvent->getDetailsValueAsDateTime('event.start_at')); } if ($this->draftEvent->hasDetailsValue('event.end_at')) { $eventModel->setEndAt($this->draftEvent->getDetailsValueAsDateTime('event.end_at')); } }
protected function newEventFromImportedEventModel(ImportedEventModel $importedEvent) { $event = new EventModel(); $event->setFromImportedEventModel($importedEvent); if ($this->site->getIsFeaturePhysicalEvents() && !$this->site->getIsFeatureVirtualEvents()) { $event->setIsPhysical(true); $event->setIsVirtual(false); } else { if (!$this->site->getIsFeaturePhysicalEvents() && $this->site->getIsFeatureVirtualEvents()) { $event->setIsPhysical(false); $event->setIsVirtual(true); } } if ($this->country) { // country is set on importer. $event->setCountryId($this->country->getId()); $timezones = $this->country->getTimezonesAsList(); if ($importedEvent->getTimezone() && in_array($importedEvent->getTimezone(), $timezones)) { $event->setTimezone($importedEvent->getTimezone()); } else { if ($timezones) { // take first timezone in that country at random :-/ $event->setTimezone($timezones[0]); } } if ($this->area) { $event->setAreaId($this->area->getId()); } } else { // if no country set on importer, we just pick first one at random :-/ $crb = new \repositories\builders\CountryRepositoryBuilder(); $crb->setSiteIn($this->site); $crb->setLimit(1); $countries = $crb->fetchAll(); if (count($countries) > 0) { $country = $countries[0]; $event->setCountryId($country->getId()); $timezones = $country->getTimezonesAsList(); if ($importedEvent->getTimezone() && in_array($importedEvent->getTimezone(), $timezones)) { $event->setTimezone($importedEvent->getTimezone()); } else { if ($timezones) { // take first timezone in that country at random :-/ $event->setTimezone($timezones[0]); } } } } return $event; }