|
6 | 6 | namespace Magento\Ui\Test\Unit\Model\Export;
|
7 | 7 |
|
8 | 8 | use Magento\Framework\Api\Search\DocumentInterface;
|
| 9 | +use Magento\Framework\Locale\ResolverInterface; |
| 10 | +use Magento\Framework\Stdlib\DateTime\TimezoneInterface; |
9 | 11 | use Magento\Framework\View\Element\UiComponentInterface;
|
10 | 12 | use Magento\Ui\Component\Listing\Columns;
|
11 | 13 | use Magento\Ui\Component\Listing\Columns\Column;
|
12 | 14 | use Magento\Ui\Component\MassAction\Filter;
|
13 | 15 | use Magento\Ui\Model\Export\MetadataProvider;
|
14 | 16 | use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
|
15 | 17 |
|
| 18 | +/** |
| 19 | + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) |
| 20 | + */ |
16 | 21 | class MetadataProviderTest extends \PHPUnit\Framework\TestCase
|
17 | 22 | {
|
18 | 23 | /**
|
19 | 24 | * @var MetadataProvider
|
20 | 25 | */
|
21 |
| - protected $model; |
| 26 | + private $model; |
22 | 27 |
|
23 | 28 | /**
|
24 | 29 | * @var Filter | \PHPUnit_Framework_MockObject_MockObject
|
25 | 30 | */
|
26 |
| - protected $filter; |
| 31 | + private $filter; |
| 32 | + |
| 33 | + /** |
| 34 | + * @var TimezoneInterface | \PHPUnit_Framework_MockObject_MockObject |
| 35 | + */ |
| 36 | + private $localeDate; |
| 37 | + |
| 38 | + /** |
| 39 | + * @var ResolverInterface | \PHPUnit_Framework_MockObject_MockObject |
| 40 | + */ |
| 41 | + private $localeResolver; |
27 | 42 |
|
| 43 | + /** |
| 44 | + * @inheritdoc |
| 45 | + */ |
28 | 46 | protected function setUp()
|
29 | 47 | {
|
30 | 48 | $this->filter = $this->getMockBuilder(\Magento\Ui\Component\MassAction\Filter::class)
|
31 | 49 | ->disableOriginalConstructor()
|
32 | 50 | ->getMock();
|
33 | 51 |
|
| 52 | + $this->localeDate = $this->getMockBuilder(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::class) |
| 53 | + ->disableOriginalConstructor() |
| 54 | + ->getMock(); |
| 55 | + |
| 56 | + $this->localeResolver = $this->getMockBuilder(\Magento\Framework\Locale\ResolverInterface::class) |
| 57 | + ->disableOriginalConstructor() |
| 58 | + ->getMock(); |
| 59 | + |
| 60 | + $this->localeResolver->expects($this->any()) |
| 61 | + ->method('getLocale') |
| 62 | + ->willReturn(null); |
| 63 | + |
34 | 64 | $objectManager = new ObjectManager($this);
|
35 | 65 | $this->model = $objectManager->getObject(
|
36 | 66 | \Magento\Ui\Model\Export\MetadataProvider::class,
|
37 | 67 | [
|
38 | 68 | 'filter' => $this->filter,
|
| 69 | + 'localeDate' => $this->localeDate, |
| 70 | + 'localeResolver' => $this->localeResolver, |
| 71 | + 'data' => ['component_name' => ['field']], |
39 | 72 | ]
|
40 | 73 | );
|
41 | 74 | }
|
@@ -347,4 +380,55 @@ public function getOptionsDataProvider()
|
347 | 380 | ],
|
348 | 381 | ];
|
349 | 382 | }
|
| 383 | + |
| 384 | + /** |
| 385 | + * Test for convertDate function |
| 386 | + * |
| 387 | + * @param string $fieldValue |
| 388 | + * @param string $expected |
| 389 | + * @dataProvider convertDateProvider |
| 390 | + * @covers \Magento\Ui\Model\Export\MetadataProvider::convertDate() |
| 391 | + */ |
| 392 | + public function testConvertDate($fieldValue, $expected) |
| 393 | + { |
| 394 | + $componentName = 'component_name'; |
| 395 | + /** @var DocumentInterface|\PHPUnit_Framework_MockObject_MockObject $document */ |
| 396 | + $document = $this->getMockBuilder(\Magento\Framework\DataObject::class) |
| 397 | + ->disableOriginalConstructor() |
| 398 | + ->getMock(); |
| 399 | + |
| 400 | + $document->expects($this->once()) |
| 401 | + ->method('getData') |
| 402 | + ->with('field') |
| 403 | + ->willReturn($fieldValue); |
| 404 | + |
| 405 | + $this->localeDate->expects($this->once()) |
| 406 | + ->method('date') |
| 407 | + ->willReturn(new \DateTime($fieldValue, new \DateTimeZone('UTC'))); |
| 408 | + |
| 409 | + $document->expects($this->once()) |
| 410 | + ->method('setData') |
| 411 | + ->with('field', $expected); |
| 412 | + |
| 413 | + $this->model->convertDate($document, $componentName); |
| 414 | + } |
| 415 | + |
| 416 | + /** |
| 417 | + * Data provider for testConvertDate |
| 418 | + * |
| 419 | + * @return array |
| 420 | + */ |
| 421 | + public function convertDateProvider() |
| 422 | + { |
| 423 | + return [ |
| 424 | + [ |
| 425 | + 'fieldValue' => '@1534505233', |
| 426 | + 'expected' => 'Aug 17, 2018 11:27:13 AM', |
| 427 | + ], |
| 428 | + [ |
| 429 | + 'fieldValue' => '@1534530000', |
| 430 | + 'expected' => 'Aug 17, 2018 06:20:00 PM', |
| 431 | + ], |
| 432 | + ]; |
| 433 | + } |
350 | 434 | }
|
0 commit comments