CollectDataTest.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Analytics\Test\Unit\Cron;
  7. use Magento\Analytics\Cron\CollectData;
  8. use Magento\Analytics\Model\ExportDataHandlerInterface;
  9. use Magento\Analytics\Model\SubscriptionStatusProvider;
  10. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  11. class CollectDataTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var ExportDataHandlerInterface|\PHPUnit_Framework_MockObject_MockObject
  15. */
  16. private $exportDataHandlerMock;
  17. /**
  18. * @var SubscriptionStatusProvider|\PHPUnit_Framework_MockObject_MockObject
  19. */
  20. private $subscriptionStatusMock;
  21. /**
  22. * @var ObjectManagerHelper
  23. */
  24. private $objectManagerHelper;
  25. /**
  26. * @var CollectData
  27. */
  28. private $collectData;
  29. /**
  30. * @return void
  31. */
  32. protected function setUp()
  33. {
  34. $this->exportDataHandlerMock = $this->getMockBuilder(ExportDataHandlerInterface::class)
  35. ->getMockForAbstractClass();
  36. $this->subscriptionStatusMock = $this->getMockBuilder(SubscriptionStatusProvider::class)
  37. ->disableOriginalConstructor()
  38. ->getMock();
  39. $this->objectManagerHelper = new ObjectManagerHelper($this);
  40. $this->collectData = $this->objectManagerHelper->getObject(
  41. CollectData::class,
  42. [
  43. 'exportDataHandler' => $this->exportDataHandlerMock,
  44. 'subscriptionStatus' => $this->subscriptionStatusMock,
  45. ]
  46. );
  47. }
  48. /**
  49. * @param string $status
  50. * @return void
  51. * @dataProvider executeDataProvider
  52. */
  53. public function testExecute($status)
  54. {
  55. $this->subscriptionStatusMock
  56. ->expects($this->once())
  57. ->method('getStatus')
  58. ->with()
  59. ->willReturn($status);
  60. $this->exportDataHandlerMock
  61. ->expects(($status === SubscriptionStatusProvider::ENABLED) ? $this->once() : $this->never())
  62. ->method('prepareExportData')
  63. ->with();
  64. $this->assertTrue($this->collectData->execute());
  65. }
  66. /**
  67. * @return array
  68. */
  69. public function executeDataProvider()
  70. {
  71. return [
  72. 'Subscription is enabled' => [SubscriptionStatusProvider::ENABLED],
  73. 'Subscription is disabled' => [SubscriptionStatusProvider::DISABLED],
  74. ];
  75. }
  76. }