function testMultiple() { 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()); $group = new GroupModel(); $group->setTitle("test"); $group->setDescription("test test"); $group->setUrl("http://www.group.com"); $groupDupe = new GroupModel(); $groupDupe->setTitle("test DUPE"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); $groupRepo->create($groupDupe, $site, $user); TimeSource::mock(2013, 7, 1, 7, 1, 0); $groupRepo->markDuplicate($groupDupe, $group); $ufgr = new UserWatchesGroupRepository(); $ufgr->startUserWatchingGroupIdIfNotWatchedBefore($user, $group->getId()); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setStartAt(getUTCDateTime(2013, 8, 1, 19, 0, 0)); $event->setEndAt(getUTCDateTime(2013, 8, 1, 21, 0, 0)); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user, $group); ## TEST $this->assertNotNull($groupRepo->loadById($group->getId())); $groupRB = new GroupRepositoryBuilder(); $groupRB->setEvent($event); $groups = $groupRB->fetchAll(); $this->assertEquals(1, count($groups)); ## PURGE! $groupRepo->purge($group); ## TEST $this->assertNull($groupRepo->loadById($group->getId())); $groupRB = new GroupRepositoryBuilder(); $groupRB->setEvent($event); $groups = $groupRB->fetchAll(); $this->assertEquals(0, count($groups)); }
public function editWithMetaData(EventModel $event, EventEditMetaDataModel $eventEditMetaDataModel) { if ($event->getIsDeleted()) { throw new \Exception("Can't edit deleted events!"); } global $DB; try { $DB->beginTransaction(); $fields = array('summary', 'description', 'start_at', 'end_at', 'venue_id', 'area_id', 'country_id', 'timezone', 'url', 'ticket_url', 'is_physical', 'is_virtual', 'is_deleted', 'is_cancelled', 'custom'); $this->eventDBAccess->update($event, $fields, $eventEditMetaDataModel); if ($eventEditMetaDataModel->getUserAccount()) { if ($event->getGroupId()) { $ufgr = new UserWatchesGroupRepository(); $ufgr->startUserWatchingGroupIdIfNotWatchedBefore($eventEditMetaDataModel->getUserAccount(), $event->getGroupId()); } else { // TODO watch site? } } $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }