AssetsExtensionTest.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Tests\Unit\Service\Twig;
  3. use App\Service\File\FileManager;
  4. use App\Service\Twig\AssetsExtension;
  5. use App\Service\Utils\PathUtils;
  6. use PHPUnit\Framework\TestCase;
  7. class AssetsExtensionTest extends TestCase
  8. {
  9. private FileManager $fileManager;
  10. public function setUp(): void
  11. {
  12. $this->fileManager = $this->getMockBuilder(FileManager::class)->disableOriginalConstructor()->getMock();
  13. }
  14. public function testGetFunctions(): void
  15. {
  16. $assetsExtension = $this
  17. ->getMockBuilder(AssetsExtension::class)
  18. ->setConstructorArgs([$this->fileManager])
  19. ->setMethodsExcept(['getFunctions'])
  20. ->getMock();
  21. $functions = $assetsExtension->getFunctions();
  22. $this->assertCount(2, $functions);
  23. $this->assertEquals('absPath', $functions[0]->getName());
  24. $this->assertEquals('fileImagePath', $functions[1]->getName());
  25. }
  26. public function testAbsPath(): void
  27. {
  28. $assetsExtension = $this
  29. ->getMockBuilder(AssetsExtension::class)
  30. ->setConstructorArgs([$this->fileManager])
  31. ->setMethodsExcept(['absPath'])
  32. ->getMock();
  33. $publicDir = PathUtils::getProjectDir().'/public';
  34. $this->assertEquals(
  35. $publicDir.'/foo',
  36. $assetsExtension->absPath('foo')
  37. );
  38. $this->assertEquals(
  39. $publicDir.'/foo/bar',
  40. $assetsExtension->absPath('foo/bar')
  41. );
  42. $this->assertEquals(
  43. $publicDir.'/',
  44. $assetsExtension->absPath('')
  45. );
  46. }
  47. }