‪TYPO3CMS  11.5
UploadedFileFactoryTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use Prophecy\PhpUnit\ProphecyTrait;
21 use Psr\Http\Message\StreamInterface;
22 use Psr\Http\Message\UploadedFileFactoryInterface;
23 use Psr\Http\Message\UploadedFileInterface;
25 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
26 
30 class ‪UploadedFileFactoryTest extends UnitTestCase
31 {
32  use ProphecyTrait;
33 
37  public function ‪implementsPsr17FactoryInterface(): void
38  {
39  $factory = new ‪UploadedFileFactory();
40  self::assertInstanceOf(UploadedFileFactoryInterface::class, $factory);
41  }
42 
46  public function ‪createUploadedFile(): void
47  {
48  $streamProphecy = $this->prophesize(StreamInterface::class);
49  $factory = new ‪UploadedFileFactory();
50  $uploadedFile = $factory->createUploadedFile($streamProphecy->reveal(), 0);
51 
52  self::assertInstanceOf(UploadedFileInterface::class, $uploadedFile);
53  self::assertSame(UPLOAD_ERR_OK, $uploadedFile->getError());
54  self::assertNull($uploadedFile->getClientFileName());
55  self::assertNull($uploadedFile->getClientMediaType());
56  }
57 
61  public function ‪createUploadedFileWithParams(): void
62  {
63  $streamProphecy = $this->prophesize(StreamInterface::class);
64  $factory = new ‪UploadedFileFactory();
65  $uploadedFile = $factory->createUploadedFile($streamProphecy->reveal(), 0, UPLOAD_ERR_NO_FILE, 'filename.html', 'text/html');
66 
67  self::assertInstanceOf(UploadedFileInterface::class, $uploadedFile);
68  self::assertSame(UPLOAD_ERR_NO_FILE, $uploadedFile->getError());
69  self::assertSame('filename.html', $uploadedFile->getClientFileName());
70  self::assertSame('text/html', $uploadedFile->getClientMediaType());
71  }
72 
76  public function ‪createUploadedFileCreateSizeFromStreamSize(): void
77  {
78  $streamProphecy = $this->prophesize(StreamInterface::class);
79  $streamProphecy->getSize()->willReturn(5);
80 
81  $factory = new ‪UploadedFileFactory();
82  $uploadedFile = $factory->createUploadedFile($streamProphecy->reveal());
83 
84  self::assertSame(5, $uploadedFile->getSize());
85  }
86 
91  {
92  $this->expectException(\InvalidArgumentException::class);
93  $this->expectExceptionCode(1566823423);
94 
95  $streamProphecy = $this->prophesize(StreamInterface::class);
96  $streamProphecy->getSize()->willReturn(null);
97 
98  $factory = new ‪UploadedFileFactory();
99  $uploadedFile = $factory->createUploadedFile($streamProphecy->reveal());
100 
101  self::assertSame(3, $uploadedFile->getSize());
102  }
103 }
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\createUploadedFileThrowsExceptionWhenStreamSizeCanNotBeDetermined
‪createUploadedFileThrowsExceptionWhenStreamSizeCanNotBeDetermined()
Definition: UploadedFileFactoryTest.php:89
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\implementsPsr17FactoryInterface
‪implementsPsr17FactoryInterface()
Definition: UploadedFileFactoryTest.php:36
‪TYPO3\CMS\Core\Http\UploadedFileFactory
Definition: UploadedFileFactory.php:28
‪TYPO3\CMS\Core\Tests\Unit\Http
Definition: ApplicationTypeTest.php:18
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\createUploadedFileCreateSizeFromStreamSize
‪createUploadedFileCreateSizeFromStreamSize()
Definition: UploadedFileFactoryTest.php:75
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\createUploadedFile
‪createUploadedFile()
Definition: UploadedFileFactoryTest.php:45
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\createUploadedFileWithParams
‪createUploadedFileWithParams()
Definition: UploadedFileFactoryTest.php:60
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest
Definition: UploadedFileFactoryTest.php:31