TcTest.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Module\Fund\Tests\Unit;
  3. use App\Module\Fund\Enums\FUND_TYPE;
  4. use App\Module\Fund\Services\AccountService;
  5. use App\Module\Fund\Services\FundService;
  6. use Illuminate\Support\Facades\DB;
  7. use Tests\TestCase;
  8. /**
  9. * 流转测试
  10. */
  11. class TcTest extends TestCase
  12. {
  13. protected $fromUserId = 10002;
  14. public function setUp(): void
  15. {
  16. parent::setUp();
  17. AccountService::check4user($this->fromUserId);
  18. // 确保测试账户有足够余额 - 使用钻石账户进行测试
  19. $fund = new FundService($this->fromUserId, FUND_TYPE::FUND2->value);
  20. if ($fund->balance() < 10000000) {
  21. $fund->admin_operate(1, FUND_TYPE::FUND2, 1000000000, 'TEST');
  22. }
  23. }
  24. /**
  25. * 测试资金流转DTO
  26. */
  27. public function test_dto()
  28. {
  29. DB::beginTransaction();
  30. // 测试从钻石账户到金币账户的流转
  31. $fund = new FundService($this->fromUserId, FUND_TYPE::FUND2->value);
  32. $res = $fund->circulation(FUND_TYPE::FUND1, 10000000, 1, 'TEST', 'TEST');
  33. self::assertTrue($res);
  34. DB::commit();
  35. }
  36. }