| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace Tests\Unit\UrsPromotion;
- use Tests\TestCase;
- use App\Module\UrsPromotion\Services\UrsReferralService;
- use App\Module\UrsPromotion\Services\UrsActiveUserService;
- use App\Module\UrsPromotion\Enums\UrsPromotionRelationLevel;
- /**
- * URS团队统计测试
- *
- * 测试20代团队统计功能是否正常工作
- */
- class UrsTeamStatsTest extends TestCase
- {
- /**
- * 测试团队统计深度配置
- */
- public function testTeamStatsDepthConfiguration()
- {
- // 测试配置常量是否正确
- $this->assertEquals(20, UrsPromotionRelationLevel::getTeamStatsDepth());
- $this->assertEquals(20, UrsPromotionRelationLevel::getMaxLevel());
- }
- /**
- * 测试getTeamMembers方法的默认参数
- */
- public function testGetTeamMembersDefaultParameters()
- {
- // 创建一个测试用户ID(这里使用一个不存在的ID进行测试)
- $testUserId = 999999;
-
- // 测试默认参数是否使用20代
- $teamMembers = UrsReferralService::getTeamMembers($testUserId);
-
- // 由于是测试环境,可能没有实际数据,但方法应该能正常执行
- $this->assertIsArray($teamMembers);
- }
- /**
- * 测试活跃团队成员统计
- */
- public function testGetActiveTeamMembers()
- {
- // 创建一个测试用户ID
- $testUserId = 999999;
-
- // 测试活跃团队成员统计
- $activeStats = UrsActiveUserService::getActiveTeamMembers($testUserId);
-
- // 验证返回结构
- $this->assertIsArray($activeStats);
- $this->assertArrayHasKey('active_direct_count', $activeStats);
- $this->assertArrayHasKey('active_total_count', $activeStats);
- $this->assertArrayHasKey('active_members', $activeStats);
- }
- /**
- * 测试层级名称生成
- */
- public function testLevelNameGeneration()
- {
- // 测试直推
- $this->assertEquals('直推', UrsPromotionRelationLevel::getLevelNameByDepth(1));
-
- // 测试间推
- $this->assertEquals('2级间推', UrsPromotionRelationLevel::getLevelNameByDepth(2));
- $this->assertEquals('5级间推', UrsPromotionRelationLevel::getLevelNameByDepth(5));
- $this->assertEquals('20级间推', UrsPromotionRelationLevel::getLevelNameByDepth(20));
-
- // 测试超级间推
- $this->assertEquals('超级间推', UrsPromotionRelationLevel::getLevelNameByDepth(21));
- }
- /**
- * 测试层级有效性检查
- */
- public function testLevelValidation()
- {
- // 测试有效层级
- $this->assertTrue(UrsPromotionRelationLevel::isValidLevel(1));
- $this->assertTrue(UrsPromotionRelationLevel::isValidLevel(10));
- $this->assertTrue(UrsPromotionRelationLevel::isValidLevel(20));
-
- // 测试无效层级
- $this->assertFalse(UrsPromotionRelationLevel::isValidLevel(0));
- $this->assertFalse(UrsPromotionRelationLevel::isValidLevel(21));
- $this->assertFalse(UrsPromotionRelationLevel::isValidLevel(-1));
- }
- }
|