/
MessageTest.php
107 lines (103 loc) · 3.97 KB
/
MessageTest.php
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
<?php
namespace Xsolla\SDK\Tests\Unit\Webhook\Message;
use PHPUnit\Framework\TestCase;
use Xsolla\SDK\Webhook\Message;
/**
* @group unit
*/
class MessageTest extends TestCase
{
/**
* @dataProvider factoryProvider
*/
public function testFactory($notificationType, $expectedClass, $isUserValidation, $isPayment, $isRefund)
{
$userId = 'USER_ID';
$user = ['id' => 'USER_ID'];
$request = ['notification_type' => $notificationType, 'user' => $user];
$message = Message\Message::fromArray($request);
static::assertInstanceOf($expectedClass, $message);
static::assertSame($userId, $message->getUserId());
static::assertSame($user, $message->getUser());
static::assertSame($request, $message->toArray());
static::assertSame($notificationType, $message->getNotificationType());
static::assertSame($isUserValidation, $message->isUserValidation());
static::assertSame($isPayment, $message->isPayment());
static::assertSame($isRefund, $message->isRefund());
}
public function factoryProvider()
{
return [
[
'notificationType' => 'user_validation',
'expectedClass' => '\Xsolla\SDK\Webhook\Message\UserValidationMessage',
'isUserValidation' => true,
'isPayment' => false,
'isRefund' => false,
],
[
'notificationType' => 'payment',
'expectedClass' => '\Xsolla\SDK\Webhook\Message\PaymentMessage',
'isUserValidation' => false,
'isPayment' => true,
'isRefund' => false,
],
[
'notificationType' => 'refund',
'expectedClass' => '\Xsolla\SDK\Webhook\Message\RefundMessage',
'isUserValidation' => false,
'isPayment' => false,
'isRefund' => true,
],
[
'notificationType' => 'afs_reject',
'expectedClass' => '\Xsolla\SDK\Webhook\Message\AfsRejectMessage',
'isUserValidation' => false,
'isPayment' => false,
'isRefund' => false,
],
[
'notificationType' => 'create_subscription',
'expectedClass' => '\Xsolla\SDK\Webhook\Message\CreateSubscriptionMessage',
'isUserValidation' => false,
'isPayment' => false,
'isRefund' => false,
],
[
'notificationType' => 'cancel_subscription',
'expectedClass' => '\Xsolla\SDK\Webhook\Message\CancelSubscriptionMessage',
'isUserValidation' => false,
'isPayment' => false,
'isRefund' => false,
],
[
'notificationType' => 'update_subscription',
'expectedClass' => '\Xsolla\SDK\Webhook\Message\UpdateSubscriptionMessage',
'isUserValidation' => false,
'isPayment' => false,
'isRefund' => false,
],
[
'notificationType' => 'user_balance_operation',
'expectedClass' => '\Xsolla\SDK\Webhook\Message\UserBalanceMessage',
'isUserValidation' => false,
'isPayment' => false,
'isRefund' => false,
],
[
'notificationType' => 'get_pincode',
'expectedClass' => '\Xsolla\SDK\Webhook\Message\GetPinCodeMessage',
'isUserValidation' => false,
'isPayment' => false,
'isRefund' => false,
],
[
'notificationType' => 'user_search',
'expectedClass' => '\Xsolla\SDK\Webhook\Message\UserSearchMessage',
'isUserValidation' => false,
'isPayment' => false,
'isRefund' => false,
],
];
}
}