ModernUO/Projects/UOContent.Tests/Tests/Commands/Objects/ObjectIntrospectionPropertiesTests.cs
Kamron Batman 685fbc146e
feat(objects): ExtractProperties — [CommandProperty] props with enum expansion
Add ObjectIntrospection.ExtractProperties(Type) to extract public instance
properties carrying [CommandProperty] attribute, including inherited ones.
Properties include type via ObjectNaming.FriendlyTypeName, read/write access
levels, readOnly flag, and enum values expanded via Enum.GetNames.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-19 12:38:03 -07:00

23 lines
672 B
C#

using System.Linq;
using Server.Commands;
using Server.Items;
using Xunit;
namespace UOContent.Tests.Commands.Objects;
[Collection("Sequential UOContent Tests")]
public class ObjectIntrospectionPropertiesTests
{
[Fact]
public void ExtractProperties_includes_inherited_item_command_properties()
{
var props = ObjectIntrospection.ExtractProperties(typeof(Runebook));
var hue = Assert.Single(props, p => p.Name == "Hue");
Assert.Equal("int", hue.Type);
var lootType = Assert.Single(props, p => p.Name == "LootType");
Assert.NotNull(lootType.EnumValues);
Assert.Contains("Blessed", lootType.EnumValues);
}
}