ResourceUsageFormatterTest.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php declare(strict_types=1);
  2. /*
  3. * This file is part of phpunit/php-timer.
  4. *
  5. * (c) Sebastian Bergmann <sebastian@phpunit.de>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace SebastianBergmann\Timer;
  11. use PHPUnit\Framework\TestCase;
  12. /**
  13. * @covers \SebastianBergmann\Timer\ResourceUsageFormatter
  14. *
  15. * @uses \SebastianBergmann\Timer\Duration
  16. * @uses \SebastianBergmann\Timer\Timer
  17. */
  18. final class ResourceUsageFormatterTest extends TestCase
  19. {
  20. /**
  21. * @var ResourceUsageFormatter
  22. */
  23. private $formatter;
  24. protected function setUp(): void
  25. {
  26. $this->formatter = new ResourceUsageFormatter;
  27. }
  28. public function testCanFormatResourceUsage(): void
  29. {
  30. $this->assertStringMatchesFormat(
  31. 'Time: 01:01, Memory: %s',
  32. $this->formatter->resourceUsage(
  33. Duration::fromMicroseconds(61000000)
  34. )
  35. );
  36. }
  37. public function testCanFormatResourceUsageSinceStartOfRequest(): void
  38. {
  39. $this->assertStringMatchesFormat(
  40. 'Time: %s, Memory: %s',
  41. $this->formatter->resourceUsageSinceStartOfRequest()
  42. );
  43. }
  44. /**
  45. * @backupGlobals enabled
  46. * @testdox Cannot format resource usage since start of request when $_SERVER['REQUEST_TIME_FLOAT'] is not available
  47. */
  48. public function testCannotFormatResourceUsageSinceStartOfRequestWhenRequestTimeFloatIsNotAvailable(): void
  49. {
  50. unset($_SERVER['REQUEST_TIME_FLOAT']);
  51. $this->expectException(TimeSinceStartOfRequestNotAvailableException::class);
  52. $this->formatter->resourceUsageSinceStartOfRequest();
  53. }
  54. /**
  55. * @backupGlobals enabled
  56. * @testdox Cannot format resource usage since start of request when $_SERVER['REQUEST_TIME_FLOAT'] is not valid
  57. */
  58. public function testCannotFormatResourceUsageSinceStartOfRequestWhenRequestTimeFloatIsNotValid(): void
  59. {
  60. $_SERVER['REQUEST_TIME_FLOAT'] = 'string';
  61. $this->expectException(TimeSinceStartOfRequestNotAvailableException::class);
  62. $this->formatter->resourceUsageSinceStartOfRequest();
  63. }
  64. }