@@ -88,4 +88,76 @@ public function testSetFileByIdSetsFile(): void {
8888 $ this ->assertInstanceOf (FileService::class, $ returned );
8989 $ this ->assertSame (1 , $ service ->getStatus ());
9090 }
91+
92+ public function testGetNodeFromDataWithNodeId (): void {
93+ $ node = $ this ->createMock (\OCP \Files \File::class);
94+ $ folderService = $ this ->createMock (\OCA \Libresign \Service \FolderService::class);
95+ $ folderService ->method ('getUserId ' )->willReturn ('testuser ' );
96+ $ folderService ->method ('getFileByNodeId ' )->with (35523 )->willReturn ($ node );
97+
98+ $ userManager = $ this ->createMock (\OCP \IUser::class);
99+ $ userManager ->method ('getUID ' )->willReturn ('testuser ' );
100+
101+ $ service = $ this ->createFileService ([
102+ \OCA \Libresign \Service \FolderService::class => $ folderService ,
103+ ]);
104+
105+ $ data = [
106+ 'file ' => ['nodeId ' => 35523 ],
107+ 'userManager ' => $ userManager ,
108+ ];
109+
110+ $ result = $ service ->getNodeFromData ($ data );
111+ $ this ->assertSame ($ node , $ result );
112+ }
113+
114+ public function testGetNodeFromDataWithFileId (): void {
115+ $ node = $ this ->createMock (\OCP \Files \File::class);
116+ $ folderService = $ this ->createMock (\OCA \Libresign \Service \FolderService::class);
117+ $ folderService ->method ('getUserId ' )->willReturn ('testuser ' );
118+ $ folderService ->method ('getFileByNodeId ' )->with (12345 )->willReturn ($ node );
119+
120+ $ userManager = $ this ->createMock (\OCP \IUser::class);
121+ $ userManager ->method ('getUID ' )->willReturn ('testuser ' );
122+
123+ $ service = $ this ->createFileService ([
124+ \OCA \Libresign \Service \FolderService::class => $ folderService ,
125+ ]);
126+
127+ $ data = [
128+ 'file ' => ['fileId ' => 12345 ],
129+ 'userManager ' => $ userManager ,
130+ ];
131+
132+ $ result = $ service ->getNodeFromData ($ data );
133+ $ this ->assertSame ($ node , $ result );
134+ }
135+
136+ public function testGetNodeFromDataPrefersFileIdOverNodeId (): void {
137+ $ nodeFromFileId = $ this ->createMock (\OCP \Files \File::class);
138+ $ folderService = $ this ->createMock (\OCA \Libresign \Service \FolderService::class);
139+ $ folderService ->method ('getUserId ' )->willReturn ('testuser ' );
140+ $ folderService ->expects ($ this ->once ())
141+ ->method ('getFileByNodeId ' )
142+ ->with (12345 )
143+ ->willReturn ($ nodeFromFileId );
144+
145+ $ userManager = $ this ->createMock (\OCP \IUser::class);
146+ $ userManager ->method ('getUID ' )->willReturn ('testuser ' );
147+
148+ $ service = $ this ->createFileService ([
149+ \OCA \Libresign \Service \FolderService::class => $ folderService ,
150+ ]);
151+
152+ $ data = [
153+ 'file ' => [
154+ 'fileId ' => 12345 ,
155+ 'nodeId ' => 35523 , // This should be ignored
156+ ],
157+ 'userManager ' => $ userManager ,
158+ ];
159+
160+ $ result = $ service ->getNodeFromData ($ data );
161+ $ this ->assertSame ($ nodeFromFileId , $ result );
162+ }
91163}
0 commit comments