Skip to content
Snippets Groups Projects
Unverified Commit d2110ebb authored by Roeland Jago Douma's avatar Roeland Jago Douma
Browse files

Add Manager unit tests

parent fc4d0a86
No related branches found
No related tags found
No related merge requests found
...@@ -22,6 +22,7 @@ namespace Test\Share20; ...@@ -22,6 +22,7 @@ namespace Test\Share20;
use OC\Files\Mount\MoveableMount; use OC\Files\Mount\MoveableMount;
use OC\HintException; use OC\HintException;
use OC\Share20\DefaultShareProvider;
use OCP\Files\File; use OCP\Files\File;
use OCP\Files\Folder; use OCP\Files\Folder;
use OCP\Files\IRootFolder; use OCP\Files\IRootFolder;
...@@ -29,6 +30,7 @@ use OCP\Files\Mount\IMountPoint; ...@@ -29,6 +30,7 @@ use OCP\Files\Mount\IMountPoint;
use OCP\Files\Node; use OCP\Files\Node;
use OCP\Files\Storage; use OCP\Files\Storage;
use OCP\IGroup; use OCP\IGroup;
use OCP\IServerContainer;
use OCP\IUser; use OCP\IUser;
use OCP\IUserManager; use OCP\IUserManager;
use OCP\Share\Exceptions\ShareNotFound; use OCP\Share\Exceptions\ShareNotFound;
...@@ -118,13 +120,9 @@ class ManagerTest extends \Test\TestCase { ...@@ -118,13 +120,9 @@ class ManagerTest extends \Test\TestCase {
$this->eventDispatcher $this->eventDispatcher
); );
$this->defaultProvider = $this->getMockBuilder('\OC\Share20\DefaultShareProvider') $this->defaultProvider = $this->createMock(DefaultShareProvider::class);
->disableOriginalConstructor()
->getMock();
$this->defaultProvider->method('identifier')->willReturn('default'); $this->defaultProvider->method('identifier')->willReturn('default');
$this->factory->setProvider($this->defaultProvider); $this->factory->setProvider($this->defaultProvider);
} }
/** /**
...@@ -2531,12 +2529,71 @@ class ManagerTest extends \Test\TestCase { ...@@ -2531,12 +2529,71 @@ class ManagerTest extends \Test\TestCase {
$this->manager->moveShare($share, 'recipient'); $this->manager->moveShare($share, 'recipient');
} }
public function testGetSharesInFolder() {
$factory = new DummyFactory2($this->createMock(IServerContainer::class));
$manager = new Manager(
$this->logger,
$this->config,
$this->secureRandom,
$this->hasher,
$this->mountManager,
$this->groupManager,
$this->l,
$factory,
$this->userManager,
$this->rootFolder,
$this->eventDispatcher
);
$factory->setProvider($this->defaultProvider);
$extraProvider = $this->createMock(IShareProvider::class);
$factory->setSecondProvider($extraProvider);
$share1 = $this->createMock(IShare::class);
$share2 = $this->createMock(IShare::class);
$share3 = $this->createMock(IShare::class);
$share4 = $this->createMock(IShare::class);
$folder = $this->createMock(Folder::class);
$this->defaultProvider->method('getSharesInFolder')
->with(
$this->equalTo('user'),
$this->equalTo($folder),
$this->equalTo(false)
)->willReturn([
1 => [$share1],
2 => [$share2],
]);
$extraProvider->method('getSharesInFolder')
->with(
$this->equalTo('user'),
$this->equalTo($folder),
$this->equalTo(false)
)->willReturn([
2 => [$share3],
3 => [$share4],
]);
$result = $manager->getSharesInFolder('user', $folder, false);
$expects = [
1 => [$share1],
2 => [$share2, $share3],
3 => [$share4],
];
$this->assertSame($expects, $result);
}
} }
class DummyFactory implements IProviderFactory { class DummyFactory implements IProviderFactory {
/** @var IShareProvider */ /** @var IShareProvider */
private $provider; protected $provider;
public function __construct(\OCP\IServerContainer $serverContainer) { public function __construct(\OCP\IServerContainer $serverContainer) {
...@@ -2571,6 +2628,20 @@ class DummyFactory implements IProviderFactory { ...@@ -2571,6 +2628,20 @@ class DummyFactory implements IProviderFactory {
public function getAllProviders() { public function getAllProviders() {
return [$this->provider]; return [$this->provider];
} }
}
class DummyFactory2 extends DummyFactory {
/** @var IShareProvider */
private $provider2;
/**
* @param IShareProvider $provider
*/
public function setSecondProvider($provider) {
$this->provider2 = $provider;
}
public function getAllProviders() {
return [$this->provider, $this->provider2];
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment