AggregateSalesReportRefundedDataTest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Test\Unit\Model\CronJob;
  7. use \Magento\Sales\Model\CronJob\AggregateSalesReportRefundedData;
  8. /**
  9. * Tests Magento\Sales\Model\CronJob\AggregateSalesReportRefundedDataTest
  10. */
  11. class AggregateSalesReportRefundedDataTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var \Magento\Framework\Locale\ResolverInterface|\PHPUnit_Framework_MockObject_MockObject
  15. */
  16. protected $localeResolverMock;
  17. /**
  18. * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface|\PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $localeDateMock;
  21. /**
  22. * @var \Magento\Sales\Model\ResourceModel\Report\RefundedFactory|\PHPUnit_Framework_MockObject_MockObject
  23. */
  24. protected $refundedFactoryMock;
  25. /**
  26. * @var \Magento\Sales\Model\CronJob\AggregateSalesReportRefundedData
  27. */
  28. protected $observer;
  29. protected function setUp()
  30. {
  31. $this->localeResolverMock = $this->getMockBuilder(\Magento\Framework\Locale\ResolverInterface::class)
  32. ->disableOriginalConstructor()
  33. ->getMock();
  34. $this->refundedFactoryMock = $this->getMockBuilder(
  35. \Magento\Sales\Model\ResourceModel\Report\RefundedFactory::class
  36. )
  37. ->disableOriginalConstructor()
  38. ->setMethods(['create'])
  39. ->getMock();
  40. $this->localeDateMock = $this->getMockBuilder(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::class)
  41. ->disableOriginalConstructor()
  42. ->getMock();
  43. $this->observer = new AggregateSalesReportRefundedData(
  44. $this->localeResolverMock,
  45. $this->localeDateMock,
  46. $this->refundedFactoryMock
  47. );
  48. }
  49. public function testExecute()
  50. {
  51. $date = $this->setupAggregate();
  52. $refundedMock = $this->getMockBuilder(\Magento\Sales\Model\ResourceModel\Report\Refunded::class)
  53. ->disableOriginalConstructor()
  54. ->getMock();
  55. $refundedMock->expects($this->once())
  56. ->method('aggregate')
  57. ->with($date);
  58. $this->refundedFactoryMock->expects($this->once())
  59. ->method('create')
  60. ->will($this->returnValue($refundedMock));
  61. $this->observer->execute();
  62. }
  63. /**
  64. * Set up aggregate
  65. *
  66. * @return \DateTime
  67. */
  68. protected function setupAggregate()
  69. {
  70. $this->localeResolverMock->expects($this->once())
  71. ->method('emulate')
  72. ->with(0);
  73. $this->localeResolverMock->expects($this->once())
  74. ->method('revert');
  75. $date = (new \DateTime())->sub(new \DateInterval('PT25H'));
  76. $this->localeDateMock->expects($this->once())
  77. ->method('date')
  78. ->will($this->returnValue($date));
  79. return $date;
  80. }
  81. }