Skip to content

Commit 1762837

Browse files
authored
Merge pull request #148 from bavix/units
add cases
2 parents 71293e1 + b92c7cc commit 1762837

File tree

2 files changed

+58
-3
lines changed

2 files changed

+58
-3
lines changed

tests/Models/UserMulti.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
namespace Bavix\Wallet\Test\Models;
44

55
use Bavix\Wallet\Interfaces\Wallet;
6-
use Bavix\Wallet\Traits\HasWallet;
6+
use Bavix\Wallet\Interfaces\WalletFloat;
7+
use Bavix\Wallet\Traits\HasWalletFloat;
78
use Bavix\Wallet\Traits\HasWallets;
89
use Illuminate\Database\Eloquent\Model;
910

@@ -14,9 +15,9 @@
1415
* @property string $name
1516
* @property string $email
1617
*/
17-
class UserMulti extends Model implements Wallet
18+
class UserMulti extends Model implements Wallet, WalletFloat
1819
{
19-
use HasWallet, HasWallets;
20+
use HasWalletFloat, HasWallets;
2021

2122
/**
2223
* @return string

tests/MultiWalletTest.php

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,60 @@ public function testDeposit(): void
7070
$wallet->withdraw($wallet->balance);
7171
$this->assertEquals($user->balance, 0);
7272
$this->assertEquals($wallet->balance, 0);
73+
74+
$transaction = $wallet->depositFloat(10.10);
75+
$this->assertEquals($user->balance, 0);
76+
$this->assertEquals($wallet->balance, 1010);
77+
$this->assertEquals($wallet->balanceFloat, 10.10);
78+
79+
$user->refresh();
80+
81+
// is equal
82+
$this->assertTrue($transaction->wallet->is($user->getWallet('deposit')));
83+
$this->assertTrue($user->getWallet('deposit')->is($wallet));
84+
$this->assertTrue($wallet->is($user->getWallet('deposit')));
85+
86+
$wallet->withdrawFloat($wallet->balanceFloat);
87+
$this->assertEquals($wallet->balanceFloat, 0);
88+
}
89+
90+
/**
91+
* @return void
92+
*/
93+
public function testDepositFloat(): void
94+
{
95+
/**
96+
* @var UserMulti $userInit
97+
* @var UserMulti $userFind
98+
*/
99+
$userInit = factory(UserMulti::class)->create();
100+
$wallet = $userInit->createWallet([
101+
'name' => 'my-simple-wallet',
102+
'slug' => $userInit->getKey()
103+
]);
104+
105+
// without find
106+
$wallet->depositFloat(100.1);
107+
108+
$this->assertEquals($wallet->balanceFloat, 100.1);
109+
$this->assertEquals($wallet->balance, 10010);
110+
111+
$wallet->withdrawFloat($wallet->balanceFloat);
112+
$this->assertEquals($wallet->balanceFloat, 0);
113+
114+
// find
115+
$userFind = UserMulti::query()->find($userInit->id); // refresh
116+
$this->assertTrue($userInit->is($userFind));
117+
$this->assertTrue($userFind->hasWallet($userInit->getKey()));
118+
119+
$wallet = $userFind->getWallet($userInit->getKey());
120+
$wallet->depositFloat(100.1);
121+
122+
$this->assertEquals($wallet->balanceFloat, 100.1);
123+
$this->assertEquals($wallet->balance, 10010);
124+
125+
$wallet->withdrawFloat($wallet->balanceFloat);
126+
$this->assertEquals($wallet->balanceFloat, 0);
73127
}
74128

75129
/**

0 commit comments

Comments
 (0)