CouponGeneratorTest.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\SalesRule\Test\Unit\Model;
  8. use Magento\SalesRule\Api\Data\CouponGenerationSpecInterface;
  9. use Magento\SalesRule\Api\Data\CouponGenerationSpecInterfaceFactory;
  10. use Magento\SalesRule\Model\CouponGenerator;
  11. use Magento\SalesRule\Model\Service\CouponManagementService;
  12. /**
  13. * @covers \Magento\SalesRule\Model\CouponGenerator
  14. */
  15. class CouponGeneratorTest extends \PHPUnit\Framework\TestCase
  16. {
  17. /**
  18. * Testable Object
  19. *
  20. * @var CouponGenerator
  21. */
  22. private $couponGenerator;
  23. /**
  24. * @var CouponManagementService|\PHPUnit_Framework_MockObject_MockObject
  25. */
  26. private $couponManagementServiceMock;
  27. /**
  28. * @var CouponGenerationSpecInterfaceFactory|\PHPUnit_Framework_MockObject_MockObject
  29. */
  30. private $generationSpecFactoryMock;
  31. /**
  32. * @var CouponGenerationSpecInterface|\PHPUnit_Framework_MockObject_MockObject
  33. */
  34. private $generationSpecMock;
  35. /**
  36. * Set Up
  37. *
  38. * @return void
  39. */
  40. protected function setUp()
  41. {
  42. $this->generationSpecFactoryMock = $this->getMockBuilder(CouponGenerationSpecInterfaceFactory::class)
  43. ->disableOriginalConstructor()->setMethods(['create'])->getMock();
  44. $this->couponManagementServiceMock = $this->createMock(CouponManagementService::class);
  45. $this->generationSpecMock = $this->createMock(CouponGenerationSpecInterface::class);
  46. $this->couponGenerator = new CouponGenerator(
  47. $this->couponManagementServiceMock,
  48. $this->generationSpecFactoryMock
  49. );
  50. }
  51. /**
  52. * Test beforeSave method
  53. *
  54. * @return void
  55. */
  56. public function testBeforeSave()
  57. {
  58. $expected = ['test'];
  59. $this->generationSpecFactoryMock->expects($this->once())->method('create')
  60. ->willReturn($this->generationSpecMock);
  61. $this->couponManagementServiceMock->expects($this->once())->method('generate')
  62. ->with($this->generationSpecMock)->willReturn($expected);
  63. $actual = $this->couponGenerator->generateCodes([]);
  64. self::assertEquals($expected, $actual);
  65. }
  66. }