/** * @dataProvider dataForTestSet */ function testSet4($slug, $text, $result) { $event = new EventModel(); $event->setSlug($slug); $event->setSummary($text); $this->assertEquals($result, $event->getSlugForUrl()); }
function testCustomFieldChange1() { TimeSource::mock(2012, 7, 1, 7, 0, 0); $customFieldDefinition1 = new EventCustomFieldDefinitionModel(); $customFieldDefinition1->setId(1); $customFieldDefinition1->setExtensionId('org.openacalendar'); $customFieldDefinition1->setType('TextSingleLine'); $customFieldDefinition1->setKey('cats'); $customFieldDefinition1->setLabel('cats'); $event = new EventModel(); $event->setStartAt(getUTCDateTime(2012, 6, 13, 19, 0, 0)); $event->setEndAt(getUTCDateTime(2012, 6, 13, 21, 0, 0)); $event->setSummary("Event Please"); $event->setCustomField($customFieldDefinition1, "MANY"); $eventSet = new EventRecurSetModel(); $eventSet->setTimeZoneName('Europe/London'); $eventSet->setCustomFields(array($customFieldDefinition1)); $newEvents = $eventSet->getNewMonthlyEventsOnSetDayInWeek($event, 6 * 31); $this->assertTrue(count($newEvents) >= 6); $this->assertTrue($newEvents[0]->hasCustomField($customFieldDefinition1)); $this->assertEquals("MANY", $newEvents[0]->getCustomField($customFieldDefinition1)); $this->assertTrue($newEvents[1]->hasCustomField($customFieldDefinition1)); $this->assertEquals("MANY", $newEvents[1]->getCustomField($customFieldDefinition1)); $this->assertTrue($newEvents[2]->hasCustomField($customFieldDefinition1)); $this->assertEquals("MANY", $newEvents[2]->getCustomField($customFieldDefinition1)); $this->assertTrue($newEvents[3]->hasCustomField($customFieldDefinition1)); $this->assertEquals("MANY", $newEvents[3]->getCustomField($customFieldDefinition1)); // DST shift happens here! The cats do not care. $this->assertTrue($newEvents[4]->hasCustomField($customFieldDefinition1)); $this->assertEquals("MANY", $newEvents[4]->getCustomField($customFieldDefinition1)); $this->assertTrue($newEvents[5]->hasCustomField($customFieldDefinition1)); $this->assertEquals("MANY", $newEvents[5]->getCustomField($customFieldDefinition1)); }
function testWinterTime() { TimeSource::mock(2014, 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->setStartAt($this->mktime(2014, 11, 10, 19, 0, 0, 'Europe/London')); $event->setEndAt($this->mktime(2014, 11, 10, 21, 0, 0, 'Europe/London')); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals("test test", $event->getDescription()); $this->assertEquals("test", $event->getSummary()); $startAtShouldBe = $this->mktime(2014, 11, 10, 19, 0, 0, 'UTC'); $startAtIs = clone $event->getStartAt(); $startAtIs->setTimezone(new \DateTimeZone('UTC')); $this->assertEquals($startAtShouldBe->format("c"), $startAtIs->format("c")); }
/** * @dataProvider dataForTestWithGroup */ function testWithGroup($groupTitle, $eventSummary, $summaryDisplayOut) { $event = new EventModel(); $event->setSummary($eventSummary); $event->setGroupTitle($groupTitle); $this->assertEquals($summaryDisplayOut, $event->getSummaryDisplay()); }
function test1() { TimeSource::mock(2014, 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()); $group = new GroupModel(); $group->setTitle("test"); $group->setDescription("test test"); $group->setUrl("http://www.group.com"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0)); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0)); $event->setUrl("http://www.info.com"); $event->setTicketUrl("http://www.tickets.com"); $eventDupe = new EventModel(); $eventDupe->setSummary("test"); $eventDupe->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0)); $eventDupe->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0)); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user, $group); $eventRepository->create($eventDupe, $site, $user, $group); TimeSource::mock(2014, 5, 1, 7, 1, 0); $eventRepository->markDuplicate($eventDupe, $event); $userAtEvent = new \models\UserAtEventModel(); $userAtEvent->setEventId($event->getId()); $userAtEvent->setUserAccountId($user->getId()); $userAtEvent->setIsPlanAttending(true); $userAtEventRepo = new \repositories\UserAtEventRepository(); $userAtEventRepo->create($userAtEvent); $curatedList = new CuratedListModel(); $curatedList->setTitle("test"); $curatedList->setDescription("test this!"); $clRepo = new CuratedListRepository(); $clRepo->create($curatedList, $site, $user); $clRepo->addEventtoCuratedList($event, $curatedList, $user); $tag = new TagModel(); $tag->setTitle("Test"); $tagRepo = new TagRepository(); $tagRepo->create($tag, $site, $user); $tagRepo->addTagToEvent($tag, $event, $user); ## TEST $this->assertNotNull($eventRepository->loadBySlug($site, $event->getSlug())); ## PURGE! $eventRepository->purge($event); ## TEST $this->assertNull($eventRepository->loadBySlug($site, $event->getSlug())); }
function test1() { \TimeSource::mock(2014, 1, 1, 0, 0, 0); $user1 = new UserAccountModel(); $user1->setEmail("*****@*****.**"); $user1->setUsername("test"); $user1->setPassword("password"); $user2 = new UserAccountModel(); $user2->setEmail("*****@*****.**"); $user2->setUsername("test2"); $user2->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user1); $userRepo->create($user2); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user1, array(), $this->getSiteQuotaUsedForTesting()); $group1 = new GroupModel(); $group1->setTitle("test1"); $group1->setDescription("test test"); $group1->setUrl("http://www.group.com"); $group2 = new GroupModel(); $group2->setTitle("test this looks similar"); $group2->setDescription("test test"); $group2->setUrl("http://www.group.com"); $groupRepo = new GroupRepository(); \TimeSource::mock(2014, 1, 1, 1, 0, 0); $groupRepo->create($group1, $site, $user1); $groupRepo->create($group2, $site, $user2); $event = new EventModel(); $event->setSummary("test"); $event->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0)); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0)); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user1, $group2); $uwgr = new UserWatchesGroupRepository(); // Test before $erb = new \repositories\builders\EventRepositoryBuilder(); $erb->setGroup($group1); $this->assertEquals(0, count($erb->fetchAll())); $this->assertNull($uwgr->loadByUserAndGroup($user2, $group1)); $group2 = $groupRepo->loadById($group2->getId()); $this->assertFalse($group2->getIsDeleted()); $this->assertNull($group2->getIsDuplicateOfId()); // Mark \TimeSource::mock(2014, 1, 1, 2, 0, 0); $groupRepo->markDuplicate($group2, $group1, $user1); // Test Duplicate $erb = new \repositories\builders\EventRepositoryBuilder(); $erb->setGroup($group1); $this->assertEquals(1, count($erb->fetchAll())); $uwg = $uwgr->loadByUserAndGroup($user2, $group1); $this->assertNotNull($uwg); $group2 = $groupRepo->loadById($group2->getId()); $this->assertTrue($group2->getIsDeleted()); $this->assertEquals($group1->getId(), $group2->getIsDuplicateOfId()); }
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 testLoadEventJustBeforeEdit() { \TimeSource::mock(2014, 1, 1, 1, 1, 1); $this->addCountriesToTestDB(); $countryRepo = new CountryRepository(); $userRepo = new UserAccountRepository(); $siteRepo = new SiteRepository(); $eventRepo = new EventRepository(); $eventHistoryRepo = new EventHistoryRepository(); #### Setup $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()); #### Create Event \TimeSource::mock(2014, 1, 1, 1, 2, 1); $event = new EventModel(); $event->setSummary("Cats"); $event->setDescription("Go Miaow"); $event->setStartAt(getUTCDateTime(2014, 1, 10, 9, 0, 0)); $event->setEndAt(getUTCDateTime(2014, 1, 10, 17, 0, 0)); $eventRepo->create($event, $site, $user); #### Edit Event \TimeSource::mock(2014, 1, 1, 1, 3, 1); $event = $eventRepo->loadBySlug($site, $event->getSlug()); $event->setSummary("Lizards"); $event->setDescription("Go ?"); $eventRepo->edit($event, $user); #### Edit Event \TimeSource::mock(2014, 1, 1, 1, 4, 1); $event = $eventRepo->loadBySlug($site, $event->getSlug()); $event->setSummary("Dogs"); $event->setDescription("Go Woof"); $eventRepo->edit($event, $user); #### test: Load Current State \TimeSource::mock(2014, 1, 1, 1, 5, 1); $event = $eventRepo->loadBySlug($site, $event->getSlug()); $this->assertEquals("Dogs", $event->getSummary()); $this->assertEquals("Go Woof", $event->getDescription()); #### test: load state before last edit \TimeSource::mock(2014, 1, 1, 1, 6, 1); $history = $eventHistoryRepo->loadByEventAndlastEditByUser($event, $user); $event = $eventRepo->loadEventJustBeforeEdit($event, $history); $this->assertEquals("Lizards", $event->getSummary()); $this->assertEquals("Go ?", $event->getDescription()); }
function testEventAndNotEvent1() { 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()); $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 = new GroupModel(); $group->setTitle("test"); $group->setDescription("test test"); $group->setUrl("http://www.group.com"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); ## Test event not in group $grb = new GroupRepositoryBuilder(); $grb->setEvent($event); $this->assertEquals(0, count($grb->fetchAll())); $grb = new GroupRepositoryBuilder(); $grb->setNotEvent($event); $this->assertEquals(1, count($grb->fetchAll())); ## Add event to group, test $groupRepo->addEventToGroup($event, $group, $user); $grb = new GroupRepositoryBuilder(); $grb->setEvent($event); $this->assertEquals(1, count($grb->fetchAll())); $grb = new GroupRepositoryBuilder(); $grb->setNotEvent($event); $this->assertEquals(0, count($grb->fetchAll())); ## remove event from group $groupRepo->removeEventFromGroup($event, $group, $user); $grb = new GroupRepositoryBuilder(); $grb->setEvent($event); $this->assertEquals(0, count($grb->fetchAll())); $grb = new GroupRepositoryBuilder(); $grb->setNotEvent($event); $this->assertEquals(1, count($grb->fetchAll())); }
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)); }
function testEventsVanish() { ## User, Site, Event \TimeSource::mock(2014, 1, 1, 1, 2, 3); $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(getUTCDateTime(2014, 5, 10, 19, 0, 0, 'Europe/London')); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0, 'Europe/London')); $event->setUrl("http://www.info.com"); $event->setTicketUrl("http://www.tickets.com"); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); ## Event can be found $erb = new EventRepositoryBuilder(); $erb->setIncludeEventsFromClosedSites(true); $erb->fetchAll(); $this->assertEquals(1, count($erb->fetchAll())); $erb = new EventRepositoryBuilder(); $erb->setIncludeEventsFromClosedSites(false); $erb->fetchAll(); $this->assertEquals(1, count($erb->fetchAll())); ## Close Site \TimeSource::mock(2014, 2, 1, 1, 2, 3); $site->setIsClosedBySysAdmin(true); $site->setClosedBySysAdminreason('Testing'); $siteRepo->edit($site, $user); ## Event can not be found $erb = new EventRepositoryBuilder(); $erb->setIncludeEventsFromClosedSites(true); $erb->fetchAll(); $this->assertEquals(1, count($erb->fetchAll())); $erb = new EventRepositoryBuilder(); $erb->setIncludeEventsFromClosedSites(false); $erb->fetchAll(); $this->assertEquals(0, count($erb->fetchAll())); }
function test1() { $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userOther = new UserAccountModel(); $userOther->setEmail("*****@*****.**"); $userOther->setUsername("test2"); $userOther->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $userRepo->create($userOther); $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"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0, 'Europe/London')); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0, 'Europe/London')); $event->setUrl("http://www.info.com"); $event->setTicketUrl("http://www.tickets.com"); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); $curatedList = new CuratedListModel(); $curatedList->setTitle("test"); $curatedList->setDescription("test this!"); $clRepo = new CuratedListRepository(); $clRepo->create($curatedList, $site, $user); $clRepo->addEditorToCuratedList($userOther, $curatedList, $user); $clRepo->addEventtoCuratedList($event, $curatedList, $user); $clRepo->addGroupToCuratedList($group, $curatedList, $user); ## Test $this->assertNotNull($clRepo->loadBySlug($site, $curatedList->getSlug())); ## Purge! $clRepo->purge($curatedList); ## Test $this->assertNull($clRepo->loadBySlug($site, $curatedList->getSlug())); }
/** * @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); }
function testFreeTextSearch() { TimeSource::mock(2014, 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->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0, 'Europe/London')); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0, 'Europe/London')); $event->setUrl("http://www.info.com"); $event->setTicketUrl("http://www.tickets.com"); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); ///////////// Test No Search $erb = new EventRepositoryBuilder(); $this->assertEquals(1, count($erb->fetchAll())); $erb = new EventRepositoryBuilder(); $this->assertEquals(1, $erb->fetchCount()); ///////////// Test Search Pass $erb = new EventRepositoryBuilder(); $erb->setFreeTextsearch("test"); $this->assertEquals(1, count($erb->fetchAll())); $erb = new EventRepositoryBuilder(); $erb->setFreeTextsearch("test"); $this->assertEquals(1, $erb->fetchCount()); ///////////// Test Search Fail $erb = new EventRepositoryBuilder(); $erb->setFreeTextsearch("eodueoth dlhtunkn ethh5f 8l79,35dheutn"); $this->assertEquals(0, count($erb->fetchAll())); $erb = new EventRepositoryBuilder(); $erb->setFreeTextsearch("eodueoth dlhtunkn ethh5f 8l79,35dheutn"); $this->assertEquals(0, $erb->fetchCount()); }
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")); }
function test1() { TimeSource::mock(2014, 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->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0, 'Europe/London')); $event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0, 'Europe/London')); $event->setUrl("http://www.info.com"); $event->setTicketUrl("http://www.tickets.com"); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); $tag = new TagModel(); $tag->setTitle("Test"); $tagRepo = new TagRepository(); $tagRepo->create($tag, $site, $user); $tagRepo->addTagToEvent($tag, $event, $user); ## Test $this->assertNotNull($tagRepo->loadById($tag->getId())); $tagRepoBuilder = new repositories\builders\TagRepositoryBuilder(); $tagRepoBuilder->setTagsForEvent($event); $this->assertEquals(1, count($tagRepoBuilder->fetchAll())); ## Purge! $tagRepo->purge($tag); ## Test $this->assertNull($tagRepo->loadById($tag->getId())); $tagRepoBuilder = new repositories\builders\TagRepositoryBuilder(); $tagRepoBuilder->setTagsForEvent($event); $this->assertEquals(0, count($tagRepoBuilder->fetchAll())); }
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()); $group1 = new GroupModel(); $group1->setTitle("test"); $group1->setDescription("test test"); $group1->setUrl("http://www.group.com"); $group2 = new GroupModel(); $group2->setTitle("cat"); $group2->setDescription("cat cat"); $group2->setUrl("http://www.cat.com"); $groupRepo = new GroupRepository(); $groupRepo->create($group1, $site, $user); $groupRepo->create($group2, $site, $user); $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)); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user, $group1, array($group1, $group2)); // Check groups $groupRB = new GroupRepositoryBuilder(); $groupRB->setEvent($event); $groups = $groupRB->fetchAll(); $this->assertEquals(2, count($groups)); }
function testEvent() { $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()); $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)); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); $this->assertTrue($userRepo->hasMadeAnyEdits($user)); }
function test1() { TimeSource::mock(2014, 5, 1, 7, 0, 0); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $user1 = new UserAccountModel(); $user1->setEmail("*****@*****.**"); $user1->setUsername("test1"); $user1->setPassword("password"); $user2 = new UserAccountModel(); $user2->setEmail("*****@*****.**"); $user2->setUsername("test2"); $user2->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $userRepo->create($user1); $userRepo->create($user2); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); $event1 = new EventModel(); $event1->setSummary("test"); $event1->setDescription("test test"); $event1->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0)); $event1->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0)); $event1->setUrl("http://www.info.com"); $event1->setTicketUrl("http://www.tickets.com"); $event2 = new EventModel(); $event2->setSummary("test this looks similar"); $event2->setDescription("test test"); $event2->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0, 'Europe/London')); $event2->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0, 'Europe/London')); $event2->setUrl("http://www.info.com"); $event2->setTicketUrl("http://www.tickets.com"); $eventRepository = new EventRepository(); $eventRepository->create($event1, $site, $user); $eventRepository->create($event2, $site, $user); $userAtEventRepo = new \repositories\UserAtEventRepository(); $user1AtEvent1 = $userAtEventRepo->loadByUserAndEventOrInstanciate($user1, $event1); $user1AtEvent1->setIsPlanAttending(true); $user1AtEvent1->setIsPlanPublic(true); $userAtEventRepo->save($user1AtEvent1); $user1AtEvent2 = $userAtEventRepo->loadByUserAndEventOrInstanciate($user1, $event2); $user1AtEvent2->setIsPlanMaybeAttending(true); $userAtEventRepo->save($user1AtEvent2); $user2AtEvent2 = $userAtEventRepo->loadByUserAndEventOrInstanciate($user2, $event2); $user2AtEvent2->setIsPlanMaybeAttending(true); $userAtEventRepo->save($user2AtEvent2); //=============================================== Test before $event2 = $eventRepository->loadBySlug($site, $event2->getSlug()); $this->assertFalse($event2->getIsDeleted()); $this->assertNull($event2->getIsDuplicateOfId()); $user1AtEvent1 = $userAtEventRepo->loadByUserAndEvent($user1, $event1); $this->assertNotNull($user1AtEvent1); $this->assertEquals(true, $user1AtEvent1->getIsPlanAttending()); $this->assertEquals(false, $user1AtEvent1->getIsPlanMaybeAttending()); $this->assertEquals(true, $user1AtEvent1->getIsPlanPublic()); $user1AtEvent2 = $userAtEventRepo->loadByUserAndEvent($user1, $event2); $this->assertNotNull($user1AtEvent2); $this->assertEquals(false, $user1AtEvent2->getIsPlanAttending()); $this->assertEquals(true, $user1AtEvent2->getIsPlanMaybeAttending()); $this->assertEquals(false, $user1AtEvent2->getIsPlanPublic()); $user2AtEvent1 = $userAtEventRepo->loadByUserAndEvent($user2, $event1); $this->assertNull($user2AtEvent1); $user2AtEvent2 = $userAtEventRepo->loadByUserAndEvent($user2, $event2); $this->assertNotNull($user2AtEvent2); $this->assertEquals(false, $user2AtEvent2->getIsPlanAttending()); $this->assertEquals(true, $user2AtEvent2->getIsPlanMaybeAttending()); $this->assertEquals(false, $user2AtEvent2->getIsPlanPublic()); //==================================================== Mark TimeSource::mock(2014, 5, 1, 8, 0, 0); $eventRepository->markDuplicate($event2, $event1, $user); //==================================================== Test Duplicate $event2 = $eventRepository->loadBySlug($site, $event2->getSlug()); $this->assertTrue($event2->getIsDeleted()); $this->assertEquals($event1->getId(), $event2->getIsDuplicateOfId()); // This should not have changed; as there already was data here we don't change it. $user1AtEvent1 = $userAtEventRepo->loadByUserAndEvent($user1, $event1); $this->assertNotNull($user1AtEvent1); $this->assertEquals(true, $user1AtEvent1->getIsPlanAttending()); $this->assertEquals(false, $user1AtEvent1->getIsPlanMaybeAttending()); $this->assertEquals(true, $user1AtEvent1->getIsPlanPublic()); $user1AtEvent2 = $userAtEventRepo->loadByUserAndEvent($user1, $event2); $this->assertNotNull($user1AtEvent2); $this->assertEquals(false, $user1AtEvent2->getIsPlanAttending()); $this->assertEquals(true, $user1AtEvent2->getIsPlanMaybeAttending()); $this->assertEquals(false, $user1AtEvent2->getIsPlanPublic()); // This should now change, the mark dupe function should have copied it. $user2AtEvent1 = $userAtEventRepo->loadByUserAndEvent($user2, $event1); $this->assertNotNull($user2AtEvent1); $this->assertEquals(false, $user2AtEvent1->getIsPlanAttending()); $this->assertEquals(true, $user2AtEvent1->getIsPlanMaybeAttending()); $this->assertEquals(false, $user2AtEvent1->getIsPlanPublic()); $user2AtEvent2 = $userAtEventRepo->loadByUserAndEvent($user2, $event2); $this->assertNotNull($user2AtEvent2); $this->assertEquals(false, $user2AtEvent2->getIsPlanAttending()); $this->assertEquals(true, $user2AtEvent2->getIsPlanMaybeAttending()); $this->assertEquals(false, $user2AtEvent2->getIsPlanPublic()); }
public function getNewEventOnArbitraryDate(EventModel $event, \DateTime $newDate) { $timeZoneUTC = new \DateTimeZone("UTC"); $timeZone = new \DateTimeZone($this->timeZoneName); $start = clone $newDate; $start->setTimezone($timeZone); $start->setTime($event->getStartAtInTimezone()->format('G'), $event->getStartAtInTimezone()->format('i'), $event->getStartAtInTimezone()->format('s')); $start->setTimezone($timeZoneUTC); $end = clone $start; $end->add($event->getStartAtInUTC()->diff($event->getEndAtInUTC(), true)); $newEvent = new EventModel(); $newEvent->setGroupId($event->getGroupId()); $newEvent->setVenueId($event->getVenueId()); $newEvent->setCountryId($event->getCountryId()); $newEvent->setEventRecurSetId($this->id); $newEvent->setSummary($event->getSummary()); $newEvent->setDescription($event->getDescription()); $newEvent->setStartAt($start); $newEvent->setEndAt($end); foreach ($this->customFields as $customField) { if ($event->hasCustomField($customField)) { $newEvent->setCustomField($customField, $event->getCustomField($customField)); } } return $newEvent; }
function testEventInTwoGroupsAddedDirectlyThenOneGroupAdded() { TimeSource::mock(2014, 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()); $curatedList = new CuratedListModel(); $curatedList->setTitle("test"); $curatedList->setDescription("test this!"); $clRepo = new CuratedListRepository(); $clRepo->create($curatedList, $site, $user); $group1 = new GroupModel(); $group1->setTitle("test"); $group1->setDescription("test test"); $group1->setUrl("http://www.group.com"); $group2 = new GroupModel(); $group2->setTitle("I don't need no stinking tests"); $group2->setDescription("works first time"); $group2->setUrl("http://www.soveryperfect.com"); $groupRepo = new GroupRepository(); $groupRepo->create($group1, $site, $user); $groupRepo->create($group2, $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)); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user, $group1, array($group2)); // Test Before $eventRepositoryBuilder = new \repositories\builders\EventRepositoryBuilder(); $eventRepositoryBuilder->setCuratedList($curatedList); $this->assertEquals(0, count($eventRepositoryBuilder->fetchAll())); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setGroupInformation($group1); $curatedListsWithInfo = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(1, count($curatedListsWithInfo)); $curatedListWithInfo = $curatedListsWithInfo[0]; $this->assertEquals(false, $curatedListWithInfo->getIsGroupInlist()); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setEventInformation($event); $curatedListsWithInfo = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(1, count($curatedListsWithInfo)); $curatedListWithInfo = $curatedListsWithInfo[0]; $this->assertEquals(false, $curatedListWithInfo->isEventInListViaGroup()); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setContainsEvent($event); $curatedListsContainsEvent = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(0, count($curatedListsContainsEvent)); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setContainsGroup($group1); $curatedListsContainsGroup = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(0, count($curatedListsContainsGroup)); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setContainsGroup($group2); $curatedListsContainsGroup = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(0, count($curatedListsContainsGroup)); // Add group to list TimeSource::mock(2014, 5, 1, 8, 0, 0); $clRepo->addEventtoCuratedList($event, $curatedList, $user); $clRepo->addGroupToCuratedList($group1, $curatedList, $user); // Test After // .... we don't ask for extra info $eventRepositoryBuilder = new \repositories\builders\EventRepositoryBuilder(); $eventRepositoryBuilder->setCuratedList($curatedList); $events = $eventRepositoryBuilder->fetchAll(); $this->assertEquals(1, count($events)); $eventWithInfo = $events[0]; $this->assertNull($eventWithInfo->getInCuratedListGroupId()); $this->assertNull($eventWithInfo->getInCuratedListGroupSlug()); $this->assertNull($eventWithInfo->getInCuratedListGroupTitle()); $this->assertFalse($eventWithInfo->getIsEventInCuratedList()); // .... we Do ask for extra info $eventRepositoryBuilder = new \repositories\builders\EventRepositoryBuilder(); $eventRepositoryBuilder->setCuratedList($curatedList, true); $events = $eventRepositoryBuilder->fetchAll(); $this->assertEquals(1, count($events)); $eventWithInfo = $events[0]; $this->assertEquals($group1->getId(), $eventWithInfo->getInCuratedListGroupId()); $this->assertEquals($group1->getSlug(), $eventWithInfo->getInCuratedListGroupSlug()); $this->assertEquals($group1->getTitle(), $eventWithInfo->getInCuratedListGroupTitle()); $this->assertTrue($eventWithInfo->getIsEventInCuratedList()); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setGroupInformation($group1); $curatedListsWithInfo = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(1, count($curatedListsWithInfo)); $curatedListWithInfo = $curatedListsWithInfo[0]; $this->assertEquals(true, $curatedListWithInfo->getIsGroupInlist()); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setEventInformation($event); $curatedListsWithInfo = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(1, count($curatedListsWithInfo)); $curatedListWithInfo = $curatedListsWithInfo[0]; $this->assertEquals(true, $curatedListWithInfo->isEventInListViaGroup()); $this->assertEquals($group1->getId(), $curatedListWithInfo->getEventInListViaGroupId()); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setContainsEvent($event); $curatedListsContainsEvent = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(1, count($curatedListsContainsEvent)); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setContainsGroup($group1); $curatedListsContainsGroup = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(1, count($curatedListsContainsGroup)); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setContainsGroup($group2); $curatedListsContainsGroup = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(0, count($curatedListsContainsGroup)); // Remove group from list TimeSource::mock(2014, 5, 1, 9, 0, 0); $clRepo->removeGroupFromCuratedList($group1, $curatedList, $user); $clRepo->removeEventFromCuratedList($event, $curatedList, $user); // Test After $eventRepositoryBuilder = new \repositories\builders\EventRepositoryBuilder(); $eventRepositoryBuilder->setCuratedList($curatedList); $this->assertEquals(0, count($eventRepositoryBuilder->fetchAll())); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setGroupInformation($group1); $curatedListsWithInfo = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(1, count($curatedListsWithInfo)); $curatedListWithInfo = $curatedListsWithInfo[0]; $this->assertEquals(false, $curatedListWithInfo->getIsGroupInlist()); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setEventInformation($event); $curatedListsWithInfo = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(1, count($curatedListsWithInfo)); $curatedListWithInfo = $curatedListsWithInfo[0]; $this->assertEquals(false, $curatedListWithInfo->isEventInListViaGroup()); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setContainsEvent($event); $curatedListsContainsEvent = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(0, count($curatedListsContainsEvent)); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setContainsGroup($group1); $curatedListsContainsGroup = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(0, count($curatedListsContainsGroup)); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setContainsGroup($group2); $curatedListsContainsGroup = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(0, count($curatedListsContainsGroup)); }
function testUserWatchingParentAreaWithVenue() { TimeSource::mock(2014, 01, 01, 9, 0, 0); $this->addCountriesToTestDB(); $countryRepo = new CountryRepository(); $areaRepo = new AreaRepository(); $userRepo = new UserAccountRepository(); $siteRepo = new SiteRepository(); $venueRepo = new \repositories\VenueRepository(); $eventRepository = new EventRepository(); $userWatchesAreaRepo = new \repositories\UserWatchesAreaRepository(); $GB = $countryRepo->loadByTwoCharCode("GB"); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo->create($user); $userWatchesMain = new UserAccountModel(); $userWatchesMain->setEmail("*****@*****.**"); $userWatchesMain->setUsername("test1"); $userWatchesMain->setPassword("password1"); $userRepo->create($userWatchesMain); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo->create($site, $user, array($countryRepo->loadByTwoCharCode('GB')), $this->getSiteQuotaUsedForTesting()); $area = new AreaModel(); $area->setTitle("Scotland"); $areaRepo->create($area, null, $site, $GB); $areaChild = new AreaModel(); $areaChild->setTitle("Edinburgh"); $areaRepo->create($areaChild, $area, $site, $GB); $venue = new \models\VenueModel(); $venue->setTitle("Castle"); $venue->setAreaId($areaChild->getId()); $venueRepo->create($venue, $site, $user); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setStartAt(getUTCDateTime(2014, 11, 10, 19, 0, 0)); $event->setEndAt(getUTCDateTime(2014, 11, 10, 21, 0, 0)); $eventRepository->create($event, $site, $user); $event->setVenueId($venue->getId()); TimeSource::mock(2014, 01, 01, 9, 1, 0); $eventRepository->edit($event); // have to update child cache $areaRepo->buildCacheAreaHasParent($area); $areaRepo->buildCacheAreaHasParent($areaChild); // test before $erb = new EventRepositoryBuilder(); $erb->setUserAccount($userWatchesMain, false, true, true, true); $events = $erb->fetchAll(); $this->assertEquals(0, count($events)); $erb = new EventRepositoryBuilder(); $erb->setUserAccount($userWatchesMain, false, true, true, false); $events = $erb->fetchAll(); $this->assertEquals(0, count($events)); // test watching main group gets event $userWatchesAreaRepo->startUserWatchingArea($userWatchesMain, $area); $erb = new EventRepositoryBuilder(); $erb->setUserAccount($userWatchesMain, false, true, true, true); $events = $erb->fetchAll(); $this->assertEquals(1, count($events)); $erb = new EventRepositoryBuilder(); $erb->setUserAccount($userWatchesMain, false, true, true, false); $events = $erb->fetchAll(); $this->assertEquals(0, count($events)); }
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 addDataToEventBeforeCheck(EventModel $eventModel) { $eventModel->setSummary($this->draftEvent->getDetailsValue('event.summary')); $eventModel->setDescription($this->draftEvent->getDetailsValue('event.description')); $eventModel->setUrl($this->draftEvent->getDetailsValue('event.url')); $eventModel->setTicketUrl($this->draftEvent->getDetailsValue('event.ticket_url')); foreach ($this->site->getCachedEventCustomFieldDefinitionsAsModels() as $customField) { if ($this->draftEvent->hasDetailsValue('event.custom.' . $customField->getKey())) { $eventModel->setCustomField($customField, $this->draftEvent->getDetailsValue('event.custom.' . $customField->getKey())); } } if ($this->site->getIsFeaturePhysicalEvents() && $this->site->getIsFeatureVirtualEvents()) { $eventModel->setIsPhysical($this->draftEvent->getDetailsValue('event.is_physical')); $eventModel->setIsVirtual($this->draftEvent->getDetailsValue('event.is_virtual')); } else { if ($this->site->getIsFeaturePhysicalEvents()) { $eventModel->setIsPhysical(true); $eventModel->setIsVirtual(false); } else { if ($this->site->getIsFeatureVirtualEvents()) { $eventModel->setIsPhysical(false); $eventModel->setIsVirtual(true); } } } }
/** * @dataProvider dataForTestScoreSummaryCompareWithNoMatchList */ function testScoreSummaryCompareWithNoMatchList($summary1, $summary2, $noMatchList, $scoreExpected) { $site = new SiteModel(); $eventNew = new models\EventModel(); $eventNew->setStartAt(new \DateTime("12th Feb 2012 10:00:00")); $eventNew->setEndAt(new \DateTime("12th Feb 2012 13:00:00")); $eventNew->setSummary($summary1); $eventExisting = new models\EventModel(); $eventExisting->setStartAt(new \DateTime("12th March 2012 10:00:00")); $eventExisting->setEndAt(new \DateTime("12th March 2012 13:00:00")); $eventExisting->setSummary($summary2); $sfde = new SearchForDuplicateEvents($eventNew, $site, 3, 2, $noMatchList); $score = $sfde->getScoreForConsideredEvent($eventExisting); $this->assertEquals($scoreExpected, $score); }
function testAddSet() { 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()); $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)); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); $group1 = new GroupModel(); $group1->setTitle("test"); $group1->setDescription("test test"); $group1->setUrl("http://www.group.com"); $group2 = new GroupModel(); $group2->setTitle("test2"); $group2->setDescription("test 2"); $groupRepo = new GroupRepository(); $groupRepo->create($group1, $site, $user); $groupRepo->create($group2, $site, $user); ## Add event to group1, test $groupRepo->addEventToGroup($event, $group1, $user); $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals($group1->getId(), $event->getGroupId()); $this->assertEquals("test", $event->getGroupTitle()); ## Add event to group2, test group1 is still main group $groupRepo->addEventToGroup($event, $group2, $user); $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals($group1->getId(), $event->getGroupId()); $this->assertEquals("test", $event->getGroupTitle()); ## set main group to group2, test $groupRepo->setMainGroupForEvent($group2, $event, $user); $event = $eventRepository->loadBySlug($site, $event->getSlug()); $this->assertEquals($group2->getId(), $event->getGroupId()); $this->assertEquals("test2", $event->getGroupTitle()); }
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)); }
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 testIsGroupRunningOutOfFutureEvents() { \TimeSource::mock(2014, 1, 1, 1, 1, 1); $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"); $site->setPromptEmailsDaysInAdvance(28); $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"); $groupRepo = new GroupRepository(); $groupRepo->create($group, $site, $user); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setStartAt(getUTCDateTime(2014, 4, 1, 19, 0, 0, 'Europe/London')); $event->setEndAt(getUTCDateTime(2014, 4, 1, 21, 0, 0, 'Europe/London')); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user, $group); ### TEST \TimeSource::mock(2014, 2, 1, 1, 1, 1); $this->assertEquals(0, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); ### TEST \TimeSource::mock(2014, 2, 15, 1, 1, 1); $this->assertEquals(0, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); ### TEST \TimeSource::mock(2014, 3, 1, 1, 1, 1); $this->assertEquals(0, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); ### TEST \TimeSource::mock(2014, 3, 2, 1, 1, 1); $this->assertEquals(0, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); ### TEST \TimeSource::mock(2014, 3, 3, 1, 1, 1); $this->assertEquals(0, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); ### TEST \TimeSource::mock(2014, 3, 4, 1, 1, 1); $this->assertEquals(0, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); ### TEST \TimeSource::mock(2014, 3, 5, 1, 1, 1); $this->assertEquals(1, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); ### TEST \TimeSource::mock(2014, 3, 6, 1, 1, 1); $this->assertEquals(1, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); ### TEST \TimeSource::mock(2014, 3, 7, 1, 1, 1); $this->assertEquals(1, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); ### TEST \TimeSource::mock(2014, 3, 20, 1, 1, 1); $this->assertEquals(1, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); ### TEST \TimeSource::mock(2014, 4, 1, 1, 1, 1); $this->assertEquals(1, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); ### TEST \TimeSource::mock(2014, 4, 15, 1, 1, 1); $this->assertEquals(2, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); ### TEST \TimeSource::mock(2014, 5, 1, 1, 1, 1); $this->assertEquals(2, $groupRepo->isGroupRunningOutOfFutureEvents($group, $site)); }