Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
RegexceptionsTest.php
Go to the documentation of this file.
1 <?php
11 
12 class RegexceptionsTest extends \PHPUnit\Framework\TestCase
13 {
17  protected $cellParameters;
18 
22  protected $labelFactoryMock;
23 
27  protected $labelMock;
28 
33 
37  protected $elementMock;
38 
42  protected $object;
43 
44  protected function setUp()
45  {
46  $this->cellParameters = [
47  'size' => 'testSize',
48  'style' => 'testStyle',
49  'class' => 'testClass',
50  ];
51 
52  $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
53 
54  $this->labelFactoryMock = $this->getMockBuilder(\Magento\Framework\View\Design\Theme\LabelFactory::class)
55  ->disableOriginalConstructor()
56  ->getMock();
57  $this->labelMock = $this->getMockBuilder(\Magento\Framework\View\Design\Theme\Label::class)
58  ->disableOriginalConstructor()
59  ->getMock();
60  $this->elementFactoryMock = $this->getMockBuilder(\Magento\Framework\Data\Form\Element\Factory::class)
61  ->disableOriginalConstructor()
62  ->getMock();
63  $this->elementMock = $this->getMockBuilder(\Magento\Framework\Data\Form\Element\AbstractElement::class)
64  ->disableOriginalConstructor()
65  ->setMethods(
66  ['setForm', 'setName', 'setHtmlId', 'setValues', 'getName', 'getHtmlId', 'getValues', 'getElementHtml']
67  )
68  ->getMock();
69 
70  $data = [
71  'elementFactory' => $this->elementFactoryMock,
72  'labelFactory' => $this->labelFactoryMock,
73  'data' => [
74  'element' => $this->elementMock
75  ],
76  ];
77  $this->object = $objectManager->getObject(
78  \Magento\Config\Block\System\Config\Form\Field\Regexceptions::class,
79  $data
80  );
81  }
82 
84  {
85  $columnName = 'value';
86  $expectedResult = 'testValueElementHtml';
87 
88  $this->elementFactoryMock->expects($this->once())->method('create')->willReturn($this->elementMock);
89  $this->elementMock->expects($this->once())->method('setForm')->willReturnSelf();
90  $this->elementMock->expects($this->once())->method('setName')->willReturnSelf();
91  $this->elementMock->expects($this->once())->method('setHtmlId')->willReturnSelf();
92  $this->elementMock->expects($this->once())->method('setValues')->willReturnSelf();
93  $this->elementMock->expects($this->once())->method('getElementHtml')->willReturn($expectedResult);
94 
95  $this->labelFactoryMock->expects($this->once())->method('create')->willReturn($this->labelMock);
96  $this->labelMock->expects($this->once())->method('getLabelsCollection')->willReturn([]);
97 
98  $this->object->addColumn(
99  $columnName,
100  $this->cellParameters
101  );
102 
103  $this->assertEquals(
104  $expectedResult,
105  $this->object->renderCellTemplate($columnName)
106  );
107  }
108 
110  {
111  $columnName = 'testCellName';
112 
113  $this->object->addColumn(
114  $columnName,
115  $this->cellParameters
116  );
117 
118  $actual = $this->object->renderCellTemplate($columnName);
119  foreach ($this->cellParameters as $parameter) {
120  $this->assertContains($parameter, $actual, 'Parameter \'' . $parameter . '\' missing in render output.');
121  }
122  }
123 
124  public function testRenderCellTemplateWrongColumnName()
125  {
126  $columnName = 'testCellName';
127  $wrongColumnName = 'wrongTestCellName';
128 
129  $this->object->addColumn($wrongColumnName, $this->cellParameters);
130 
131  $this->expectException('\Exception');
132  $this->expectExceptionMessage('Wrong column name specified.');
133 
134  $this->object->renderCellTemplate($columnName);
135  }
136 }
output($string, $level=INFO, $label='')
$objectManager
Definition: bootstrap.php:17