123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Test\Unit;
- use Magento\Framework\Phrase;
- class PhraseTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var \Magento\Framework\Phrase\RendererInterface
- */
- protected $defaultRenderer;
- /**
- * @var \Magento\Framework\Phrase\RendererInterface|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $rendererMock;
- /**
- * SetUp method
- *
- * @return void
- */
- protected function setUp()
- {
- $this->defaultRenderer = Phrase::getRenderer();
- $this->rendererMock = $this->getMockBuilder(\Magento\Framework\Phrase\RendererInterface::class)
- ->getMock();
- }
- /**
- * Tear down
- *
- * @return void
- */
- protected function tearDown()
- {
- Phrase::setRenderer($this->defaultRenderer);
- }
- /**
- * Test rendering
- *
- * @return void
- */
- public function testRendering()
- {
- $text = 'some text';
- $arguments = ['arg1', 'arg2'];
- $result = 'rendered text';
- $phrase = new Phrase($text, $arguments);
- Phrase::setRenderer($this->rendererMock);
- $this->rendererMock->expects($this->once())
- ->method('render')
- ->with([$text], $arguments)
- ->willReturn($result);
- $this->assertEquals($result, $phrase->render());
- }
- /**
- * Test defers rendering
- *
- * @return void
- */
- public function testDefersRendering()
- {
- $this->rendererMock->expects($this->never())
- ->method('render');
- new Phrase('some text');
- }
- /**
- * Test that to string is alias to render
- *
- * @return void
- */
- public function testThatToStringIsAliasToRender()
- {
- $text = 'some text';
- $arguments = ['arg1', 'arg2'];
- $result = 'rendered text';
- $phrase = new Phrase($text, $arguments);
- Phrase::setRenderer($this->rendererMock);
- $this->rendererMock->expects($this->once())
- ->method('render')
- ->with([$text], $arguments)
- ->willReturn($result);
- $this->assertEquals($result, (string)$phrase);
- }
- /**
- * Test get text
- *
- * @return void
- */
- public function testGetText()
- {
- $text = 'some text';
- $phrase = new Phrase($text);
- $this->assertEquals($text, $phrase->getText());
- }
- /**
- * Test get arguments
- *
- * @return void
- */
- public function testGetArguments()
- {
- $text = 'some text';
- $arguments = ['arg1', 'arg2'];
- $phrase1 = new Phrase($text);
- $phrase2 = new Phrase($text, $arguments);
- $this->assertEquals([], $phrase1->getArguments());
- $this->assertEquals($arguments, $phrase2->getArguments());
- }
- public function testToStringWithExceptionOnRender()
- {
- $text = 'raw text';
- $exception = new \Exception('something went wrong');
- $phrase = new Phrase($text);
- $this->rendererMock->expects($this->any())
- ->method('render')
- ->willThrowException($exception);
- $this->assertEquals($text, (string)$phrase);
- }
- /**
- * Test default renderer
- */
- public function testDefaultRenderer()
- {
- $this->assertInstanceOf(\Magento\Framework\Phrase\Renderer\Placeholder::class, Phrase::getRenderer());
- }
- }
|