Adding unit tests

This commit is contained in:
Thomas Müller 2016-01-25 11:39:57 +01:00
parent 7909c47b7c
commit 2d7528bc64
6 changed files with 72 additions and 8 deletions

View File

@ -25,7 +25,6 @@ $app = new Application();
$app->registerHooks();
\OC::$server->registerService('CardDAVSyncService', function() use ($app) {
return $app->getSyncService();
});

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

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

View 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>

View 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'];

View File

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