diff options
Diffstat (limited to 'apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php')
-rw-r--r-- | apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php b/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php index 86413e4a366..444c267b509 100644 --- a/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php @@ -34,6 +34,10 @@ use OC\User\User; use OCA\DAV\CalDAV\Proxy\Proxy; use OCA\DAV\CalDAV\Proxy\ProxyMapper; use OCA\DAV\Connector\Sabre\Principal; +use OCP\Accounts\IAccount; +use OCP\Accounts\IAccountManager; +use OCP\Accounts\IAccountProperty; +use OCP\Accounts\IAccountPropertyCollection; use OCP\App\IAppManager; use OCP\IConfig; use OCP\IGroup; @@ -59,6 +63,9 @@ class PrincipalTest extends TestCase { /** @var IGroupManager | MockObject */ private $groupManager; + /** @var IAccountManager|MockObject */ + private $accountManager; + /** @var IManager | MockObject */ private $shareManager; @@ -81,6 +88,7 @@ class PrincipalTest extends TestCase { protected function setUp(): void { $this->userManager = $this->createMock(IUserManager::class); $this->groupManager = $this->createMock(IGroupManager::class); + $this->accountManager = $this->createMock(IAccountManager::class); $this->shareManager = $this->createMock(IManager::class); $this->userSession = $this->createMock(IUserSession::class); $this->appManager = $this->createMock(IAppManager::class); @@ -92,6 +100,7 @@ class PrincipalTest extends TestCase { $this->connector = new Principal( $this->userManager, $this->groupManager, + $this->accountManager, $this->shareManager, $this->userSession, $this->appManager, @@ -143,6 +152,45 @@ class PrincipalTest extends TestCase { ->withConsecutive([$fooUser], [$barUser]) ->willReturnOnConsecutiveCalls('de', 'en'); + $fooAccountPropertyCollection = $this->createMock(IAccountPropertyCollection::class); + $fooAccountPropertyCollection->expects($this->once()) + ->method('getProperties') + ->with() + ->willReturn([]); + $fooAccount = $this->createMock(IAccount::class); + $fooAccount->expects($this->once()) + ->method('getPropertyCollection') + ->with(IAccountManager::COLLECTION_EMAIL) + ->willReturn($fooAccountPropertyCollection); + + $emailPropertyOne = $this->createMock(IAccountProperty::class); + $emailPropertyOne->expects($this->once()) + ->method('getValue') + ->with() + ->willReturn('alias@nextcloud.com'); + $emailPropertyTwo = $this->createMock(IAccountProperty::class); + $emailPropertyTwo->expects($this->once()) + ->method('getValue') + ->with() + ->willReturn('alias2@nextcloud.com'); + + $barAccountPropertyCollection = $this->createMock(IAccountPropertyCollection::class); + $barAccountPropertyCollection->expects($this->once()) + ->method('getProperties') + ->with() + ->willReturn([$emailPropertyOne, $emailPropertyTwo]); + $barAccount = $this->createMock(IAccount::class); + $barAccount->expects($this->once()) + ->method('getPropertyCollection') + ->with(IAccountManager::COLLECTION_EMAIL) + ->willReturn($barAccountPropertyCollection); + + $this->accountManager + ->expects($this->exactly(2)) + ->method('getAccount') + ->withConsecutive([$fooUser], [$barUser]) + ->willReturnOnConsecutiveCalls($fooAccount, $barAccount); + $expectedResponse = [ 0 => [ 'uri' => 'principals/users/foo', @@ -156,6 +204,7 @@ class PrincipalTest extends TestCase { '{urn:ietf:params:xml:ns:caldav}calendar-user-type' => 'INDIVIDUAL', '{http://nextcloud.com/ns}language' => 'en', '{http://sabredav.org/ns}email-address' => 'bar@nextcloud.com', + '{DAV:}alternate-URI-set' => ['mailto:alias@nextcloud.com', 'mailto:alias2@nextcloud.com'] ] ]; $response = $this->connector->getPrincipalsByPrefix('principals/users'); |