CouponTest.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\SalesRule\Test\Unit\Model;
  7. /**
  8. * Class CouponTest
  9. */
  10. class CouponTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\SalesRule\Model\ResourceModel\Coupon|\PHPUnit_Framework_MockObject_MockObject
  14. */
  15. protected $resourceMock;
  16. /**
  17. * @var \Magento\Framework\Event\Manager|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. protected $eventManager;
  20. /**
  21. * @var \Magento\SalesRule\Model\Coupon
  22. */
  23. protected $couponModel;
  24. protected function setUp()
  25. {
  26. $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  27. $this->resourceMock = $this->createPartialMock(
  28. \Magento\SalesRule\Model\ResourceModel\Coupon::class,
  29. ['loadPrimaryByRule', 'load', '__wakeup', 'getIdFieldName']
  30. );
  31. $this->eventManager = $this->createPartialMock(\Magento\Framework\Event\Manager::class, ['dispatch']);
  32. $context = $this->createPartialMock(\Magento\Framework\Model\Context::class, ['getEventDispatcher']);
  33. $context->expects($this->once())->method('getEventDispatcher')->will($this->returnValue($this->eventManager));
  34. $this->couponModel = $objectManager->getObject(
  35. \Magento\SalesRule\Model\Coupon::class,
  36. [
  37. 'resource' => $this->resourceMock,
  38. 'context' => $context
  39. ]
  40. );
  41. }
  42. /**
  43. * Run test setRule method
  44. */
  45. public function testSetRule()
  46. {
  47. /** @var \Magento\SalesRule\Model\Rule|\PHPUnit_Framework_MockObject_MockObject $ruleMock */
  48. $ruleMock = $this->createPartialMock(\Magento\SalesRule\Model\Rule::class, ['getId', '__wakeup']);
  49. $ruleMock->expects($this->once())->method('getId');
  50. $this->assertEquals($this->couponModel, $this->couponModel->setRule($ruleMock));
  51. }
  52. /**
  53. * Run test loadPrimaryByRule method
  54. */
  55. public function testLoadPrimaryByRule()
  56. {
  57. $this->resourceMock->expects($this->once())->method('loadPrimaryByRule');
  58. $this->assertEquals($this->couponModel, $this->couponModel->loadPrimaryByRule(1));
  59. }
  60. /**
  61. * Run test loadByCode method
  62. */
  63. public function testLoadByCode()
  64. {
  65. $this->eventManager->expects($this->any())->method('dispatch');
  66. $this->resourceMock->expects($this->once())->method('load');
  67. $this->assertEquals($this->couponModel, $this->couponModel->loadByCode('code-value'));
  68. }
  69. }