]> source.dussan.org Git - nextcloud-server.git/commitdiff
Adding unit tests
authorThomas Müller <thomas.mueller@tmit.eu>
Mon, 25 Jan 2016 10:39:57 +0000 (11:39 +0100)
committerThomas Müller <thomas.mueller@tmit.eu>
Mon, 25 Jan 2016 10:39:57 +0000 (11:39 +0100)
apps/dav/appinfo/app.php
apps/dav/appinfo/application.php
apps/federation/appinfo/application.php
apps/federation/appinfo/info.xml
apps/federation/lib/syncfederationaddressbooks.php
apps/federation/tests/lib/syncfederationaddressbookstest.php [new file with mode: 0644]

index b5bf9bd0e7373a839e6e54b712e2da051e8306cd..d33545222b0b61dc0fd43ab0c07147a44438fd39 100644 (file)
@@ -25,7 +25,6 @@ $app = new Application();
 $app->registerHooks();
 
 \OC::$server->registerService('CardDAVSyncService', function() use ($app) {
-
        return $app->getSyncService();
 });
 
index 2a27dbeb0166e7f2602a07b061369b60c772e1f8..d8cf2a34115cc0255f01f406b1a6f713de0b6008 100644 (file)
@@ -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;
index 6137b34e28d483dbf55224213ef74be83af942d9..0d033f449820f017af43318fcfb6445c00bcc947 100644 (file)
@@ -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);
        }
 
 }
index 54ea4831be002d6d08c6604e925a70749486ab3b..7786deef38e180709da30070effeb26d6f7422af 100644 (file)
@@ -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>
index cff848bf135c695e48e578be580d266e42289fb9..f9f402ea03176ad17a444732f54b6fd4c24965fd 100644 (file)
@@ -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 (file)
index 0000000..6932c1e
--- /dev/null
@@ -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