11<?php
2+
3+ declare (strict_types=1 );
4+
25/**
36 * @copyright Copyright (c) 2016, ownCloud, Inc.
47 *
3336use OCP \Accounts \IAccountProperty ;
3437use OCP \IImage ;
3538use OCP \IUser ;
39+ use OCP \IUserManager ;
3640use PHPUnit \Framework \MockObject \MockObject ;
3741use Test \TestCase ;
3842
3943class ConverterTest extends TestCase {
4044
4145 /** @var IAccountManager|\PHPUnit\Framework\MockObject\MockObject */
4246 private $ accountManager ;
47+ /** @var IUserManager|(IUserManager&MockObject)|MockObject */
48+ private IUserManager |MockObject $ userManager ;
4349
4450 protected function setUp (): void {
4551 parent ::setUp ();
4652
4753 $ this ->accountManager = $ this ->createMock (IAccountManager::class);
54+ $ this ->userManager = $ this ->createMock (IUserManager::class);
4855 }
4956
5057 /**
@@ -96,7 +103,7 @@ public function testCreation($expectedVCard, $displayName = null, $eMailAddress
96103 $ user = $ this ->getUserMock ((string )$ displayName , $ eMailAddress , $ cloudId );
97104 $ accountManager = $ this ->getAccountManager ($ user );
98105
99- $ converter = new Converter ($ accountManager );
106+ $ converter = new Converter ($ accountManager, $ this -> userManager );
100107 $ vCard = $ converter ->createCardFromUser ($ user );
101108 if ($ expectedVCard !== null ) {
102109 $ this ->assertInstanceOf ('Sabre\VObject\Component\VCard ' , $ vCard );
@@ -107,6 +114,29 @@ public function testCreation($expectedVCard, $displayName = null, $eMailAddress
107114 }
108115 }
109116
117+ public function testManagerProp (): void {
118+ $ user = $ this ->getUserMock ("user " , "user@domain.tld " , "user@cloud.domain.tld " );
119+ $ user ->method ('getManagerUids ' )
120+ ->willReturn (['mgr ' ]);
121+ $ this ->userManager ->expects (self ::once ())
122+ ->method ('getDisplayName ' )
123+ ->with ('mgr ' )
124+ ->willReturn ('Manager ' );
125+ $ accountManager = $ this ->getAccountManager ($ user );
126+
127+ $ converter = new Converter ($ accountManager , $ this ->userManager );
128+ $ vCard = $ converter ->createCardFromUser ($ user );
129+
130+ $ this ->compareData (
131+ [
132+ 'cloud ' => 'user@cloud.domain.tld ' ,
133+ 'email ' => 'user@domain.tld ' ,
134+ 'x-managersname ' => 'Manager ' ,
135+ ],
136+ $ vCard ->jsonSerialize ()
137+ );
138+ }
139+
110140 protected function compareData ($ expected , $ data ) {
111141 foreach ($ expected as $ key => $ value ) {
112142 $ found = false ;
@@ -182,7 +212,7 @@ public function providesNewUsers() {
182212 * @param $fullName
183213 */
184214 public function testNameSplitter ($ expected , $ fullName ): void {
185- $ converter = new Converter ($ this ->accountManager );
215+ $ converter = new Converter ($ this ->accountManager , $ this -> userManager );
186216 $ r = $ converter ->splitFullName ($ fullName );
187217 $ r = implode ('; ' , $ r );
188218 $ this ->assertEquals ($ expected , $ r );
0 commit comments