Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CreditmemoRepositoryTest.php
Go to the documentation of this file.
1 <?php
8 
11 
16 class CreditmemoRepositoryTest extends \PHPUnit\Framework\TestCase
17 {
21  protected $creditmemo;
22 
26  protected $metadataMock;
27 
32 
36  private $collectionProcessorMock;
37 
38  protected function setUp()
39  {
40  $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
41  $this->metadataMock = $this->createMock(\Magento\Sales\Model\ResourceModel\Metadata::class);
42  $this->searchResultFactoryMock = $this->createPartialMock(
43  \Magento\Sales\Api\Data\CreditmemoSearchResultInterfaceFactory::class,
44  ['create']
45  );
46  $this->collectionProcessorMock = $this->getMockBuilder(CollectionProcessorInterface::class)
47  ->getMock();
48  $this->creditmemo = $objectManager->getObject(
49  \Magento\Sales\Model\Order\CreditmemoRepository::class,
50  [
51  'metadata' => $this->metadataMock,
52  'searchResultFactory' => $this->searchResultFactoryMock,
53  'collectionProcessor' => $this->collectionProcessorMock,
54  ]
55  );
56  $this->type = $this->createPartialMock(\Magento\Eav\Model\Entity\Type::class, ['fetchNewIncrementId']);
57  }
58 
59  public function testGet()
60  {
61  $id = 1;
62  $entity = $this->getMockBuilder(\Magento\Sales\Model\Order\Creditmemo::class)
63  ->disableOriginalConstructor()
64  ->getMock();
65  $entity->expects($this->once())
66  ->method('load')
67  ->with($id)
68  ->willReturn($entity);
69  $entity->expects($this->once())
70  ->method('getEntityId')
71  ->willReturn($id);
72 
73  $this->metadataMock->expects($this->once())
74  ->method('getNewInstance')
75  ->willReturn($entity);
76 
77  $this->assertEquals($entity, $this->creditmemo->get($id));
78  //retrieve entity from registry
79  $this->assertEquals($entity, $this->creditmemo->get($id));
80  }
81 
86  public function testGetNoId()
87  {
88  $this->creditmemo->get(null);
89  }
90 
95  public function testGetEntityNoId()
96  {
97  $id = 1;
98  $entity = $this->getMockBuilder(\Magento\Sales\Model\Order\Creditmemo::class)
99  ->disableOriginalConstructor()
100  ->getMock();
101  $entity->expects($this->once())
102  ->method('load')
103  ->with($id)
104  ->willReturn($entity);
105  $entity->expects($this->once())
106  ->method('getEntityId')
107  ->willReturn(null);
108 
109  $this->metadataMock->expects($this->once())
110  ->method('getNewInstance')
111  ->willReturn($entity);
112 
113  $this->assertNull($entity, $this->creditmemo->get($id));
114  }
115 
116  public function testCreate()
117  {
118  $entity = $this->getMockBuilder(\Magento\Sales\Model\Order\Creditmemo::class)
119  ->disableOriginalConstructor()
120  ->getMock();
121  $this->metadataMock->expects($this->once())
122  ->method('getNewInstance')
123  ->willReturn($entity);
124  $this->assertEquals($entity, $this->creditmemo->create());
125  }
126 
127  public function testGetList()
128  {
129  $searchCriteria = $this->getMockBuilder(\Magento\Framework\Api\SearchCriteria::class)
130  ->disableOriginalConstructor()
131  ->getMock();
132  $collection = $this->getMockBuilder(\Magento\Sales\Model\ResourceModel\Order\Creditmemo\Collection::class)
133  ->disableOriginalConstructor()
134  ->getMock();
135  $this->collectionProcessorMock->expects($this->once())
136  ->method('process')
137  ->with($searchCriteria, $collection);
138  $this->searchResultFactoryMock->expects($this->once())
139  ->method('create')
140  ->willReturn($collection);
141 
142  $this->assertEquals($collection, $this->creditmemo->getList($searchCriteria));
143  }
144 
145  public function testDelete()
146  {
147  $entity = $this->getMockBuilder(\Magento\Sales\Model\Order\Creditmemo::class)
148  ->disableOriginalConstructor()
149  ->getMock();
150  $entity->expects($this->once())
151  ->method('getEntityId')
152  ->willReturn(1);
153 
154  $mapper = $this->getMockBuilder(\Magento\Sales\Model\ResourceModel\Order\Creditmemo::class)
155  ->disableOriginalConstructor()
156  ->getMock();
157  $mapper->expects($this->once())
158  ->method('delete')
159  ->with($entity);
160 
161  $this->metadataMock->expects($this->any())
162  ->method('getMapper')
163  ->willReturn($mapper);
164 
165  $this->assertTrue($this->creditmemo->delete($entity));
166  }
167 
172  public function testDeleteWithException()
173  {
174  $entity = $this->getMockBuilder(\Magento\Sales\Model\Order\Creditmemo::class)
175  ->disableOriginalConstructor()
176  ->getMock();
177  $entity->expects($this->never())
178  ->method('getEntityId');
179 
180  $mapper = $this->getMockBuilder(\Magento\Sales\Model\ResourceModel\Order\Creditmemo::class)
181  ->disableOriginalConstructor()
182  ->getMock();
183  $mapper->expects($this->once())
184  ->method('delete')
185  ->willThrowException(new \Exception('error'));
186 
187  $this->metadataMock->expects($this->any())
188  ->method('getMapper')
189  ->willReturn($mapper);
190 
191  $this->creditmemo->delete($entity);
192  }
193 
194  public function testSave()
195  {
196  $entity = $this->getMockBuilder(\Magento\Sales\Model\Order\Creditmemo::class)
197  ->disableOriginalConstructor()
198  ->getMock();
199  $entity->expects($this->any())
200  ->method('getEntityId')
201  ->willReturn(1);
202 
203  $mapper = $this->getMockBuilder(\Magento\Sales\Model\ResourceModel\Order\Creditmemo::class)
204  ->disableOriginalConstructor()
205  ->getMock();
206  $mapper->expects($this->once())
207  ->method('save')
208  ->with($entity);
209 
210  $this->metadataMock->expects($this->any())
211  ->method('getMapper')
212  ->willReturn($mapper);
213 
214  $this->assertEquals($entity, $this->creditmemo->save($entity));
215  }
216 
221  public function testSaveWithException()
222  {
223  $entity = $this->getMockBuilder(\Magento\Sales\Model\Order\Creditmemo::class)
224  ->disableOriginalConstructor()
225  ->getMock();
226  $entity->expects($this->never())
227  ->method('getEntityId');
228 
229  $mapper = $this->getMockBuilder(\Magento\Sales\Model\ResourceModel\Order\Creditmemo::class)
230  ->disableOriginalConstructor()
231  ->getMock();
232  $mapper->expects($this->once())
233  ->method('save')
234  ->willThrowException(new \Exception('error'));
235 
236  $this->metadataMock->expects($this->any())
237  ->method('getMapper')
238  ->willReturn($mapper);
239 
240  $this->assertEquals($entity, $this->creditmemo->save($entity));
241  }
242 }
$objectManager
Definition: bootstrap.php:17
$id
Definition: fieldset.phtml:14
$searchCriteria
$entity
Definition: element.phtml:22