diff options
Diffstat (limited to 'apps/dav/tests/unit/Upload/FutureFileTest.php')
-rw-r--r-- | apps/dav/tests/unit/Upload/FutureFileTest.php | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/apps/dav/tests/unit/Upload/FutureFileTest.php b/apps/dav/tests/unit/Upload/FutureFileTest.php new file mode 100644 index 00000000000..1409df937c0 --- /dev/null +++ b/apps/dav/tests/unit/Upload/FutureFileTest.php @@ -0,0 +1,95 @@ +<?php + +declare(strict_types=1); +/** + * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only + */ +namespace OCA\DAV\Tests\unit\Upload; + +use OCA\DAV\Connector\Sabre\Directory; +use OCA\DAV\Upload\FutureFile; + +class FutureFileTest extends \Test\TestCase { + public function testGetContentType(): void { + $f = $this->mockFutureFile(); + $this->assertEquals('application/octet-stream', $f->getContentType()); + } + + public function testGetETag(): void { + $f = $this->mockFutureFile(); + $this->assertEquals('1234567890', $f->getETag()); + } + + public function testGetName(): void { + $f = $this->mockFutureFile(); + $this->assertEquals('foo.txt', $f->getName()); + } + + public function testGetLastModified(): void { + $f = $this->mockFutureFile(); + $this->assertEquals(12121212, $f->getLastModified()); + } + + public function testGetSize(): void { + $f = $this->mockFutureFile(); + $this->assertEquals(0, $f->getSize()); + } + + public function testGet(): void { + $f = $this->mockFutureFile(); + $stream = $f->get(); + $this->assertTrue(is_resource($stream)); + } + + public function testDelete(): void { + $d = $this->getMockBuilder(Directory::class) + ->disableOriginalConstructor() + ->onlyMethods(['delete']) + ->getMock(); + + $d->expects($this->once()) + ->method('delete'); + + $f = new FutureFile($d, 'foo.txt'); + $f->delete(); + } + + + public function testPut(): void { + $this->expectException(\Sabre\DAV\Exception\Forbidden::class); + + $f = $this->mockFutureFile(); + $f->put(''); + } + + + public function testSetName(): void { + $this->expectException(\Sabre\DAV\Exception\Forbidden::class); + + $f = $this->mockFutureFile(); + $f->setName(''); + } + + private function mockFutureFile(): FutureFile { + $d = $this->getMockBuilder(Directory::class) + ->disableOriginalConstructor() + ->onlyMethods(['getETag', 'getLastModified', 'getChildren']) + ->getMock(); + + $d->expects($this->any()) + ->method('getETag') + ->willReturn('1234567890'); + + $d->expects($this->any()) + ->method('getLastModified') + ->willReturn(12121212); + + $d->expects($this->any()) + ->method('getChildren') + ->willReturn([]); + + return new FutureFile($d, 'foo.txt'); + } +} |