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 ;
@@ -25,17 +27,42 @@ class MetadataProviderTest extends \PHPUnit\Framework\TestCase
25
27
*/
26
28
protected $ filter ;
27
29
30
+ /**
31
+ * @var TimezoneInterface | \PHPUnit_Framework_MockObject_MockObject
32
+ */
33
+ protected $ localeDate ;
34
+
35
+ /**
36
+ * @var ResolverInterface | \PHPUnit_Framework_MockObject_MockObject
37
+ */
38
+ protected $ localeResolver ;
39
+
28
40
protected function setUp ()
29
41
{
30
42
$ this ->filter = $ this ->getMockBuilder (\Magento \Ui \Component \MassAction \Filter::class)
31
43
->disableOriginalConstructor ()
32
44
->getMock ();
33
45
46
+ $ this ->localeDate = $ this ->getMockBuilder (\Magento \Framework \Stdlib \DateTime \TimezoneInterface::class)
47
+ ->disableOriginalConstructor ()
48
+ ->getMock ();
49
+
50
+ $ this ->localeResolver = $ this ->getMockBuilder (\Magento \Framework \Locale \ResolverInterface::class)
51
+ ->disableOriginalConstructor ()
52
+ ->getMock ();
53
+
54
+ $ this ->localeResolver ->expects ($ this ->any ())
55
+ ->method ('getLocale ' )
56
+ ->willReturn (null );
57
+
34
58
$ objectManager = new ObjectManager ($ this );
35
59
$ this ->model = $ objectManager ->getObject (
36
60
\Magento \Ui \Model \Export \MetadataProvider::class,
37
61
[
38
62
'filter ' => $ this ->filter ,
63
+ 'localeDate ' => $ this ->localeDate ,
64
+ 'localeResolver ' => $ this ->localeResolver ,
65
+ 'data ' => ['component_name ' => ['field ' ]],
39
66
]
40
67
);
41
68
}
@@ -347,4 +374,55 @@ public function getOptionsDataProvider()
347
374
],
348
375
];
349
376
}
377
+
378
+ /**
379
+ * Test for convertDate function
380
+ *
381
+ * @param string $fieldValue
382
+ * @param string $expected
383
+ * @dataProvider convertDateProvider
384
+ * @covers \Magento\Ui\Model\Export\MetadataProvider::convertDate()
385
+ */
386
+ public function testConvertDate ($ fieldValue , $ expected )
387
+ {
388
+ $ componentName = 'component_name ' ;
389
+ /** @var DocumentInterface|\PHPUnit_Framework_MockObject_MockObject $document */
390
+ $ document = $ this ->getMockBuilder (\Magento \Framework \DataObject::class)
391
+ ->disableOriginalConstructor ()
392
+ ->getMock ();
393
+
394
+ $ document ->expects ($ this ->once ())
395
+ ->method ('getData ' )
396
+ ->with ('field ' )
397
+ ->willReturn ($ fieldValue );
398
+
399
+ $ this ->localeDate ->expects ($ this ->once ())
400
+ ->method ('date ' )
401
+ ->willReturn (new \DateTime ($ fieldValue , new \DateTimeZone ('UTC ' )));
402
+
403
+ $ document ->expects ($ this ->once ())
404
+ ->method ('setData ' )
405
+ ->with ('field ' , $ expected );
406
+
407
+ $ this ->model ->convertDate ($ document , $ componentName );
408
+ }
409
+
410
+ /**
411
+ * Data provider for testConvertDate
412
+ *
413
+ * @return array
414
+ */
415
+ public function convertDateProvider ()
416
+ {
417
+ return [
418
+ [
419
+ 'fieldValue ' => '@1534505233 ' ,
420
+ 'expected ' => 'Aug 17, 2018 11:27:13 AM ' ,
421
+ ],
422
+ [
423
+ 'fieldValue ' => '@1534530000 ' ,
424
+ 'expected ' => 'Aug 17, 2018 06:20:00 PM ' ,
425
+ ],
426
+ ];
427
+ }
350
428
}
0 commit comments