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;
 }