| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?php
- namespace Tests\Unit;
- use App\Models\Agent\AgentFlowCommissionAssignment;
- use App\Models\Agent\AgentFlowCommissionProfile;
- use PHPUnit\Framework\TestCase;
- class AgentFlowCommissionProfileTest extends TestCase
- {
- public function test_game_types_map_to_the_expected_flow_rates(): void
- {
- $profile = new AgentFlowCommissionProfile([
- 'live_rate' => '1', 'slot_rate' => '2', 'lottery_rate' => '3', 'sport_rate' => '4',
- 'esports_rate' => '5', 'fishing_rate' => '6', 'chess_rate' => '7',
- ]);
- $this->assertSame('1.0000', $profile->rateForGameType(1));
- $this->assertSame('2.0000', $profile->rateForGameType(2));
- $this->assertSame('3.0000', $profile->rateForGameType(3));
- $this->assertSame('4.0000', $profile->rateForGameType(4));
- $this->assertSame('5.0000', $profile->rateForGameType(5));
- $this->assertSame('6.0000', $profile->rateForGameType(6));
- $this->assertSame('7.0000', $profile->rateForGameType(7));
- $this->assertSame('0.0000', $profile->rateForGameType(99));
- }
- public function test_official_and_owned_profile_flags(): void
- {
- $official = new AgentFlowCommissionProfile(['name' => '官方']);
- $this->assertTrue($official->isOfficial());
- $this->assertFalse($official->isOwnedBy(5));
- $owned = new AgentFlowCommissionProfile(['name' => '自建']);
- $owned->owner_agent_id = 5;
- $this->assertFalse($owned->isOfficial());
- $this->assertTrue($owned->isOwnedBy(5));
- $this->assertFalse($owned->isOwnedBy(6));
- $this->assertFalse($owned->isOwnedBy(null));
- }
- public function test_historical_assignment_uses_its_flow_snapshot(): void
- {
- $assignment = new AgentFlowCommissionAssignment([
- 'live_rate' => '11', 'slot_rate' => '12', 'lottery_rate' => '13', 'sport_rate' => '14',
- 'esports_rate' => '15', 'fishing_rate' => '16', 'chess_rate' => '17',
- ]);
- $this->assertSame('11.0000', $assignment->rateForGameType(1));
- $this->assertSame('14.0000', $assignment->rateForGameType(4));
- $this->assertSame('17.0000', $assignment->rateForGameType(7));
- $this->assertSame('0.0000', $assignment->rateForGameType(99));
- }
- }
|