|
9 | 9 | use Magento\Framework\Api\FilterBuilder;
|
10 | 10 | use Magento\Framework\View\Element\UiComponent\ContextInterface;
|
11 | 11 | use Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface;
|
12 |
| -use Magento\Framework\View\Element\UiComponent\Processor; |
13 | 12 | use Magento\Ui\Component\Form;
|
14 | 13 |
|
15 | 14 | class FormTest extends \PHPUnit\Framework\TestCase
|
@@ -215,4 +214,65 @@ public function testGetDataSourceDataWithoutId()
|
215 | 214 |
|
216 | 215 | $this->assertEquals($dataSource, $this->model->getDataSourceData());
|
217 | 216 | }
|
| 217 | + |
| 218 | + public function testGetDataSourceDataWithAbstractDataProvider() |
| 219 | + { |
| 220 | + $requestFieldName = 'request_id'; |
| 221 | + $primaryFieldName = 'primary_id'; |
| 222 | + $fieldId = 44; |
| 223 | + $row = ['key' => 'value', $primaryFieldName => $fieldId]; |
| 224 | + $data = [ |
| 225 | + 'items' => [$row], |
| 226 | + ]; |
| 227 | + $dataSource = [ |
| 228 | + 'data' => [ |
| 229 | + 'general' => $row |
| 230 | + ], |
| 231 | + ]; |
| 232 | + |
| 233 | + /** @var DataProviderInterface|\PHPUnit_Framework_MockObject_MockObject $dataProviderMock */ |
| 234 | + $dataProviderMock = |
| 235 | + $this->getMockBuilder(\Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface::class) |
| 236 | + ->getMock(); |
| 237 | + $dataProviderMock->expects($this->once()) |
| 238 | + ->method('getRequestFieldName') |
| 239 | + ->willReturn($requestFieldName); |
| 240 | + $dataProviderMock->expects($this->once()) |
| 241 | + ->method('getPrimaryFieldName') |
| 242 | + ->willReturn($primaryFieldName); |
| 243 | + |
| 244 | + $this->contextMock->expects($this->any()) |
| 245 | + ->method('getDataProvider') |
| 246 | + ->willReturn($dataProviderMock); |
| 247 | + $this->contextMock->expects($this->once()) |
| 248 | + ->method('getRequestParam') |
| 249 | + ->with($requestFieldName) |
| 250 | + ->willReturn($fieldId); |
| 251 | + |
| 252 | + /** @var Filter|\PHPUnit_Framework_MockObject_MockObject $filterMock */ |
| 253 | + $filterMock = $this->getMockBuilder(\Magento\Framework\Api\Filter::class) |
| 254 | + ->disableOriginalConstructor() |
| 255 | + ->getMock(); |
| 256 | + |
| 257 | + $this->filterBuilderMock->expects($this->once()) |
| 258 | + ->method('setField') |
| 259 | + ->with($primaryFieldName) |
| 260 | + ->willReturnSelf(); |
| 261 | + $this->filterBuilderMock->expects($this->once()) |
| 262 | + ->method('setValue') |
| 263 | + ->with($fieldId) |
| 264 | + ->willReturnSelf(); |
| 265 | + $this->filterBuilderMock->expects($this->once()) |
| 266 | + ->method('create') |
| 267 | + ->willReturn($filterMock); |
| 268 | + |
| 269 | + $dataProviderMock->expects($this->once()) |
| 270 | + ->method('addFilter') |
| 271 | + ->with($filterMock); |
| 272 | + $dataProviderMock->expects($this->once()) |
| 273 | + ->method('getData') |
| 274 | + ->willReturn($data); |
| 275 | + |
| 276 | + $this->assertEquals($dataSource, $this->model->getDataSourceData()); |
| 277 | + } |
218 | 278 | }
|
0 commit comments