-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathPaymentNotificationCest.php
More file actions
111 lines (94 loc) · 3.79 KB
/
Copy pathPaymentNotificationCest.php
File metadata and controls
111 lines (94 loc) · 3.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
declare(strict_types=1);
namespace Tests\Integration\Entity;
use Codeception\Attribute\Group;
use Comgate\SDK\Entity\Money;
use Comgate\SDK\Entity\PaymentNotification;
use Tests\Support\IntegrationTester;
class PaymentNotificationCest
{
#[Group('notification')]
public function createFromCompletePayloadTest(IntegrationTester $I): void
{
$data = [
'merchant' => '123456',
'test' => 'true',
'price' => '10000',
'curr' => 'CZK',
'label' => 'Test product',
'refId' => 'order-42',
'email' => 'customer@example.com',
'transId' => 'AB12-CD34-EF56',
'status' => 'PAID',
'fee' => '0.50',
'vs' => '9876543210',
'method' => 'CARD_ALL',
'secret' => 'my-secret',
];
$notification = PaymentNotification::createFrom($data);
$I->assertInstanceOf(PaymentNotification::class, $notification);
$I->assertEquals('123456', $notification->getMerchant());
$I->assertTrue($notification->isTest());
$I->assertInstanceOf(Money::class, $notification->getPrice());
$I->assertEquals(10000, $notification->getPrice()->get());
$I->assertEquals('CZK', $notification->getCurrency());
$I->assertEquals('Test product', $notification->getLabel());
$I->assertEquals('order-42', $notification->getReferenceId());
$I->assertEquals('customer@example.com', $notification->getEmail());
$I->assertEquals('AB12-CD34-EF56', $notification->getTransactionId());
$I->assertEquals('PAID', $notification->getStatus());
$I->assertEquals('0.50', $notification->getFee());
$I->assertEquals('9876543210', $notification->getVs());
$I->assertEquals('CARD_ALL', $notification->getMethod());
$I->assertEquals('my-secret', $notification->getSecret());
}
#[Group('notification')]
public function createFromMissingFieldsTest(IntegrationTester $I): void
{
$notification = PaymentNotification::createFrom([]);
$I->assertInstanceOf(PaymentNotification::class, $notification);
$I->assertNull($notification->getMerchant());
$I->assertNull($notification->getTransactionId());
$I->assertNull($notification->getStatus());
$I->assertNull($notification->getPrice());
$I->assertNull($notification->getCurrency());
$I->assertNull($notification->getEmail());
$I->assertNull($notification->getLabel());
$I->assertNull($notification->getReferenceId());
$I->assertNull($notification->getFee());
$I->assertNull($notification->getVs());
$I->assertNull($notification->getMethod());
$I->assertNull($notification->getSecret());
}
#[Group('notification')]
public function isTestBooleanConversionTest(IntegrationTester $I): void
{
$notificationTrue = PaymentNotification::createFrom(['test' => 'true']);
$I->assertTrue($notificationTrue->isTest());
$notificationFalse = PaymentNotification::createFrom(['test' => 'false']);
$I->assertFalse($notificationFalse->isTest());
$notificationOne = PaymentNotification::createFrom(['test' => '1']);
$I->assertTrue($notificationOne->isTest());
$notificationZero = PaymentNotification::createFrom(['test' => '0']);
$I->assertFalse($notificationZero->isTest());
}
#[Group('notification')]
public function createFactoryReturnsEmptyObjectTest(IntegrationTester $I): void
{
$notification = PaymentNotification::create();
$I->assertInstanceOf(PaymentNotification::class, $notification);
$I->assertNull($notification->getTransactionId());
$I->assertNull($notification->getMerchant());
}
#[Group('notification')]
public function settersWorkCorrectlyTest(IntegrationTester $I): void
{
$notification = PaymentNotification::createFrom(['vs' => '111', 'method' => 'BANK_ALL']);
$notification->setVs('999');
$notification->setMethod('CARD_ALL');
$notification->setSecret('new-secret');
$I->assertEquals('999', $notification->getVs());
$I->assertEquals('CARD_ALL', $notification->getMethod());
$I->assertEquals('new-secret', $notification->getSecret());
}
}