TemporaryFileStorageTest.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. use App\Service\Storage\TemporaryFileStorage;
  3. use Gaufrette\Adapter\Local;
  4. use Gaufrette\Filesystem;
  5. use Knp\Bundle\GaufretteBundle\FilesystemMap;
  6. use PHPUnit\Framework\TestCase;
  7. class TemporaryFileStorageTest extends TestCase
  8. {
  9. public function testGetStorageBaseDir(): void
  10. {
  11. $fileSystemMap = $this->getMockBuilder(FilesystemMap::class)
  12. ->disableOriginalConstructor()
  13. ->getMock();
  14. $fileSystem = $this->getMockBuilder(Filesystem::class)
  15. ->disableOriginalConstructor()
  16. ->getMock();
  17. $adapter = $this->getMockBuilder(Local::class)
  18. ->disableOriginalConstructor()
  19. ->getMock();
  20. $fileSystemMap->method('get')->willReturn($fileSystem);
  21. $fileSystem->method('getAdapter')->willReturn($adapter);
  22. $adapter->expects($this->once())->method('write')->willReturnSelf();
  23. $storage = $this->getMockBuilder(TemporaryFileStorage::class)
  24. ->setConstructorArgs([$fileSystemMap])
  25. ->setMethodsExcept(['write'])
  26. ->getMock();
  27. $path = $storage->write('my_file.txt', 'some content');
  28. $this->assertMatchesRegularExpression(
  29. '/temp\/\d{8}_\d{6}_[\w\d]{8}\/my_file.txt/',
  30. $path
  31. );
  32. }
  33. }