Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
OrderRefundCreationArgumentsTest.php
Go to the documentation of this file.
1 <?php
7 
13 use Magento\Sales\Api\Data\CreditmemoCreationArgumentsExtensionInterface;
16 
20 class OrderRefundCreationArgumentsTest extends \PHPUnit\Framework\TestCase
21 {
25  private $plugin;
26 
30  private $returnValidatorMock;
31 
35  private $extensionAttributesMock;
36 
40  private $creditmemoCreationArgumentsMock;
41 
45  private $refundOrderValidatorMock;
46 
50  private $validateResultMock;
51 
55  private $orderMock;
56 
60  private $creditmemoMock;
61 
62  protected function setUp()
63  {
64  $this->returnValidatorMock = $this->getMockBuilder(ReturnValidator::class)
65  ->disableOriginalConstructor()
66  ->getMock();
67 
68  $this->creditmemoCreationArgumentsMock = $this->getMockBuilder(CreditmemoCreationArgumentsInterface::class)
69  ->disableOriginalConstructor()
70  ->getMock();
71 
72  $this->extensionAttributesMock = $this->getMockBuilder(CreditmemoCreationArgumentsExtensionInterface::class)
73  ->setMethods(['getReturnToStockItems'])
74  ->disableOriginalConstructor()
75  ->getMockForAbstractClass();
76 
77  $this->validateResultMock = $this->getMockBuilder(ValidatorResultInterface::class)
78  ->disableOriginalConstructor()
79  ->getMock();
80 
81  $this->refundOrderValidatorMock = $this->getMockBuilder(RefundOrderInterface::class)
82  ->disableOriginalConstructor()
83  ->getMock();
84 
85  $this->orderMock = $this->getMockBuilder(OrderInterface::class)
86  ->disableOriginalConstructor()
87  ->getMock();
88 
89  $this->creditmemoMock = $this->getMockBuilder(CreditmemoInterface::class)
90  ->disableOriginalConstructor()
91  ->getMock();
92 
93  $this->plugin = new OrderRefundCreationArguments($this->returnValidatorMock);
94  }
95 
99  public function testAfterValidation($erroMessage)
100  {
101  $returnToStockItems = [1];
102  $this->creditmemoCreationArgumentsMock->expects($this->exactly(3))
103  ->method('getExtensionAttributes')
104  ->willReturn($this->extensionAttributesMock);
105 
106  $this->extensionAttributesMock->expects($this->exactly(2))
107  ->method('getReturnToStockItems')
108  ->willReturn($returnToStockItems);
109 
110  $this->returnValidatorMock->expects($this->once())
111  ->method('validate')
112  ->willReturn($erroMessage);
113 
114  $this->validateResultMock->expects($erroMessage ? $this->once() : $this->never())
115  ->method('addMessage')
116  ->with($erroMessage);
117 
118  $this->plugin->afterValidate(
119  $this->refundOrderValidatorMock,
120  $this->validateResultMock,
121  $this->orderMock,
122  $this->creditmemoMock,
123  [],
124  false,
125  false,
126  null,
127  $this->creditmemoCreationArgumentsMock
128  );
129  }
130 
134  public function dataProvider()
135  {
136  return [
137  'withErrors' => ['Error!'],
138  'withoutErrors' => ['null'],
139  ];
140  }
141 }