Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
LocalizedExceptionTest.php
Go to the documentation of this file.
1 <?php
7 
8 use \Magento\Framework\Exception\LocalizedException;
10 
14 class LocalizedExceptionTest extends \PHPUnit\Framework\TestCase
15 {
17  private $defaultRenderer;
18 
20  private $renderedMessage;
21 
25  protected function setUp()
26  {
27  $this->defaultRenderer = \Magento\Framework\Phrase::getRenderer();
28  $rendererMock = $this->getMockBuilder(\Magento\Framework\Phrase\Renderer\Placeholder::class)
29  ->disableOriginalConstructor()
30  ->getMock();
31  $this->renderedMessage = 'rendered message';
32  $rendererMock->expects($this->once())
33  ->method('render')
34  ->will($this->returnValue($this->renderedMessage));
36  }
37 
41  public function tearDown()
42  {
43  \Magento\Framework\Phrase::setRenderer($this->defaultRenderer);
44  }
45 
53  public function testConstructor($message, $params, $expectedLogMessage)
54  {
55  $cause = new \Exception();
56  $localizeException = new LocalizedException(
57  new Phrase($message, $params),
58  $cause
59  );
60 
61  $this->assertEquals(0, $localizeException->getCode());
62 
63  $this->assertEquals($message, $localizeException->getRawMessage());
64  $this->assertEquals($this->renderedMessage, $localizeException->getMessage());
65  $this->assertEquals($expectedLogMessage, $localizeException->getLogMessage());
66 
67  $this->assertSame($cause, $localizeException->getPrevious());
68  }
69 
74  {
75  return [
76  'withNoNameParameters' => [
77  'message %1 %2',
78  ['parameter1',
79  'parameter2'],
80  'message parameter1 parameter2',
81  ],
82  'withNamedParameters' => [
83  'message %key1 %key2',
84  ['key1' => 'parameter1',
85  'key2' => 'parameter2'],
86  'message parameter1 parameter2',
87  ],
88  'withoutParameters' => [
89  'message',
90  [],
91  'message',
92  'message',
93  ],
94  ];
95  }
96 
100  public function testGetRawMessage()
101  {
102  $message = 'message %1 %2';
103  $params = [
104  'parameter1',
105  'parameter2',
106  ];
107  $cause = new \Exception();
108  $localizeException = new LocalizedException(
109  new Phrase($message, $params),
110  $cause
111  );
112  $this->assertEquals($message, $localizeException->getRawMessage());
113  }
114 
118  public function testGetParameters()
119  {
120  $message = 'message %1 %2';
121  $params = [
122  'parameter1',
123  'parameter2',
124  ];
125  $cause = new \Exception();
126  $localizeException = new LocalizedException(
127  new Phrase($message, $params),
128  $cause
129  );
130 
131  $this->assertEquals($params, $localizeException->getParameters());
132  }
133 
137  public function testGetLogMessage()
138  {
139  $message = 'message %1 %2';
140  $params = [
141  'parameter1',
142  'parameter2',
143  ];
144  $cause = new \Exception();
145 
146  $localizeException = new LocalizedException(
147  new Phrase($message, $params),
148  $cause
149  );
150  $expectedLogMessage = 'message parameter1 parameter2';
151  $this->assertEquals($expectedLogMessage, $localizeException->getLogMessage());
152  }
153 
154  public function testGetCode()
155  {
156  $expectedCode = 42;
157  $localizedException = new LocalizedException(
158  new Phrase("message %1", ['test']),
159  new \Exception(),
160  $expectedCode
161  );
162 
163  $this->assertEquals($expectedCode, $localizedException->getCode());
164  }
165 }
$message
static setRenderer(RendererInterface $renderer)
Definition: Phrase.php:46
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]
Definition: website.php:18