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 testEndAfterStart() { $event = new EventModel(); $event->setStartAt(getUTCDateTime(2013, 8, 01, 18, 0, 0)); $event->setEndAt(getUTCDateTime(2013, 8, 01, 17, 0, 0)); $this->assertEquals(false, $event->validate()); }
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 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 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())); }
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 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 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 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)); }
/** * @dataProvider dataForTest1 */ function test1($year, $month, $day, $hour, $minute, $second, $result) { TimeSource::mock($year, $month, $day, $hour, $minute, $second); $ext = new twig\extensions\TimeSinceInWordsExtension(); $this->assertEquals($result, $ext->timeSinceInWords(getUTCDateTime(2014, 1, 1, 9, 30, 0))); }
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()); }
function testAddOnCreate() { 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()); $tag = new TagModel(); $tag->setTitle("test"); $tagRepo = new TagRepository(); $tagRepo->create($tag, $site, $user); $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, null, null, null, array($tag)); ## test $tagRepoBuilder = new TagRepositoryBuilder(); $tagRepoBuilder->setSite($site); $tagRepoBuilder->setTagsForEvent($event); $this->assertEquals(1, count($tagRepoBuilder->fetchAll())); $tagRepoBuilder = new TagRepositoryBuilder(); $tagRepoBuilder->setSite($site); $tagRepoBuilder->setTagsNotForEvent($event); $this->assertEquals(0, count($tagRepoBuilder->fetchAll())); $eventRepoBuilder = new EventRepositoryBuilder(); $eventRepoBuilder->setSite($site); $eventRepoBuilder->setTag($tag); $this->assertEquals(1, count($eventRepoBuilder->fetchAll())); }
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()); $curatedList = new CuratedListModel(); $curatedList->setTitle("test"); $curatedList->setDescription("test this!"); $clRepo = new CuratedListRepository(); $clRepo->create($curatedList, $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); // Test Before $eventRepositoryBuilder = new \repositories\builders\EventRepositoryBuilder(); $eventRepositoryBuilder->setCuratedList($curatedList); $this->assertEquals(0, count($eventRepositoryBuilder->fetchAll())); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setEventInformation($event); $curatedListsWithInfo = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(1, count($curatedListsWithInfo)); $curatedListWithInfo = $curatedListsWithInfo[0]; $this->assertEquals(false, $curatedListWithInfo->getIsEventInlist()); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setContainsEvent($event); $curatedListsContainsEvent = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(0, count($curatedListsContainsEvent)); // Add event to list TimeSource::mock(2014, 5, 1, 8, 0, 0); $clRepo->addEventtoCuratedList($event, $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->assertNull($eventWithInfo->getInCuratedListGroupId()); $this->assertNull($eventWithInfo->getInCuratedListGroupSlug()); $this->assertNull($eventWithInfo->getInCuratedListGroupTitle()); $this->assertTrue($eventWithInfo->getIsEventInCuratedList()); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setEventInformation($event); $curatedListsWithInfo = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(1, count($curatedListsWithInfo)); $curatedListWithInfo = $curatedListsWithInfo[0]; $this->assertEquals(true, $curatedListWithInfo->getIsEventInlist()); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setContainsEvent($event); $curatedListsContainsEvent = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(1, count($curatedListsContainsEvent)); // Remove event to list TimeSource::mock(2014, 5, 1, 9, 0, 0); $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->setEventInformation($event); $curatedListsWithInfo = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(1, count($curatedListsWithInfo)); $curatedListWithInfo = $curatedListsWithInfo[0]; $this->assertEquals(false, $curatedListWithInfo->getIsEventInlist()); $curatedListRepoBuilder = new CuratedListRepositoryBuilder(); $curatedListRepoBuilder->setContainsEvent($event); $curatedListsContainsEvent = $curatedListRepoBuilder->fetchAll(); $this->assertEquals(0, count($curatedListsContainsEvent)); }
function testChangeStartEnd1() { TimeSource::mock(2014, 1, 1, 9, 0, 0); $eventSet = new EventRecurSetModel(); $eventSet->setTimeZoneName('Europe/London'); $initialEvent = new EventModel(); $initialEvent->setSlug(1); $initialEvent->setSummary("Party"); $initialEvent->setStartAt(getUTCDateTime(2014, 1, 7, 19, 0, 0)); $initialEvent->setEndAt(getUTCDateTime(2014, 1, 7, 21, 0, 0)); $eventSet->setInitialEventJustBeforeLastChange($initialEvent); $initialEventEdited = clone $initialEvent; $initialEventEdited->setStartAt(getUTCDateTime(2014, 1, 7, 20, 0, 0)); $initialEventEdited->setEndAt(getUTCDateTime(2014, 1, 7, 23, 0, 0)); $eventSet->setInitalEvent($initialEventEdited); $futureEvent1 = new EventModel(); $futureEvent1->setSlug(2); $futureEvent1->setSummary("Party"); $futureEvent1->setStartAt(getUTCDateTime(2014, 1, 14, 19, 0, 0)); $futureEvent1->setEndAt(getUTCDateTime(2014, 1, 14, 21, 0, 0)); $eventSet->setFutureEvents(array($futureEvent1)); $eventHistory = new \models\EventHistoryModel(); $eventHistory->setFromDataBaseRow(array('event_id' => null, 'summary' => null, 'description' => null, 'start_at' => null, 'end_at' => null, 'created_at' => null, 'is_deleted' => null, 'is_cancelled' => null, 'country_id' => null, 'timezone' => null, 'venue_id' => null, 'url' => null, 'ticket_url' => null, 'is_virtual' => null, 'is_physical' => null, 'area_id' => null, 'user_account_id' => null, 'summary_changed' => '-1', 'description_changed' => '-1', 'start_at_changed' => '1', 'end_at_changed' => '1', 'is_deleted_changed' => '-1', 'country_id_changed' => '-1', 'timezone_changed' => '-1', 'venue_id_changed' => '-1', 'url_changed' => '-1', 'is_virtual_changed' => '-1', 'is_physical_changed' => '-1', 'area_id_changed' => '-1', 'is_new' => '-1', 'custom_fields' => null, 'custom_fields_changed' => null)); $eventSet->setInitalEventLastChange($eventHistory); ## Detect !!! $eventSet->applyChangeToFutureEvents(); ## Test Changes Picked Up $proposedChanges1 = $eventSet->getFutureEventsProposedChangesForEventSlug($futureEvent1->getSlug()); $this->assertEquals(false, $proposedChanges1->getSummaryChangePossible()); $this->assertEquals(false, $proposedChanges1->getSummaryChangeSelected()); $this->assertEquals(false, $proposedChanges1->getDescriptionChangePossible()); $this->assertEquals(false, $proposedChanges1->getDescriptionChangeSelected()); $this->assertEquals(false, $proposedChanges1->getTimezoneChangePossible()); $this->assertEquals(false, $proposedChanges1->getTimezoneChangeSelected()); $this->assertEquals(false, $proposedChanges1->getCountryAreaVenueIdChangePossible()); $this->assertEquals(false, $proposedChanges1->getCountryAreaVenueIdChangeSelected()); $this->assertEquals(false, $proposedChanges1->getUrlChangePossible()); $this->assertEquals(false, $proposedChanges1->getUrlChangeSelected()); $this->assertEquals(false, $proposedChanges1->getIsVirtualChangePossible()); $this->assertEquals(false, $proposedChanges1->getIsVirtualChangeSelected()); $this->assertEquals(false, $proposedChanges1->getIsPhysicalChangePossible()); $this->assertEquals(false, $proposedChanges1->getIsPhysicalChangeSelected()); $this->assertEquals(true, $proposedChanges1->getStartEndAtChangePossible()); $this->assertEquals(true, $proposedChanges1->getStartEndAtChangeSelected()); $this->assertEquals(true, $proposedChanges1->isAnyChangesPossible()); ## Now Set to don't update and run and test $proposedChanges1->setStartEndAtChangeSelected(false); $this->assertEquals(false, $proposedChanges1->applyToEvent($futureEvent1, $initialEventEdited)); $this->assertEquals(getUTCDateTime(2014, 1, 14, 19, 0, 0)->getTimestamp(), $futureEvent1->getStartAtInUTC()->getTimestamp()); $this->assertEquals(getUTCDateTime(2014, 1, 14, 21, 0, 0)->getTimestamp(), $futureEvent1->getEndAtInUTC()->getTimestamp()); ## Now Set to do update and run and test $proposedChanges1->setStartEndAtChangeSelected(true); $this->assertEquals(true, $proposedChanges1->applyToEvent($futureEvent1, $initialEventEdited)); $this->assertEquals(getUTCDateTime(2014, 1, 14, 20, 0, 0)->getTimestamp(), $futureEvent1->getStartAtInUTC()->getTimestamp()); $this->assertEquals(getUTCDateTime(2014, 1, 14, 23, 0, 0)->getTimestamp(), $futureEvent1->getEndAtInUTC()->getTimestamp()); }
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)); }
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 testIntegration1() { \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()); ## Create Event \TimeSource::mock(2014, 1, 1, 13, 0, 0); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setStartAt(getUTCDateTime(2014, 9, 1, 1, 1, 1)); $event->setEndAt(getUTCDateTime(2014, 9, 1, 1, 1, 1)); $eventRepo = new EventRepository(); $eventRepo->create($event, $site, $user); ## Edit event \TimeSource::mock(2014, 1, 1, 14, 0, 0); $event = $eventRepo->loadBySlug($site, $event->getSlug()); $event->setDescription("testy 123"); $eventRepo->edit($event, $user); # delete event \TimeSource::mock(2014, 1, 1, 15, 0, 0); $eventRepo->delete($event, $user); ## Now save changed flags on these ..... $eventHistoryRepo = new EventHistoryRepository(); $stat = $this->app['db']->prepare("SELECT * FROM event_history"); $stat->execute(); while ($data = $stat->fetch()) { $eventHistory = new EventHistoryModel(); $eventHistory->setFromDataBaseRow($data); $eventHistoryRepo->ensureChangedFlagsAreSet($eventHistory); } ## Now load and check $historyRepo = new HistoryRepositoryBuilder(); $historyRepo->setSite($site); $historyRepo->setIncludeEventHistory(true); $histories = $historyRepo->fetchAll(); $this->assertEquals(3, count($histories)); #the delete $this->assertEquals(FALSE, $histories[0]->getSummaryChanged()); $this->assertEquals(false, $histories[0]->getDescriptionChanged()); $this->assertEquals(true, $histories[0]->getIsDeletedChanged()); #the edit $this->assertEquals(FALSE, $histories[1]->getSummaryChanged()); $this->assertEquals(true, $histories[1]->getDescriptionChanged()); $this->assertEquals(false, $histories[1]->getIsDeletedChanged()); #the create $this->assertEquals(true, $histories[2]->getSummaryChanged()); $this->assertEquals(true, $histories[2]->getDescriptionChanged()); $this->assertEquals(false, $histories[2]->getIsDeletedChanged()); ## Now load history at a certain point; this is to test rollback! $history = $eventHistoryRepo->loadByEventAndtimeStamp($event, getUTCDateTime(2014, 1, 1, 15, 0, 0)->getTimestamp()); $this->assertEquals("test", $history->getSummary()); $this->assertEquals("testy 123", $history->getDescription()); }
public function testAddCustomFieldThenCreateEventWithContent() { 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()); $customFieldDefinition1 = new EventCustomFieldDefinitionModel(); $customFieldDefinition1->setSiteId($site->getId()); $customFieldDefinition1->setExtensionId('org.openacalendar'); $customFieldDefinition1->setType('TextSingleLine'); $customFieldDefinition1->setKey('cats'); $customFieldDefinition1->setLabel('cats'); $customFieldDefinition2 = new EventCustomFieldDefinitionModel(); $customFieldDefinition2->setSiteId($site->getId()); $customFieldDefinition2->setExtensionId('org.openacalendar'); $customFieldDefinition2->setType('TextSingleLine'); $customFieldDefinition2->setKey('dogs'); $customFieldDefinition2->setLabel('dogs'); $ecfRepo = new EventCustomFieldDefinitionRepository(); $ecfRepo->create($customFieldDefinition1, $user); $ecfRepo->create($customFieldDefinition2, $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"); $event->setCustomField($customFieldDefinition1, "CATS"); // CREATE WITH TimeSource::mock(2014, 5, 1, 7, 1, 0); $eventRepository = new EventRepository(); $eventRepository->create($event, $site, $user); $event = $eventRepository->loadByID($event->getId()); $this->assertEquals(true, $event->hasCustomField($customFieldDefinition1)); $this->assertEquals(false, $event->hasCustomField($customFieldDefinition2)); $this->assertFalse($event->getIsDeleted()); // LET's CHECK HISTORY $eventHistoryRepo = new EventHistoryRepository(); $stat = $this->app['db']->prepare("SELECT * FROM event_history"); $stat->execute(); while ($data = $stat->fetch()) { $eventHistory = new EventHistoryModel(); $eventHistory->setFromDataBaseRow($data); $eventHistoryRepo->ensureChangedFlagsAreSet($eventHistory); } $eventHistoryRepoBuilder = new EventHistoryRepositoryBuilder(); $eventHistoryRepoBuilder->setEvent($event); $histories = $eventHistoryRepoBuilder->fetchAll(); $this->assertEquals(1, count($histories)); $historyCreate = $histories[0]; $this->assertTrue($historyCreate->getCustomFieldChangedKnown($customFieldDefinition1)); $this->assertTrue($historyCreate->getCustomFieldChanged($customFieldDefinition1)); $this->assertFalse($historyCreate->getCustomFieldChanged($customFieldDefinition2)); }
function testChangCustomField1() { TimeSource::mock(2014, 1, 1, 9, 0, 0); $customFieldDefinition1 = new EventCustomFieldDefinitionModel(); $customFieldDefinition1->setId(1); $customFieldDefinition1->setExtensionId('org.openacalendar'); $customFieldDefinition1->setType('TextSingleLine'); $customFieldDefinition1->setKey('cats'); $customFieldDefinition1->setLabel('cats'); $eventSet = new EventRecurSetModel(); $eventSet->setTimeZoneName('Europe/London'); $eventSet->setCustomFields(array($customFieldDefinition1)); $initialEvent = new EventModel(); $initialEvent->setSlug(1); $initialEvent->setCustomField($customFieldDefinition1, "Dogs go miaow"); // this is the inital wrong value $initialEvent->setStartAt(getUTCDateTime(2014, 1, 7, 19, 0, 0)); $initialEvent->setEndAt(getUTCDateTime(2014, 1, 7, 21, 0, 0)); $eventSet->setInitialEventJustBeforeLastChange($initialEvent); $initialEventEdited = clone $initialEvent; $initialEventEdited->setCustomField($customFieldDefinition1, "Dogs go woof"); // this is the later corrected value $eventSet->setInitalEvent($initialEventEdited); $futureEvent1 = new EventModel(); $futureEvent1->setSlug(2); $futureEvent1->setCustomField($customFieldDefinition1, "Dogs go miaow"); // this is the earlier wrong value that we will want to overwrite $futureEvent1->setStartAt(getUTCDateTime(2014, 1, 14, 19, 0, 0)); $futureEvent1->setEndAt(getUTCDateTime(2014, 1, 14, 21, 0, 0)); $futureEvent2 = new EventModel(); $futureEvent2->setSlug(3); $futureEvent2->setCustomField($customFieldDefinition1, "Dogs go woof"); // this value has already been corrected $futureEvent2->setStartAt(getUTCDateTime(2014, 1, 21, 19, 0, 0)); $futureEvent2->setEndAt(getUTCDateTime(2014, 1, 21, 21, 0, 0)); $futureEvent3 = new EventModel(); $futureEvent3->setSlug(4); $futureEvent3->setCustomField($customFieldDefinition1, "Dogs go miaowwwwwwww"); // this value has already been edited. Possible to overwrite but not recommended $futureEvent3->setStartAt(getUTCDateTime(2014, 1, 21, 19, 0, 0)); $futureEvent3->setEndAt(getUTCDateTime(2014, 1, 21, 21, 0, 0)); $eventSet->setFutureEvents(array($futureEvent1, $futureEvent2, $futureEvent3)); $eventHistory = new \models\EventHistoryModel(); $eventHistory->setFromDataBaseRow(array('event_id' => null, 'summary' => null, 'description' => null, 'start_at' => null, 'end_at' => null, 'created_at' => null, 'is_deleted' => null, 'is_cancelled' => null, 'country_id' => null, 'timezone' => null, 'venue_id' => null, 'url' => null, 'ticket_url' => null, 'is_virtual' => null, 'is_physical' => null, 'area_id' => null, 'user_account_id' => null, 'summary_changed' => '-1', 'description_changed' => '-1', 'start_at_changed' => '-1', 'end_at_changed' => '-1', 'is_deleted_changed' => '-1', 'country_id_changed' => '-1', 'timezone_changed' => '-1', 'venue_id_changed' => '-1', 'url_changed' => '-1', 'is_virtual_changed' => '-1', 'is_physical_changed' => '-1', 'area_id_changed' => '-1', 'is_new' => '-1', 'custom_fields' => json_encode(array('1' => 'Dogs go woof')), 'custom_fields_changed' => json_encode(array('1' => 1)))); $eventSet->setInitalEventLastChange($eventHistory); ## Detect !!! $eventSet->applyChangeToFutureEvents(); ## Test Changes Picked Up $proposedChanges1 = $eventSet->getFutureEventsProposedChangesForEventSlug($futureEvent1->getSlug()); $this->assertEquals(false, $proposedChanges1->getSummaryChangePossible()); $this->assertEquals(false, $proposedChanges1->getSummaryChangeSelected()); $this->assertEquals(false, $proposedChanges1->getDescriptionChangePossible()); $this->assertEquals(false, $proposedChanges1->getDescriptionChangeSelected()); $this->assertEquals(false, $proposedChanges1->getTimezoneChangePossible()); $this->assertEquals(false, $proposedChanges1->getTimezoneChangeSelected()); $this->assertEquals(false, $proposedChanges1->getCountryAreaVenueIdChangePossible()); $this->assertEquals(false, $proposedChanges1->getCountryAreaVenueIdChangeSelected()); $this->assertEquals(false, $proposedChanges1->getUrlChangePossible()); $this->assertEquals(false, $proposedChanges1->getUrlChangeSelected()); $this->assertEquals(false, $proposedChanges1->getIsVirtualChangePossible()); $this->assertEquals(false, $proposedChanges1->getIsVirtualChangeSelected()); $this->assertEquals(false, $proposedChanges1->getIsPhysicalChangePossible()); $this->assertEquals(false, $proposedChanges1->getIsPhysicalChangeSelected()); $this->assertEquals(false, $proposedChanges1->getStartEndAtChangePossible()); $this->assertEquals(false, $proposedChanges1->getStartEndAtChangeSelected()); $this->assertEquals(true, $proposedChanges1->getCustomFieldChangePossible($customFieldDefinition1)); $this->assertEquals(true, $proposedChanges1->getCustomFieldChangeSelected($customFieldDefinition1)); $proposedChanges2 = $eventSet->getFutureEventsProposedChangesForEventSlug($futureEvent2->getSlug()); $this->assertEquals(false, $proposedChanges2->getSummaryChangePossible()); $this->assertEquals(false, $proposedChanges2->getSummaryChangeSelected()); $this->assertEquals(false, $proposedChanges2->getDescriptionChangePossible()); $this->assertEquals(false, $proposedChanges2->getDescriptionChangeSelected()); $this->assertEquals(false, $proposedChanges2->getTimezoneChangePossible()); $this->assertEquals(false, $proposedChanges2->getTimezoneChangeSelected()); $this->assertEquals(false, $proposedChanges2->getCountryAreaVenueIdChangePossible()); $this->assertEquals(false, $proposedChanges2->getCountryAreaVenueIdChangeSelected()); $this->assertEquals(false, $proposedChanges2->getUrlChangePossible()); $this->assertEquals(false, $proposedChanges2->getUrlChangeSelected()); $this->assertEquals(false, $proposedChanges2->getIsVirtualChangePossible()); $this->assertEquals(false, $proposedChanges2->getIsVirtualChangeSelected()); $this->assertEquals(false, $proposedChanges2->getIsPhysicalChangePossible()); $this->assertEquals(false, $proposedChanges2->getIsPhysicalChangeSelected()); $this->assertEquals(false, $proposedChanges2->getStartEndAtChangePossible()); $this->assertEquals(false, $proposedChanges2->getStartEndAtChangeSelected()); $this->assertEquals(false, $proposedChanges2->isAnyChangesPossible()); $this->assertEquals(false, $proposedChanges2->getCustomFieldChangePossible($customFieldDefinition1)); $this->assertEquals(false, $proposedChanges2->getCustomFieldChangeSelected($customFieldDefinition1)); $proposedChanges3 = $eventSet->getFutureEventsProposedChangesForEventSlug($futureEvent3->getSlug()); $this->assertEquals(false, $proposedChanges3->getSummaryChangePossible()); $this->assertEquals(false, $proposedChanges3->getSummaryChangeSelected()); $this->assertEquals(false, $proposedChanges3->getDescriptionChangePossible()); $this->assertEquals(false, $proposedChanges3->getDescriptionChangeSelected()); $this->assertEquals(false, $proposedChanges3->getTimezoneChangePossible()); $this->assertEquals(false, $proposedChanges3->getTimezoneChangeSelected()); $this->assertEquals(false, $proposedChanges3->getCountryAreaVenueIdChangePossible()); $this->assertEquals(false, $proposedChanges3->getCountryAreaVenueIdChangeSelected()); $this->assertEquals(false, $proposedChanges3->getUrlChangePossible()); $this->assertEquals(false, $proposedChanges3->getUrlChangeSelected()); $this->assertEquals(false, $proposedChanges3->getIsVirtualChangePossible()); $this->assertEquals(false, $proposedChanges3->getIsVirtualChangeSelected()); $this->assertEquals(false, $proposedChanges3->getIsPhysicalChangePossible()); $this->assertEquals(false, $proposedChanges3->getIsPhysicalChangeSelected()); $this->assertEquals(false, $proposedChanges3->getStartEndAtChangePossible()); $this->assertEquals(false, $proposedChanges3->getStartEndAtChangeSelected()); $this->assertEquals(true, $proposedChanges3->isAnyChangesPossible()); $this->assertEquals(true, $proposedChanges3->getCustomFieldChangePossible($customFieldDefinition1)); $this->assertEquals(false, $proposedChanges3->getCustomFieldChangeSelected($customFieldDefinition1)); ## Now Set to don't update and run and test $proposedChanges1->setCustomFieldChangeSelected($customFieldDefinition1, false); $this->assertEquals(false, $proposedChanges1->applyToEvent($futureEvent1, $initialEventEdited)); $this->assertEquals("Dogs go miaow", $futureEvent1->getCustomField($customFieldDefinition1)); ## Now Set to do update and run and test $proposedChanges1->setCustomFieldChangeSelected($customFieldDefinition1, true); $this->assertEquals(true, $proposedChanges1->applyToEvent($futureEvent1, $initialEventEdited)); $this->assertEquals("Dogs go woof", $futureEvent1->getCustomField($customFieldDefinition1)); }