Files
Operation-Blue-Laminate-v2/BlueLaminate/BlueLaminate.Tests/Tradeups/WeaponRarityTests.cs
2026-06-02 13:31:27 -05:00

43 lines
1.4 KiB
C#

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<ArgumentException>(() => 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);
}
}