Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AggregateSalesReportOrderDataTest.php
Go to the documentation of this file.
1 <?php
7 
8 use \Magento\Sales\Model\CronJob\AggregateSalesReportOrderData;
9 
13 class AggregateSalesReportOrderDataTest extends \PHPUnit\Framework\TestCase
14 {
19 
23  protected $localeDateMock;
24 
28  protected $orderFactoryMock;
29 
33  protected $observer;
34 
35  protected function setUp()
36  {
37  $this->localeResolverMock = $this->getMockBuilder(\Magento\Framework\Locale\ResolverInterface::class)
38  ->disableOriginalConstructor()
39  ->getMock();
40 
41  $this->orderFactoryMock = $this->getMockBuilder(\Magento\Sales\Model\ResourceModel\Report\OrderFactory::class)
42  ->disableOriginalConstructor()
43  ->setMethods(['create'])
44  ->getMock();
45  $this->localeDateMock = $this->getMockBuilder(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::class)
46  ->disableOriginalConstructor()
47  ->getMock();
48 
49  $this->observer = new AggregateSalesReportOrderData(
50  $this->localeResolverMock,
51  $this->localeDateMock,
52  $this->orderFactoryMock
53  );
54  }
55 
56  public function testExecute()
57  {
58  $date = $this->setupAggregate();
59  $orderMock = $this->getMockBuilder(\Magento\Sales\Model\ResourceModel\Report\Order::class)
60  ->disableOriginalConstructor()
61  ->getMock();
62  $orderMock->expects($this->once())
63  ->method('aggregate')
64  ->with($date);
65  $this->orderFactoryMock->expects($this->once())
66  ->method('create')
67  ->will($this->returnValue($orderMock));
68  $this->observer->execute();
69  }
70 
76  protected function setupAggregate()
77  {
78  $this->localeResolverMock->expects($this->once())
79  ->method('emulate')
80  ->with(0);
81  $this->localeResolverMock->expects($this->once())
82  ->method('revert');
83 
84  $date = (new \DateTime())->sub(new \DateInterval('PT25H'));
85  $this->localeDateMock->expects($this->once())
86  ->method('date')
87  ->will($this->returnValue($date));
88 
89  return $date;
90  }
91 }