Server IP : 66.29.132.124 / Your IP : 18.222.98.91 Web Server : LiteSpeed System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : wavevlvu ( 1524) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/wavevlvu/book24.ng/vendor/bavix/laravel-wallet/tests/ |
Upload File : |
<?php namespace Bavix\Wallet\Test; use Bavix\Wallet\Models\Transaction; use Bavix\Wallet\Test\Factories\BuyerFactory; use Bavix\Wallet\Test\Factories\ItemMinTaxFactory; use Bavix\Wallet\Test\Models\Buyer; use Bavix\Wallet\Test\Models\ItemMinTax; class MinTaxTest extends TestCase { /** * @return void */ public function testPay(): void { /** * @var Buyer $buyer * @var ItemMinTax $product */ $buyer = BuyerFactory::new()->create(); $product = ItemMinTaxFactory::new()->create([ 'quantity' => 1, ]); $fee = (int) ($product->getAmountProduct($buyer) * $product->getFeePercent() / 100); if ($fee < $product->getMinimalFee()) { $fee = $product->getMinimalFee(); } $balance = $product->getAmountProduct($buyer) + $fee; self::assertEquals($buyer->balance, 0); $buyer->deposit($balance); self::assertNotEquals($buyer->balance, 0); $transfer = $buyer->pay($product); self::assertNotNull($transfer); /** * @var Transaction $withdraw * @var Transaction $deposit */ $withdraw = $transfer->withdraw; $deposit = $transfer->deposit; self::assertEquals($withdraw->amount, -$balance); self::assertEquals($deposit->amount, $product->getAmountProduct($buyer)); self::assertNotEquals($deposit->amount, $withdraw->amount); self::assertEquals($transfer->fee, $fee); $buyer->refund($product); self::assertEquals($buyer->balance, $deposit->amount); self::assertEquals($product->balance, 0); $buyer->withdraw($buyer->balance); self::assertEquals($buyer->balance, 0); } }