Skip to content

Commit 4a6b52d

Browse files
committed
fix setAmountFloatAttribute
1 parent 8521fe5 commit 4a6b52d

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

src/Models/Transaction.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public function setAmountFloatAttribute(float $amount): void
116116
$decimalPlaces = app(WalletService::class)
117117
->decimalPlaces($this->wallet);
118118

119-
$this->amount = $amount * $decimalPlaces;
119+
$this->amount = (int)round($amount * $decimalPlaces);
120120
}
121121

122122
}

tests/WalletFloatTest.php

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Bavix\Wallet\Exceptions\AmountInvalid;
66
use Bavix\Wallet\Exceptions\BalanceIsEmpty;
77
use Bavix\Wallet\Models\Transaction;
8+
use Bavix\Wallet\Services\WalletService;
89
use Bavix\Wallet\Test\Models\UserFloat as User;
910

1011
class WalletFloatTest extends TestCase
@@ -227,6 +228,39 @@ public function testMantissa(): void
227228
$this->assertEquals($user->balanceFloat, 10000.00 + 2556.72);
228229
}
229230

231+
/**
232+
* @return void
233+
*/
234+
public function testUpdateTransaction(): void
235+
{
236+
/**
237+
* @var User $user
238+
*/
239+
$user = factory(User::class)->create();
240+
$this->assertEquals($user->balance, 0);
241+
242+
$user->deposit(1000000);
243+
$this->assertEquals($user->balance, 1000000);
244+
$this->assertEquals($user->balanceFloat, 10000.00);
245+
246+
$transaction = $user->withdrawFloat(2556.72);
247+
$this->assertEquals($transaction->amount, -255672);
248+
$this->assertEquals($transaction->amountFloat, -2556.72);
249+
$this->assertEquals($transaction->type, Transaction::TYPE_WITHDRAW);
250+
251+
$transaction->type = Transaction::TYPE_DEPOSIT;
252+
$transaction->amountFloat = 2556.72;
253+
$this->assertTrue($transaction->save());
254+
$this->assertTrue($user->wallet->refreshBalance());
255+
256+
$this->assertEquals($transaction->amount, 255672);
257+
$this->assertEquals($transaction->amountFloat, 2556.72);
258+
$this->assertEquals($transaction->type, Transaction::TYPE_DEPOSIT);
259+
260+
$this->assertEquals($user->balance, 1000000 + 255672);
261+
$this->assertEquals($user->balanceFloat, 10000.00 + 2556.72);
262+
}
263+
230264
/**
231265
* @return void
232266
*/

0 commit comments

Comments
 (0)