function testException() { /** @var DbHandler | \PHPUnit_Framework_MockObject_MockObject $dbHandler */ $dbHandler = $this->getMockBuilder('OCA\\Federation\\DbHandler')->disableOriginalConstructor()->getMock(); $dbHandler->method('getAllServer')->willReturn([['url' => 'https://cloud.drop.box', 'url_hash' => 'sha1', 'shared_secret' => 'iloveowncloud', 'sync_token' => '0']]); $syncService = $this->getMockBuilder('OCA\\DAV\\CardDAV\\SyncService')->disableOriginalConstructor()->getMock(); $syncService->expects($this->once())->method('syncRemoteAddressBook')->willThrowException(new \Exception('something did not work out')); $s = new SyncFederationAddressBooks($dbHandler, $syncService); $s->syncThemAll(function ($url, $ex) { $this->callBacks[] = [$url, $ex]; }); $this->assertEquals(2, count($this->callBacks)); }
/** * @param InputInterface $input * @param OutputInterface $output * @return int */ protected function execute(InputInterface $input, OutputInterface $output) { $progress = new ProgressBar($output); $progress->start(); $this->syncService->syncThemAll(function ($url, $ex) use($progress, $output) { if ($ex instanceof \Exception) { $output->writeln("Error while syncing {$url} : " . $ex->getMessage()); } else { $progress->advance(); } }); $progress->finish(); $output->writeln(''); return 0; }