StateResolverTest.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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\Order;
  7. use Magento\Sales\Model\Order;
  8. use Magento\Sales\Model\Order\StateResolver;
  9. /**
  10. * Class StateCheckerTest
  11. */
  12. class StateResolverTest extends \PHPUnit\Framework\TestCase
  13. {
  14. /**
  15. * @var \PHPUnit_Framework_MockObject_MockObject|Order
  16. */
  17. private $orderMock;
  18. /**
  19. * @var StateResolver
  20. */
  21. private $orderStateResolver;
  22. protected function setUp()
  23. {
  24. $this->orderMock = $this->getMockBuilder(Order::class)
  25. ->disableOriginalConstructor()
  26. ->getMock();
  27. $this->orderStateResolver = new StateResolver();
  28. }
  29. public function testStateComplete()
  30. {
  31. $this->assertEquals(Order::STATE_COMPLETE, $this->orderStateResolver->getStateForOrder($this->orderMock));
  32. }
  33. public function testStateClosed()
  34. {
  35. $this->orderMock->expects($this->once())
  36. ->method('getBaseGrandTotal')
  37. ->willReturn(100);
  38. $this->orderMock->expects($this->once())
  39. ->method('canCreditmemo')
  40. ->willReturn(false);
  41. $this->orderMock->expects($this->once())
  42. ->method('getTotalRefunded')
  43. ->willReturn(10.99);
  44. $this->assertEquals(Order::STATE_CLOSED, $this->orderStateResolver->getStateForOrder($this->orderMock));
  45. }
  46. public function testStateNew()
  47. {
  48. $this->orderMock->expects($this->once())
  49. ->method('isCanceled')
  50. ->willReturn(true);
  51. $this->assertEquals(Order::STATE_NEW, $this->orderStateResolver->getStateForOrder($this->orderMock));
  52. }
  53. public function testStateProcessing()
  54. {
  55. $arguments = [StateResolver::IN_PROGRESS];
  56. $this->orderMock->expects($this->once())
  57. ->method('isCanceled')
  58. ->willReturn(true);
  59. $this->orderMock->expects($this->any())
  60. ->method('getState')
  61. ->willReturn(Order::STATE_NEW);
  62. $this->assertEquals(
  63. Order::STATE_PROCESSING,
  64. $this->orderStateResolver->getStateForOrder($this->orderMock, $arguments)
  65. );
  66. }
  67. }