ExceptionMessageFactoryPoolTest.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Message\Test\Unit;
  7. use Magento\Framework\Message\ExceptionMessageFactoryInterface;
  8. use Magento\Framework\Exception\LocalizedException;
  9. class ExceptionMessageFactoryPoolTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /**
  12. * @var ExceptionMessageFactoryInterface | \PHPUnit_Framework_MockObject_MockObject
  13. */
  14. private $defaultExceptionMessageFactoryMock;
  15. /**
  16. * @var \Magento\Framework\Message\ExceptionMessageFactoryInterface
  17. */
  18. private $specificExceptionMessageFactoryMock;
  19. /**
  20. * @var ExceptionMessageFactoryInterface[] | \PHPUnit_Framework_MockObject_MockObject
  21. */
  22. private $exceptionMessageFactoryMapMock;
  23. /**
  24. * @var \Magento\Framework\Message\ExceptionMessageFactoryPool
  25. */
  26. private $exceptionMessageFactoryPool;
  27. protected function setUp()
  28. {
  29. $this->specificExceptionMessageFactoryMock = $this->createMock(ExceptionMessageFactoryInterface::class);
  30. $this->defaultExceptionMessageFactoryMock = $this->createMock(ExceptionMessageFactoryInterface::class);
  31. $this->exceptionMessageFactoryMapMock = [
  32. \Magento\Framework\Exception\LocalizedException::class => $this->specificExceptionMessageFactoryMock
  33. ];
  34. $this->exceptionMessageFactoryPool = new \Magento\Framework\Message\ExceptionMessageFactoryPool(
  35. $this->defaultExceptionMessageFactoryMock,
  36. $this->exceptionMessageFactoryMapMock
  37. );
  38. }
  39. public function testSuccessfulDefaultCreateMessage()
  40. {
  41. $exception = new \Exception('message');
  42. $this->assertEquals(
  43. $this->defaultExceptionMessageFactoryMock,
  44. $this->exceptionMessageFactoryPool->getMessageFactory($exception)
  45. );
  46. }
  47. public function testSuccessfulSpecificCreateMessage()
  48. {
  49. $localizedException = new LocalizedException(__('message'));
  50. $this->assertEquals(
  51. $this->specificExceptionMessageFactoryMock,
  52. $this->exceptionMessageFactoryPool->getMessageFactory($localizedException)
  53. );
  54. }
  55. }