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)); } }