DeprecatedOptionsTest.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace Test\Michel\Resolver;
  3. use Michel\Resolver\Option;
  4. use Michel\Resolver\OptionsResolver;
  5. use Michel\UniTester\TestCase;
  6. class DeprecatedOptionsTest extends TestCase
  7. {
  8. public function testDeprecatedOption(): void
  9. {
  10. $resolver = new OptionsResolver([
  11. Option::string('foo')->deprecate('The option "foo" is deprecated.'),
  12. ]);
  13. $deprecatedTriggered = false;
  14. \set_error_handler(function (int $severity, string $message) use (&$deprecatedTriggered): bool {
  15. if ($severity === \E_USER_DEPRECATED) {
  16. $this->assertStrictEquals('The option "foo" is deprecated.', $message);
  17. $deprecatedTriggered = true;
  18. }
  19. return true;
  20. });
  21. $resolver->resolve(['foo' => 'bar']);
  22. $this->assertTrue($deprecatedTriggered, 'A E_USER_DEPRECATED error should have been triggered.');
  23. \restore_error_handler();
  24. }
  25. protected function setUp(): void
  26. {
  27. // TODO: Implement setUp() method.
  28. }
  29. protected function tearDown(): void
  30. {
  31. // TODO: Implement tearDown() method.
  32. }
  33. protected function execute(): void
  34. {
  35. $this->testDeprecatedOption();
  36. }
  37. }