feat(inventory): add GrantSource enum + message lookup

Introduces GrantSource (17 values, DB-persisted) and GrantSourceMessages.For()
for the item-acquire-history feature. Values 1/2 mirror prod captures;
coverage test verifies every enum value has a non-empty message.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-06-09 14:08:01 -04:00
parent 998402ebc3
commit 9f65326449
2 changed files with 87 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
using SVSim.Database.Services.Inventory;
namespace SVSim.UnitTests.Services.Inventory;
public class InventoryHistoryTests
{
[Test]
public void GrantSourceMessages_returns_known_messages_for_seeded_sources()
{
Assert.That(GrantSourceMessages.For(GrantSource.DailyBonus), Is.EqualTo("Daily Bonus"));
Assert.That(GrantSourceMessages.For(GrantSource.PackOpen), Is.EqualTo("From buying card packs"));
Assert.That(GrantSourceMessages.For(GrantSource.CardCosmeticCascade), Is.EqualTo("Card cosmetic"));
Assert.That(GrantSourceMessages.For(GrantSource.Unknown), Is.EqualTo("Unknown"));
}
[Test]
public void GrantSourceMessages_covers_every_enum_value()
{
foreach (GrantSource source in Enum.GetValues<GrantSource>())
{
var message = GrantSourceMessages.For(source);
Assert.That(message, Is.Not.Null.And.Not.Empty,
$"GrantSource.{source} has no message defined.");
}
}
}