| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- namespace Tests\Unit\AppGame;
- use Tests\TestCase;
- use App\Module\Game\Services\SkinService;
- use Uraus\Kku\Response\UserInfo;
- /**
- * 用户数据Handler测试
- *
- * 测试UserInfo中皮肤相关字段的正确填充
- */
- class UserDataHandlerTest extends TestCase
- {
- /**
- * 测试皮肤服务的基本功能
- */
- public function testSkinServiceBasicFunctions()
- {
- // 测试获取所有可用皮肤
- $allSkins = SkinService::getAllSkins();
- $this->assertIsArray($allSkins);
- $this->assertNotEmpty($allSkins);
- $this->assertArrayHasKey(1, $allSkins);
- $this->assertEquals('默认皮肤', $allSkins[1]);
- }
- /**
- * 测试UserInfo protobuf对象的皮肤字段设置
- */
- public function testUserInfoProtobufSkinFields()
- {
- $userInfo = new UserInfo();
-
- // 测试设置当前皮肤ID
- $userInfo->setSkinId(2);
- $this->assertEquals(2, $userInfo->getSkinId());
-
- // 测试设置拥有的皮肤列表
- $ownedSkins = [1, 2, 3, 4];
- $userInfo->setSkinIds($ownedSkins);
-
- $retrievedSkins = $userInfo->getSkinIds();
- $this->assertNotNull($retrievedSkins);
-
- // 将RepeatedField转换为数组进行比较
- $skinArray = [];
- for ($i = 0; $i < $retrievedSkins->count(); $i++) {
- $skinArray[] = $retrievedSkins->offsetGet($i);
- }
-
- $this->assertEquals($ownedSkins, $skinArray);
- }
- /**
- * 测试皮肤验证功能
- */
- public function testSkinValidation()
- {
- // 测试有效的皮肤ID
- $this->assertTrue(SkinService::isValidSkinId(1));
- $this->assertTrue(SkinService::isValidSkinId(2));
- $this->assertTrue(SkinService::isValidSkinId(3));
- $this->assertTrue(SkinService::isValidSkinId(4));
-
- // 测试无效的皮肤ID
- $this->assertFalse(SkinService::isValidSkinId(0));
- $this->assertFalse(SkinService::isValidSkinId(5));
- $this->assertFalse(SkinService::isValidSkinId(-1));
-
- // 测试皮肤名称获取
- $this->assertEquals('默认皮肤', SkinService::getSkinName(1));
- $this->assertEquals('春日皮肤', SkinService::getSkinName(2));
- $this->assertEquals('未知皮肤', SkinService::getSkinName(999));
- }
- }
|