using BlueLaminate.Core.Tradeups; using Xunit; namespace BlueLaminate.Tests.Tradeups; public class WeaponRarityTests { [Theory] [InlineData("Consumer Grade", WeaponRarity.Consumer)] [InlineData("Industrial Grade", WeaponRarity.Industrial)] [InlineData("Mil-Spec Grade", WeaponRarity.MilSpec)] [InlineData("Restricted", WeaponRarity.Restricted)] [InlineData("Classified", WeaponRarity.Classified)] [InlineData("Covert", WeaponRarity.Covert)] public void Maps_each_weapon_tier_literal(string literal, WeaponRarity expected) { Assert.True(WeaponRarityExtensions.TryParse(literal, out var rarity)); Assert.Equal(expected, rarity); } [Theory] [InlineData("Contraband")] // The Howl [InlineData("Extraordinary")] // Gloves public void Reports_non_weapon_rarities_as_not_a_tier(string literal) { Assert.False(WeaponRarityExtensions.TryParse(literal, out _)); } [Fact] public void Throws_on_unknown_literal_so_a_catalogue_rename_is_loud() { Assert.Throws(() => WeaponRarityExtensions.TryParse("Mythical", out _)); } [Fact] public void Tiers_are_strictly_ordered() { Assert.True(WeaponRarity.Consumer < WeaponRarity.Industrial); Assert.True(WeaponRarity.MilSpec < WeaponRarity.Restricted); Assert.True(WeaponRarity.Classified < WeaponRarity.Covert); } }