PhraseFactoryTest.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Test\Unit\Message;
  7. use Magento\Framework\Message\Error;
  8. use Magento\Framework\Message\PhraseFactory;
  9. class PhraseFactoryTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /**
  12. * @var PhraseFactory
  13. */
  14. private $factory;
  15. protected function setUp()
  16. {
  17. $this->factory = new PhraseFactory();
  18. }
  19. /**
  20. * @dataProvider dataProvider
  21. * @param string $mainMessage
  22. * @param array $subMessages
  23. * @param string $separator
  24. * @param string $expectedResult
  25. */
  26. public function testCreate($mainMessage, $subMessages, $separator, $expectedResult)
  27. {
  28. $result = (string)$this->factory->create($mainMessage, $subMessages, $separator);
  29. $this->assertEquals($expectedResult, $result);
  30. }
  31. /**
  32. * @return array
  33. */
  34. public function dataProvider()
  35. {
  36. $subMessage1 = new Error('go jogging');
  37. $subMessage2 = new Error('paint the wall');
  38. return [
  39. 'positive case' => [
  40. 'We will %1',
  41. [$subMessage1, $subMessage2],
  42. ' and ',
  43. 'We will go jogging and paint the wall',
  44. ],
  45. 'broken messages' => [
  46. 'We will %1',
  47. [$subMessage1, 'paint the wall'],
  48. ' and ',
  49. 'We will go jogging and Cannot render error message!',
  50. ],
  51. ];
  52. }
  53. }