Skip to content

Commit 84aa1ee

Browse files
committed
ADO-424: Adds phpunit for Meta_Sales module
1 parent 7803535 commit 84aa1ee

File tree

3 files changed

+248
-0
lines changed

3 files changed

+248
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace Meta\Sales\Test\Unit\Model\Config\Source;
5+
6+
use PHPUnit\Framework\TestCase;
7+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
8+
use Meta\Sales\Model\Config\Source\ActiveShippingMethods;
9+
use Magento\Shipping\Model\Config as ShippingConfig;
10+
use Magento\Shipping\Model\Carrier\AbstractCarrierInterface;
11+
use Magento\Framework\App\Config\ScopeConfigInterface;
12+
13+
class ActiveShippingMethodsTest extends TestCase
14+
{
15+
private $scopeConfigMock;
16+
private $shippingConfigMock;
17+
private $object;
18+
private $subject;
19+
20+
public function setUp(): void
21+
{
22+
23+
$this->scopeConfigMock = $this->getMockBuilder(ScopeConfigInterface::class)
24+
->disableOriginalConstructor()
25+
->getMock();
26+
$this->shippingConfigMock = $this->getMockBuilder(ShippingConfig::class)
27+
->disableOriginalConstructor()
28+
->getMock();
29+
$this->object = new ObjectManager($this);
30+
$this->subject = $this->object->getObject(ActiveShippingMethods::class, [
31+
'scopeConfig' => $this->scopeConfigMock,
32+
'shippingConfig' => $this->shippingConfigMock
33+
]);
34+
}
35+
36+
public function testToOptionArray()
37+
{
38+
$carrierMock = $this->getMockBuilder(AbstractCarrierInterface::class)
39+
->disableOriginalConstructor()
40+
->getMockForAbstractClass();
41+
$this->shippingConfigMock->expects($this->once())
42+
->method('getAllCarriers')
43+
->willReturn([$carrierMock]);
44+
45+
$this->subject->toOptionArray();
46+
}
47+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace Meta\Sales\Test\Unit\Model\Config\Source;
5+
6+
use PHPUnit\Framework\TestCase;
7+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
8+
use Meta\Sales\Model\Config\Source\DefaultOrderStatus;
9+
10+
class DefaultOrderStatusTest extends TestCase
11+
{
12+
private $object;
13+
private $subject;
14+
public function setUp(): void
15+
{
16+
$this->object = new ObjectManager($this);
17+
$this->subject = $this->object->getObject(DefaultOrderStatus::class);
18+
}
19+
20+
public function testToOptionArray(): void
21+
{
22+
$options = [
23+
['value' => DefaultOrderStatus::ORDER_STATUS_PENDING, 'label' => __('Pending')],
24+
['value' => DefaultOrderStatus::ORDER_STATUS_PROCESSING, 'label' => __('Processing')],
25+
];
26+
$this->assertEquals($options, $this->subject->toOptionArray());
27+
}
28+
}
Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace Meta\Sales\Test\Unit\Model\Order;
5+
6+
use PHPUnit\Framework\TestCase;
7+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
8+
use Meta\Sales\Model\Order\CreateCancellation;
9+
use Magento\Sales\Api\OrderRepositoryInterface;
10+
use Magento\Sales\Model\Order;
11+
use Magento\Sales\Model\Order\Item as OrderItem;
12+
use Meta\Sales\Api\Data\FacebookOrderInterfaceFactory;
13+
use Meta\Sales\Api\Data\FacebookOrderInterface;
14+
use Magento\Framework\DB\TransactionFactory;
15+
use Magento\Framework\DB\Transaction;
16+
use Psr\Log\LoggerInterface;
17+
use Meta\BusinessExtension\Helper\FBEHelper;
18+
19+
class CreateCancellationTest extends TestCase
20+
{
21+
private $orderRepositoryMock;
22+
private $orderMock;
23+
private $orderItemMock;
24+
private $facebookOrderFactoryMock;
25+
private $facebookOrderMock;
26+
private $transactionFactoryMock;
27+
private $transactionMock;
28+
private $fbeHelperMock;
29+
private $loggerMock;
30+
private $object;
31+
private $subject;
32+
33+
public function setUp(): void
34+
{
35+
$this->orderRepositoryMock = $this->getMockBuilder(OrderRepositoryInterface::class)
36+
->disableOriginalConstructor()
37+
->getMockForAbstractClass();
38+
$this->orderMock = $this->getMockBuilder(Order::class)
39+
->disableOriginalConstructor()
40+
->getMock();
41+
$this->orderItemMock = $this->getMockBuilder(OrderItem::class)
42+
->disableOriginalConstructor()
43+
->getMock();
44+
$this->facebookOrderFactoryMock = $this->getMockBuilder(FacebookOrderInterfaceFactory::class)
45+
->disableOriginalConstructor()
46+
->getMock();
47+
$this->facebookOrderMock = $this->getMockBuilder(FacebookOrderInterface::class)
48+
->addMethods(['load'])
49+
->disableOriginalConstructor()
50+
->getMockForAbstractClass();
51+
$this->transactionFactoryMock = $this->getMockBuilder(TransactionFactory::class)
52+
->disableOriginalConstructor()
53+
->getMock();
54+
$this->fbeHelperMock = $this->getMockBuilder(FBEHelper::class)
55+
->disableOriginalConstructor()
56+
->getMock();
57+
$this->loggerMock = $this->getMockBuilder(LoggerInterface::class)
58+
->disableOriginalConstructor()
59+
->getMockForAbstractClass();
60+
61+
$this->object = new ObjectManager($this);
62+
$this->subject = $this->object->getObject(CreateCancellation::class, [
63+
'orderRepository' => $this->orderRepositoryMock,
64+
'facebookOrderFactory' => $this->facebookOrderFactoryMock,
65+
'transactionFactory' => $this->transactionFactoryMock,
66+
'fbeHelper' => $this->fbeHelperMock,
67+
'logger' => $this->loggerMock
68+
]);
69+
}
70+
71+
public function testExecuteNoMagentoOrder(): void
72+
{
73+
$data = [
74+
'id' => 1
75+
];
76+
$facebookCancellationData = [
77+
'items' => [
78+
'data' => $data
79+
],
80+
];
81+
$this->facebookOrderFactoryMock->expects($this->once())
82+
->method('create')
83+
->willReturn($this->facebookOrderMock);
84+
$this->facebookOrderMock->expects($this->once())
85+
->method('load')
86+
->with($data['id'], 'facebook_order_id')
87+
->willReturnSelf();
88+
89+
$this->subject->execute($data, $facebookCancellationData);
90+
}
91+
92+
public function testExecutePartiallyCancelled(): void
93+
{
94+
$magentoOrderId = 1;
95+
$data = [
96+
'id' => 1
97+
];
98+
$facebookCancellationData = [
99+
'items' => [
100+
'data' => $data
101+
],
102+
];
103+
$this->facebookOrderFactoryMock->expects($this->once())
104+
->method('create')
105+
->willReturn($this->facebookOrderMock);
106+
$this->facebookOrderMock->expects($this->once())
107+
->method('load')
108+
->with($data['id'], 'facebook_order_id')
109+
->willReturnSelf();
110+
$this->facebookOrderMock->expects($this->once())
111+
->method('getMagentoOrderId')
112+
->willReturn($magentoOrderId);
113+
$this->orderRepositoryMock->expects($this->once())
114+
->method('get')
115+
->with($magentoOrderId)
116+
->willReturn($this->orderMock);
117+
$this->orderMock->expects($this->once())
118+
->method('getAllItems')
119+
->willReturn([$this->orderItemMock]);
120+
$this->orderItemMock->expects($this->once())
121+
->method('getQtyCanceled')
122+
->willReturn(1);
123+
124+
$this->subject->execute($data, $facebookCancellationData);
125+
}
126+
127+
public function testExecute(): void
128+
{
129+
$magentoOrderId = 1;
130+
$data = [
131+
'id' => 1
132+
];
133+
$facebookCancellationData = [
134+
'items' => [
135+
'data' => [
136+
'quantity' => 1
137+
]
138+
],
139+
];
140+
$this->facebookOrderFactoryMock->expects($this->once())
141+
->method('create')
142+
->willReturn($this->facebookOrderMock);
143+
$this->facebookOrderMock->expects($this->once())
144+
->method('load')
145+
->with($data['id'], 'facebook_order_id')
146+
->willReturnSelf();
147+
$this->facebookOrderMock->expects($this->once())
148+
->method('getMagentoOrderId')
149+
->willReturn($magentoOrderId);
150+
$this->orderRepositoryMock->expects($this->once())
151+
->method('get')
152+
->with($magentoOrderId)
153+
->willReturn($this->orderMock);
154+
$this->orderMock->expects($this->any())
155+
->method('getAllItems')
156+
->willReturn([$this->orderItemMock]);
157+
$this->orderItemMock->expects($this->once())
158+
->method('getQtyCanceled')
159+
->willReturn(0);
160+
$this->orderItemMock->expects($this->once())
161+
->method('getQtyOrdered')
162+
->willReturn(0);
163+
$this->orderMock->expects($this->once())
164+
->method('cancel')
165+
->willReturnSelf();
166+
$this->orderMock->expects($this->once())
167+
->method('setStatus')
168+
->with(Order::STATE_CANCELED)
169+
->willReturn(null);
170+
171+
$this->subject->execute($data, $facebookCancellationData);
172+
}
173+
}

0 commit comments

Comments
 (0)