diff --git a/apps/dav/appinfo/app.php b/apps/dav/appinfo/app.php
index b5bf9bd0e7373a839e6e54b712e2da051e8306cd..d33545222b0b61dc0fd43ab0c07147a44438fd39 100644
--- a/apps/dav/appinfo/app.php
+++ b/apps/dav/appinfo/app.php
@@ -25,7 +25,6 @@ $app = new Application();
 $app->registerHooks();
 
 \OC::$server->registerService('CardDAVSyncService', function() use ($app) {
-
 	return $app->getSyncService();
 });
 
diff --git a/apps/dav/appinfo/application.php b/apps/dav/appinfo/application.php
index 2a27dbeb0166e7f2602a07b061369b60c772e1f8..d8cf2a34115cc0255f01f406b1a6f713de0b6008 100644
--- a/apps/dav/appinfo/application.php
+++ b/apps/dav/appinfo/application.php
@@ -20,7 +20,6 @@
  */
 namespace OCA\Dav\AppInfo;
 
-use OCA\DAV\CardDAV\CardDavBackend;
 use OCA\DAV\CardDAV\ContactsManager;
 use OCA\DAV\CardDAV\SyncJob;
 use OCA\DAV\CardDAV\SyncService;
diff --git a/apps/federation/appinfo/application.php b/apps/federation/appinfo/application.php
index 6137b34e28d483dbf55224213ef74be83af942d9..0d033f449820f017af43318fcfb6445c00bcc947 100644
--- a/apps/federation/appinfo/application.php
+++ b/apps/federation/appinfo/application.php
@@ -174,8 +174,9 @@ class Application extends \OCP\AppFramework\App {
 	 * @return SyncFederationAddressBooks
 	 */
 	public function getSyncService() {
+		$syncService = \OC::$server->query('CardDAVSyncService');
 		$dbHandler = $this->getContainer()->query('DbHandler');
-		return new SyncFederationAddressBooks($dbHandler);
+		return new SyncFederationAddressBooks($dbHandler, $syncService);
 	}
 
 }
diff --git a/apps/federation/appinfo/info.xml b/apps/federation/appinfo/info.xml
index 54ea4831be002d6d08c6604e925a70749486ab3b..7786deef38e180709da30070effeb26d6f7422af 100644
--- a/apps/federation/appinfo/info.xml
+++ b/apps/federation/appinfo/info.xml
@@ -5,7 +5,7 @@
     <description>ownCloud Federation allows you to connect with other trusted ownClouds to exchange the user directory. For example this will be used to auto-complete external users for federated sharing.</description>
     <licence>AGPL</licence>
     <author>Bjoern Schiessle</author>
-    <version>0.0.2</version>
+    <version>0.0.3</version>
     <namespace>Federation</namespace>
     <category>other</category>
 	<dependencies>
diff --git a/apps/federation/lib/syncfederationaddressbooks.php b/apps/federation/lib/syncfederationaddressbooks.php
index cff848bf135c695e48e578be580d266e42289fb9..f9f402ea03176ad17a444732f54b6fd4c24965fd 100644
--- a/apps/federation/lib/syncfederationaddressbooks.php
+++ b/apps/federation/lib/syncfederationaddressbooks.php
@@ -19,9 +19,8 @@ class SyncFederationAddressBooks {
 	/**
 	 * @param DbHandler $dbHandler
 	 */
-	function __construct(DbHandler $dbHandler) {
-
-		$this->syncService = \OC::$server->query('CardDAVSyncService');
+	function __construct(DbHandler $dbHandler, $syncService) {
+		$this->syncService = $syncService;
 		$this->dbHandler = $dbHandler;
 	}
 
@@ -30,7 +29,7 @@ class SyncFederationAddressBooks {
 		$trustedServers = $this->dbHandler->getAllServer();
 		foreach ($trustedServers as $trustedServer) {
 			$url = $trustedServer['url'];
-			$callback($url);
+			$callback($url, null);
 			$sharedSecret = $trustedServer['shared_secret'];
 			$syncToken = $trustedServer['sync_token'];
 
diff --git a/apps/federation/tests/lib/syncfederationaddressbookstest.php b/apps/federation/tests/lib/syncfederationaddressbookstest.php
new file mode 100644
index 0000000000000000000000000000000000000000..6932c1e1360533b2c22e14714d54c330dde0391f
--- /dev/null
+++ b/apps/federation/tests/lib/syncfederationaddressbookstest.php
@@ -0,0 +1,66 @@
+<?php
+
+namespace OCA\Federation\Tests\lib;
+
+use OCA\Federation\DbHandler;
+use OCA\Federation\SyncFederationAddressBooks;
+
+class SyncFederationAddressbooksTest extends \Test\TestCase {
+
+	/** @var array */
+	private $callBacks = [];
+
+	function testSync() {
+		/** @var DbHandler | \PHPUnit_Framework_MockObject_MockObject $dbHandler */
+		$dbHandler = $this->getMockBuilder('OCA\Federation\DbHandler')->
+			disableOriginalConstructor()->
+			getMock();
+		$dbHandler->method('getAllServer')->
+			willReturn([
+			[
+				'url' => 'https://cloud.drop.box',
+				'shared_secret' => 'iloveowncloud',
+				'sync_token' => '0'
+			]
+		]);
+		$dbHandler->expects($this->once())->method('setServerStatus')->
+			with('https://cloud.drop.box', 1, '1');
+		$syncService = $this->getMockBuilder('OCA\DAV\CardDAV\SyncService')
+			->disableOriginalConstructor()
+			->getMock();
+		$syncService->expects($this->once())->method('syncRemoteAddressBook')
+			->willReturn(1);
+
+		$s = new SyncFederationAddressBooks($dbHandler, $syncService);
+		$s->syncThemAll(function($url, $ex) {
+			$this->callBacks[] = [$url, $ex];
+		});
+		$this->assertEquals(1, count($this->callBacks));
+	}
+
+	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',
+				'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));
+	}
+}
\ No newline at end of file