public function test() { // insert test data $builder = $this->db->getQueryBuilder(); $builder->insert('clndr_calendars')->values(['userid' => $builder->createNamedParameter('test-user-666'), 'displayname' => $builder->createNamedParameter('Display Name'), 'uri' => $builder->createNamedParameter('events'), 'ctag' => $builder->createNamedParameter('112233'), 'active' => $builder->createNamedParameter('1')])->execute(); $builder = $this->db->getQueryBuilder(); $builder->insert('clndr_objects')->values(['calendarid' => $builder->createNamedParameter(6666), 'objecttype' => $builder->createNamedParameter('VEVENT'), 'startdate' => $builder->createNamedParameter(new \DateTime(), 'datetime'), 'enddate' => $builder->createNamedParameter(new \DateTime(), 'datetime'), 'repeating' => $builder->createNamedParameter(0), 'summary' => $builder->createNamedParameter('Something crazy will happen'), 'uri' => $builder->createNamedParameter('event.ics'), 'lastmodified' => $builder->createNamedParameter('112233')])->execute(); $builder = $this->db->getQueryBuilder(); $builder->insert('share')->values(['share_type' => $builder->createNamedParameter(1), 'share_with' => $builder->createNamedParameter('user01'), 'uid_owner' => $builder->createNamedParameter('user02'), 'item_type' => $builder->createNamedParameter('calendar'), 'item_source' => $builder->createNamedParameter(6666), 'item_target' => $builder->createNamedParameter('Contacts (user02)')])->execute(); // test the adapter $this->adapter->foreachCalendar('test-user-666', function ($row) { $this->cals[] = $row; }); $this->assertArrayHasKey('id', $this->cals[0]); $this->assertEquals('test-user-666', $this->cals[0]['userid']); $this->assertEquals('Display Name', $this->cals[0]['displayname']); $this->assertEquals('events', $this->cals[0]['uri']); $this->assertEquals('112233', $this->cals[0]['ctag']); $this->adapter->foreachCalendarObject(6666, function ($row) { $this->calObjs[] = $row; }); $this->assertArrayHasKey('id', $this->calObjs[0]); $this->assertEquals(6666, $this->calObjs[0]['calendarid']); // test getShares $shares = $this->adapter->getShares(6666); $this->assertEquals(1, count($shares)); }
/** * @param int $calendarId * @param int $newCalendarId */ private function migrateCalendar($calendarId, $newCalendarId) { $this->adapter->foreachCalendarObject($calendarId, function ($calObject) use($newCalendarId) { try { $this->backend->createCalendarObject($newCalendarId, $calObject['uri'], $calObject['calendardata']); } catch (\Exception $ex) { $eventId = $calObject['id']; $calendarId = $calObject['calendarId']; $msg = "One event could not be migrated. (id: {$eventId}, calendarid: {$calendarId})"; $this->logger->logException($ex, ['app' => 'dav', 'message' => $msg]); if (!is_null($this->consoleOutput)) { $this->consoleOutput->writeln($msg); } } }); }
/** * @param int $calendarId * @param int $newCalendarId */ private function migrateCalendar($calendarId, $newCalendarId) { $this->adapter->foreachCalendarObject($calendarId, function ($calObject) use($newCalendarId) { $this->backend->createCalendarObject($newCalendarId, $calObject['uri'], $calObject['calendardata']); }); }