Skip to content

Commit 46a789e

Browse files
author
Stanislav Idolov
authored
ENGCOM-2984: Sales: add missing unit tests for model classes #18072
2 parents ca42048 + f65782d commit 46a789e

File tree

2 files changed

+162
-0
lines changed

2 files changed

+162
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Sales\Test\Unit\Model;
9+
10+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
11+
use Magento\Sales\Model\ValidatorResultInterface;
12+
use Magento\Sales\Model\ValidatorResultInterfaceFactory;
13+
use Magento\Sales\Model\ValidatorResultMerger;
14+
15+
/**
16+
* @covers \Magento\Sales\Model\ValidatorResultMerger
17+
*/
18+
class ValidatorResultMergerTest extends \PHPUnit\Framework\TestCase
19+
{
20+
/**
21+
* Testable Object
22+
*
23+
* @var ValidatorResultMerger
24+
*/
25+
private $validatorResultMerger;
26+
27+
/**
28+
* Object Manager
29+
*
30+
* @var ObjectManager
31+
*/
32+
private $objectManager;
33+
34+
/**
35+
* @var ValidatorResultInterfaceFactory|\PHPUnit_Framework_MockObject_MockObject
36+
*/
37+
private $validatorResultFactoryMock;
38+
39+
/**
40+
* Set Up
41+
*
42+
* @return void
43+
*/
44+
protected function setUp()
45+
{
46+
$this->validatorResultFactoryMock = $this->getMockBuilder(ValidatorResultInterfaceFactory::class)
47+
->setMethods(['create'])->disableOriginalConstructor()->getMock();
48+
$this->objectManager = new ObjectManager($this);
49+
$this->validatorResultMerger = $this->objectManager->getObject(
50+
ValidatorResultMerger::class,
51+
[
52+
'validatorResultInterfaceFactory' => $this->validatorResultFactoryMock,
53+
]
54+
);
55+
}
56+
57+
/**
58+
* Test merge method
59+
*
60+
* @return void
61+
*/
62+
public function testMerge()
63+
{
64+
$validatorResultMock = $this->createMock(ValidatorResultInterface::class);
65+
$orderValidationResultMock = $this->createMock(ValidatorResultInterface::class);
66+
$creditmemoValidationResultMock = $this->createMock(ValidatorResultInterface::class);
67+
$itemsValidationMessages = [['test04', 'test05'], ['test06']];
68+
$this->validatorResultFactoryMock->expects($this->once())->method('create')
69+
->willReturn($validatorResultMock);
70+
$orderValidationResultMock->expects($this->once())->method('getMessages')->willReturn(['test01', 'test02']);
71+
$creditmemoValidationResultMock->expects($this->once())->method('getMessages')->willReturn(['test03']);
72+
73+
$validatorResultMock->expects($this->at(0))->method('addMessage')->with('test01');
74+
$validatorResultMock->expects($this->at(1))->method('addMessage')->with('test02');
75+
$validatorResultMock->expects($this->at(2))->method('addMessage')->with('test03');
76+
$validatorResultMock->expects($this->at(3))->method('addMessage')->with('test04');
77+
$validatorResultMock->expects($this->at(4))->method('addMessage')->with('test05');
78+
$validatorResultMock->expects($this->at(5))->method('addMessage')->with('test06');
79+
$expected = $validatorResultMock;
80+
$actual = $this->validatorResultMerger->merge(
81+
$orderValidationResultMock,
82+
$creditmemoValidationResultMock,
83+
...$itemsValidationMessages
84+
);
85+
$this->assertEquals($expected, $actual);
86+
}
87+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Sales\Test\Unit\Model;
9+
10+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
11+
use Magento\Sales\Model\ValidatorResult;
12+
13+
/**
14+
* @covers \Magento\Sales\Model\ValidatorResult
15+
*/
16+
class ValidatorResultTest extends \PHPUnit\Framework\TestCase
17+
{
18+
/**
19+
* Testable Object
20+
*
21+
* @var ValidatorResult
22+
*/
23+
private $validatorResult;
24+
25+
/**
26+
* Object Manager
27+
*
28+
* @var ObjectManager
29+
*/
30+
private $objectManager;
31+
32+
/**
33+
* Set Up
34+
*
35+
* @return void
36+
*/
37+
protected function setUp()
38+
{
39+
$this->objectManager = new ObjectManager($this);
40+
$this->validatorResult = $this->objectManager->getObject(ValidatorResult::class);
41+
}
42+
43+
/**
44+
* Test addMessage method
45+
*
46+
* @return void
47+
*/
48+
public function testAddMessages()
49+
{
50+
$messageFirst = 'Sample message 01.';
51+
$messageSecond = 'Sample messages 02.';
52+
$messageThird = 'Sample messages 03.';
53+
$expected = [$messageFirst, $messageSecond, $messageThird];
54+
$this->validatorResult->addMessage($messageFirst);
55+
$this->validatorResult->addMessage($messageSecond);
56+
$this->validatorResult->addMessage($messageThird);
57+
$actual = $this->validatorResult->getMessages();
58+
$this->assertEquals($expected, $actual);
59+
}
60+
61+
/**
62+
* Test hasMessages method
63+
*
64+
* @return void
65+
*/
66+
public function testHasMessages()
67+
{
68+
$this->assertFalse($this->validatorResult->hasMessages());
69+
$messageFirst = 'Sample message 01.';
70+
$messageSecond = 'Sample messages 02.';
71+
$this->validatorResult->addMessage($messageFirst);
72+
$this->validatorResult->addMessage($messageSecond);
73+
$this->assertTrue($this->validatorResult->hasMessages());
74+
}
75+
}

0 commit comments

Comments
 (0)