EnvConstAdapterTest.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. declare(strict_types=1);
  3. namespace Dotenv\Tests\Repository\Adapter;
  4. use Dotenv\Repository\Adapter\EnvConstAdapter;
  5. use PHPUnit\Framework\TestCase;
  6. final class EnvConstAdapterTest extends TestCase
  7. {
  8. public function testGoodRead()
  9. {
  10. $_ENV['CONST_TEST'] = 'foo bar baz';
  11. $value = self::createAdapter()->read('CONST_TEST');
  12. self::assertTrue($value->isDefined());
  13. self::assertSame('foo bar baz', $value->get());
  14. }
  15. public function testFalseRead()
  16. {
  17. $_ENV['CONST_TEST'] = false;
  18. $value = self::createAdapter()->read('CONST_TEST');
  19. self::assertTrue($value->isDefined());
  20. self::assertSame('false', $value->get());
  21. }
  22. public function testTrueRead()
  23. {
  24. $_ENV['CONST_TEST'] = true;
  25. $value = self::createAdapter()->read('CONST_TEST');
  26. self::assertTrue($value->isDefined());
  27. self::assertSame('true', $value->get());
  28. }
  29. public function testBadTypeRead()
  30. {
  31. $_ENV['CONST_TEST'] = [123];
  32. $value = self::createAdapter()->read('CONST_TEST');
  33. self::assertFalse($value->isDefined());
  34. }
  35. public function testUndefinedRead()
  36. {
  37. unset($_ENV['CONST_TEST']);
  38. $value = self::createAdapter()->read('CONST_TEST');
  39. self::assertFalse($value->isDefined());
  40. }
  41. public function testGoodWrite()
  42. {
  43. self::assertTrue(self::createAdapter()->write('CONST_TEST', 'foo'));
  44. self::assertSame('foo', $_ENV['CONST_TEST']);
  45. }
  46. public function testEmptyWrite()
  47. {
  48. self::assertTrue(self::createAdapter()->write('CONST_TEST', ''));
  49. self::assertSame('', $_ENV['CONST_TEST']);
  50. }
  51. public function testGoodDelete()
  52. {
  53. self::assertTrue(self::createAdapter()->delete('CONST_TEST'));
  54. self::assertFalse(isset($_ENV['CONST_TEST']));
  55. }
  56. /**
  57. * @return \Dotenv\Repository\Adapter\AdapterInterface
  58. */
  59. private static function createAdapter()
  60. {
  61. return EnvConstAdapter::create()->get();
  62. }
  63. }