Adding unit tests
This commit is contained in:
parent
7909c47b7c
commit
2d7528bc64
|
@ -25,7 +25,6 @@ $app = new Application();
|
|||
$app->registerHooks();
|
||||
|
||||
\OC::$server->registerService('CardDAVSyncService', function() use ($app) {
|
||||
|
||||
return $app->getSyncService();
|
||||
});
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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'];
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue