/** @return UserAtEventModel **/ public function loadByUserIDAndEventOrInstanciate($userId, EventModel $event) { $uaem = $this->loadByUserIDAndEvent($userId, $event); if (!$uaem) { $uaem = new UserAtEventModel(); $uaem->setEventId($event->getId()); $uaem->setUserAccountId($userId); } return $uaem; }
/** * @dataProvider dataForTest1 */ function test1($emailOption, $goingOption, $result) { TimeSource::mock(2013, 8, 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->setStartAt($this->mktime(2013, 8, 2, 19, 0, 0)); $event->setEndAt($this->mktime(2013, 8, 2, 21, 0, 0)); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); $user->setEmailUpcomingEventsDaysNotice(1); $user->setEmailUpcomingEvents($emailOption); $userRepo->editEmailsOptions($user); if ($goingOption == 'a') { $userAtEvent = new UserAtEventModel(); $userAtEvent->setUserAccountId($user->getId()); $userAtEvent->setEventId($event->getId()); $userAtEvent->setIsPlanAttending(true); $uaeRepo = new UserAtEventRepository(); $uaeRepo->save($userAtEvent); } else { if ($goingOption == 'm') { $userAtEvent = new UserAtEventModel(); $userAtEvent->setUserAccountId($user->getId()); $userAtEvent->setEventId($event->getId()); $userAtEvent->setIsPlanMaybeAttending(true); $uaeRepo = new UserAtEventRepository(); $uaeRepo->save($userAtEvent); } } list($upcomingEvents, $allEvents, $userAtEvent, $flag) = $user->getDataForUpcomingEventsEmail(); $this->assertEquals($result, $flag); }