RoomManager/ResourceManager: Inject IServerContainer instead of using OC Server

Signed-off-by: Georg Ehrke <developer@georgehrke.com>
This commit is contained in:
Georg Ehrke 2018-10-08 01:50:17 +02:00
parent 1c6f666bbf
commit 970242b6ca
No known key found for this signature in database
GPG Key ID: 9D98FD9380A1CB43
4 changed files with 88 additions and 40 deletions

View File

@ -24,15 +24,28 @@
namespace OC\Calendar\Resource; namespace OC\Calendar\Resource;
use OCP\Calendar\Resource\IBackend; use OCP\Calendar\Resource\IBackend;
use OCP\IServerContainer;
class Manager implements \OCP\Calendar\Resource\IManager { class Manager implements \OCP\Calendar\Resource\IManager {
/** @var IServerContainer */
private $server;
/** @var string[] holds all registered resource backends */ /** @var string[] holds all registered resource backends */
private $backends = []; private $backends = [];
/** @var IBackend[] holds all backends that have been initialized already */ /** @var IBackend[] holds all backends that have been initialized already */
private $initializedBackends = []; private $initializedBackends = [];
/**
* Manager constructor.
*
* @param IServerContainer $server
*/
public function __construct(IServerContainer $server) {
$this->server = $server;
}
/** /**
* Registers a resource backend * Registers a resource backend
* *
@ -66,7 +79,7 @@ class Manager implements \OCP\Calendar\Resource\IManager {
continue; continue;
} }
$this->initializedBackends[$backend] = \OC::$server->query($backend); $this->initializedBackends[$backend] = $this->server->query($backend);
} }
return array_values($this->initializedBackends); return array_values($this->initializedBackends);

View File

@ -24,15 +24,28 @@
namespace OC\Calendar\Room; namespace OC\Calendar\Room;
use OCP\Calendar\Room\IBackend; use OCP\Calendar\Room\IBackend;
use OCP\IServerContainer;
class Manager implements \OCP\Calendar\Room\IManager { class Manager implements \OCP\Calendar\Room\IManager {
/** @var IServerContainer */
private $server;
/** @var string[] holds all registered resource backends */ /** @var string[] holds all registered resource backends */
private $backends = []; private $backends = [];
/** @var IBackend[] holds all backends that have been initialized already */ /** @var IBackend[] holds all backends that have been initialized already */
private $initializedBackends = []; private $initializedBackends = [];
/**
* Manager constructor.
*
* @param IServerContainer $server
*/
public function __construct(IServerContainer $server) {
$this->server = $server;
}
/** /**
* Registers a resource backend * Registers a resource backend
* *
@ -66,7 +79,7 @@ class Manager implements \OCP\Calendar\Room\IManager {
continue; continue;
} }
$this->initializedBackends[$backend] = \OC::$server->query($backend); $this->initializedBackends[$backend] = $this->server->query($backend);
} }
return array_values($this->initializedBackends); return array_values($this->initializedBackends);

View File

@ -25,6 +25,7 @@ namespace Test\Calendar\Resource;
use \OC\Calendar\Resource\Manager; use \OC\Calendar\Resource\Manager;
use \OCP\Calendar\Resource\IBackend; use \OCP\Calendar\Resource\IBackend;
use OCP\IServerContainer;
use \Test\TestCase; use \Test\TestCase;
class ManagerTest extends TestCase { class ManagerTest extends TestCase {
@ -32,24 +33,30 @@ class ManagerTest extends TestCase {
/** @var Manager */ /** @var Manager */
private $manager; private $manager;
/** @var IServerContainer */
private $server;
protected function setUp() { protected function setUp() {
parent::setUp(); parent::setUp();
$this->manager = new Manager(); $this->server = $this->createMock(IServerContainer::class);
$this->manager = new Manager($this->server);
} }
public function testRegisterUnregisterBackend() { public function testRegisterUnregisterBackend() {
$backend1 = $this->createMock(IBackend::class); $backend1 = $this->createMock(IBackend::class);
$backend1->method('getBackendIdentifier')->will($this->returnValue('backend_1')); $backend1->method('getBackendIdentifier')->will($this->returnValue('backend_1'));
\OC::$server->registerService('calendar_resource_backend1', function () use ($backend1) { $this->server->expects($this->at(0))
return $backend1; ->method('query')
}); ->with('calendar_resource_backend1')
->will($this->returnValue($backend1));
$backend2 = $this->createMock(IBackend::class); $backend2 = $this->createMock(IBackend::class);
$backend2->method('getBackendIdentifier')->will($this->returnValue('backend_2')); $backend2->method('getBackendIdentifier')->will($this->returnValue('backend_2'));
\OC::$server->registerService('calendar_resource_backend2', function () use ($backend2) { $this->server->expects($this->at(1))
return $backend2; ->method('query')
}); ->with('calendar_resource_backend2')
->will($this->returnValue($backend2));
$this->manager->registerBackend('calendar_resource_backend1'); $this->manager->registerBackend('calendar_resource_backend1');
$this->manager->registerBackend('calendar_resource_backend2'); $this->manager->registerBackend('calendar_resource_backend2');
@ -68,15 +75,17 @@ class ManagerTest extends TestCase {
public function testGetBackend() { public function testGetBackend() {
$backend1 = $this->createMock(IBackend::class); $backend1 = $this->createMock(IBackend::class);
$backend1->method('getBackendIdentifier')->will($this->returnValue('backend_1')); $backend1->method('getBackendIdentifier')->will($this->returnValue('backend_1'));
\OC::$server->registerService('calendar_resource_backend1', function () use ($backend1) { $this->server->expects($this->at(0))
return $backend1; ->method('query')
}); ->with('calendar_resource_backend1')
->will($this->returnValue($backend1));
$backend2 = $this->createMock(IBackend::class); $backend2 = $this->createMock(IBackend::class);
$backend2->method('getBackendIdentifier')->will($this->returnValue('backend_2')); $backend2->method('getBackendIdentifier')->will($this->returnValue('backend_2'));
\OC::$server->registerService('calendar_resource_backend2', function () use ($backend2) { $this->server->expects($this->at(1))
return $backend2; ->method('query')
}); ->with('calendar_resource_backend2')
->will($this->returnValue($backend2));
$this->manager->registerBackend('calendar_resource_backend1'); $this->manager->registerBackend('calendar_resource_backend1');
$this->manager->registerBackend('calendar_resource_backend2'); $this->manager->registerBackend('calendar_resource_backend2');
@ -88,15 +97,17 @@ class ManagerTest extends TestCase {
public function testClear() { public function testClear() {
$backend1 = $this->createMock(IBackend::class); $backend1 = $this->createMock(IBackend::class);
$backend1->method('getBackendIdentifier')->will($this->returnValue('backend_1')); $backend1->method('getBackendIdentifier')->will($this->returnValue('backend_1'));
\OC::$server->registerService('calendar_resource_backend1', function () use ($backend1) { $this->server->expects($this->at(0))
return $backend1; ->method('query')
}); ->with('calendar_resource_backend1')
->will($this->returnValue($backend1));
$backend2 = $this->createMock(IBackend::class); $backend2 = $this->createMock(IBackend::class);
$backend2->method('getBackendIdentifier')->will($this->returnValue('backend_2')); $backend2->method('getBackendIdentifier')->will($this->returnValue('backend_2'));
\OC::$server->registerService('calendar_resource_backend2', function () use ($backend2) { $this->server->expects($this->at(1))
return $backend2; ->method('query')
}); ->with('calendar_resource_backend2')
->will($this->returnValue($backend2));
$this->manager->registerBackend('calendar_resource_backend1'); $this->manager->registerBackend('calendar_resource_backend1');
$this->manager->registerBackend('calendar_resource_backend2'); $this->manager->registerBackend('calendar_resource_backend2');

View File

@ -25,6 +25,7 @@ namespace Test\Calendar\Room;
use \OC\Calendar\Room\Manager; use \OC\Calendar\Room\Manager;
use \OCP\Calendar\Room\IBackend; use \OCP\Calendar\Room\IBackend;
use OCP\IServerContainer;
use \Test\TestCase; use \Test\TestCase;
class ManagerTest extends TestCase { class ManagerTest extends TestCase {
@ -32,24 +33,30 @@ class ManagerTest extends TestCase {
/** @var Manager */ /** @var Manager */
private $manager; private $manager;
/** @var IServerContainer */
private $server;
protected function setUp() { protected function setUp() {
parent::setUp(); parent::setUp();
$this->manager = new Manager(); $this->server = $this->createMock(IServerContainer::class);
$this->manager = new Manager($this->server);
} }
public function testRegisterUnregisterBackend() { public function testRegisterUnregisterBackend() {
$backend1 = $this->createMock(IBackend::class); $backend1 = $this->createMock(IBackend::class);
$backend1->method('getBackendIdentifier')->will($this->returnValue('backend_1')); $backend1->method('getBackendIdentifier')->will($this->returnValue('backend_1'));
\OC::$server->registerService('calendar_room_backend1', function () use ($backend1) { $this->server->expects($this->at(0))
return $backend1; ->method('query')
}); ->with('calendar_room_backend1')
->will($this->returnValue($backend1));
$backend2 = $this->createMock(IBackend::class); $backend2 = $this->createMock(IBackend::class);
$backend2->method('getBackendIdentifier')->will($this->returnValue('backend_2')); $backend2->method('getBackendIdentifier')->will($this->returnValue('backend_2'));
\OC::$server->registerService('calendar_room_backend2', function () use ($backend2) { $this->server->expects($this->at(1))
return $backend2; ->method('query')
}); ->with('calendar_room_backend2')
->will($this->returnValue($backend2));
$this->manager->registerBackend('calendar_room_backend1'); $this->manager->registerBackend('calendar_room_backend1');
$this->manager->registerBackend('calendar_room_backend2'); $this->manager->registerBackend('calendar_room_backend2');
@ -68,15 +75,17 @@ class ManagerTest extends TestCase {
public function testGetBackend() { public function testGetBackend() {
$backend1 = $this->createMock(IBackend::class); $backend1 = $this->createMock(IBackend::class);
$backend1->method('getBackendIdentifier')->will($this->returnValue('backend_1')); $backend1->method('getBackendIdentifier')->will($this->returnValue('backend_1'));
\OC::$server->registerService('calendar_room_backend1', function () use ($backend1) { $this->server->expects($this->at(0))
return $backend1; ->method('query')
}); ->with('calendar_room_backend1')
->will($this->returnValue($backend1));
$backend2 = $this->createMock(IBackend::class); $backend2 = $this->createMock(IBackend::class);
$backend2->method('getBackendIdentifier')->will($this->returnValue('backend_2')); $backend2->method('getBackendIdentifier')->will($this->returnValue('backend_2'));
\OC::$server->registerService('calendar_room_backend2', function () use ($backend2) { $this->server->expects($this->at(1))
return $backend2; ->method('query')
}); ->with('calendar_room_backend2')
->will($this->returnValue($backend2));
$this->manager->registerBackend('calendar_room_backend1'); $this->manager->registerBackend('calendar_room_backend1');
$this->manager->registerBackend('calendar_room_backend2'); $this->manager->registerBackend('calendar_room_backend2');
@ -88,15 +97,17 @@ class ManagerTest extends TestCase {
public function testClear() { public function testClear() {
$backend1 = $this->createMock(IBackend::class); $backend1 = $this->createMock(IBackend::class);
$backend1->method('getBackendIdentifier')->will($this->returnValue('backend_1')); $backend1->method('getBackendIdentifier')->will($this->returnValue('backend_1'));
\OC::$server->registerService('calendar_room_backend1', function () use ($backend1) { $this->server->expects($this->at(0))
return $backend1; ->method('query')
}); ->with('calendar_room_backend1')
->will($this->returnValue($backend1));
$backend2 = $this->createMock(IBackend::class); $backend2 = $this->createMock(IBackend::class);
$backend2->method('getBackendIdentifier')->will($this->returnValue('backend_2')); $backend2->method('getBackendIdentifier')->will($this->returnValue('backend_2'));
\OC::$server->registerService('calendar_room_backend2', function () use ($backend2) { $this->server->expects($this->at(1))
return $backend2; ->method('query')
}); ->with('calendar_room_backend2')
->will($this->returnValue($backend2));
$this->manager->registerBackend('calendar_room_backend1'); $this->manager->registerBackend('calendar_room_backend1');
$this->manager->registerBackend('calendar_room_backend2'); $this->manager->registerBackend('calendar_room_backend2');