using AcDream.Launcher.Core.Profiles; namespace AcDream.Launcher.Core.Tests.Profiles; public sealed class CharacterIdFormatTests { [Fact] public void ToHexStringFormatsEightDigitUppercaseWithPrefix() { Assert.Equal("0x5000000A", CharacterIdFormat.ToHexString(0x5000000Au)); Assert.Equal("0x00000001", CharacterIdFormat.ToHexString(1u)); } [Theory] [InlineData("0x5000000A", 0x5000000Au)] [InlineData("0x5000000a", 0x5000000Au)] [InlineData("5000000A", 0x5000000Au)] public void TryParseAcceptsWithAndWithoutPrefixAndCase(string text, uint expected) { Assert.True(CharacterIdFormat.TryParse(text, out uint id)); Assert.Equal(expected, id); } [Theory] [InlineData(null)] [InlineData("")] [InlineData(" ")] [InlineData("not-hex")] public void TryParseRejectsNullEmptyOrNonHex(string? text) { Assert.False(CharacterIdFormat.TryParse(text, out uint id)); Assert.Equal(0u, id); } [Fact] public void RoundTripsThroughToHexStringAndTryParse() { const uint original = 0x5000000Au; string text = CharacterIdFormat.ToHexString(original); Assert.True(CharacterIdFormat.TryParse(text, out uint parsed)); Assert.Equal(original, parsed); } }