Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AbstractRendererTest.php
Go to the documentation of this file.
1 <?php
7 
8 class AbstractRendererTest extends \PHPUnit\Framework\TestCase
9 {
13  protected $columnMock;
14 
18  protected $dataObjectMock;
19 
23  protected $renderer;
24 
28  protected function setUp()
29  {
30  $this->dataObjectMock = $this->createPartialMock(\Magento\Framework\DataObject::class, ['getData']);
31  $this->columnMock = $this->getMockBuilder(\Magento\Backend\Block\Widget\Grid\Column::class)
32  ->disableOriginalConstructor()
33  ->setMethods(['getEditable', 'getIndex', 'getEditOnly', 'getId'])
34  ->getMock();
35  $this->renderer =
36  $this->getMockBuilder(\Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer::class)
37  ->disableOriginalConstructor()
38  ->setMethods(null)
39  ->getMock();
40  }
41 
49  public function testRender($editable, $onlyEdit, $expectedResult)
50  {
51  $value = 'some value';
52  $keyValue = 'key';
53 
54  $this->columnMock->expects($this->once())
55  ->method('getEditable')
56  ->willReturn($editable);
57  $this->columnMock->expects($this->any())
58  ->method('getEditOnly')
59  ->willReturn($onlyEdit);
60  $this->columnMock->expects($this->any())
61  ->method('getIndex')
62  ->willReturn($keyValue);
63  $this->columnMock->expects($this->any())
64  ->method('getId')
65  ->willReturn('test');
66  $this->dataObjectMock->expects($this->any())
67  ->method('getData')
68  ->with($keyValue)
69  ->willReturn($value);
70  $this->renderer->setColumn($this->columnMock);
71 
72  $this->assertEquals($expectedResult, $this->renderer->render($this->dataObjectMock));
73  }
74 
78  public function renderDataProvider()
79  {
80  return [
81  [
82  'editable' => false,
83  'onlyEdit' => false,
84  'expectedResult' => 'some value'
85  ],
86  [
87  'editable' => false,
88  'onlyEdit' => true,
89  'expectedResult' => 'some value'
90  ],
91  [
92  'editable' => true,
93  'onlyEdit' => false,
94  'expectedResult' => '<div class="admin__grid-control">'
95  . '<span class="admin__grid-control-value">some value</span>'
96  . '<input type="text" class="input-text " name="test" value="some value"/>'
97  . '</div>'
98  ],
99  [
100  'editable' => true,
101  'onlyEdit' => true,
102  'expectedResult' => '<div class="admin__grid-control">'
103  . '<input type="text" class="input-text " name="test" value="some value"/>'
104  . '</div>'
105  ],
106  ];
107  }
108 }
$value
Definition: gender.phtml:16