geometry-tower-defense/Assets/Tests/EditMode/InventoryRarityRuleServiceT...

61 lines
2.4 KiB
C#

using GeometryTD.CustomUtility;
using GeometryTD.Definition;
using NUnit.Framework;
namespace GeometryTD.Tests.EditMode
{
public sealed class InventoryRarityRuleServiceTests
{
[TestCase(RarityType.None, RarityType.White)]
[TestCase(RarityType.White, RarityType.White)]
[TestCase(RarityType.Green, RarityType.Green)]
[TestCase(RarityType.Red, RarityType.Red)]
[TestCase((RarityType)(-1), RarityType.White)]
[TestCase((RarityType)99, RarityType.White)]
public void NormalizeComponentRarity_Returns_Expected_Value(
RarityType input,
RarityType expected)
{
RarityType result = InventoryRarityRuleService.NormalizeComponentRarity(input);
Assert.That(result, Is.EqualTo(expected));
}
[TestCase(RarityType.White, RarityType.Green, RarityType.Green, RarityType.Green)]
[TestCase(RarityType.Green, RarityType.Blue, RarityType.Purple, RarityType.Blue)]
[TestCase(RarityType.Red, RarityType.White, RarityType.White, RarityType.Green)]
[TestCase(RarityType.None, RarityType.None, RarityType.None, RarityType.White)]
[TestCase((RarityType)99, RarityType.Red, RarityType.Red, RarityType.Purple)]
public void ResolveTowerRarity_Returns_Average_Rounded_Result(
RarityType muzzleRarity,
RarityType bearingRarity,
RarityType baseRarity,
RarityType expected)
{
RarityType result = InventoryRarityRuleService.ResolveTowerRarity(
muzzleRarity,
bearingRarity,
baseRarity);
Assert.That(result, Is.EqualTo(expected));
}
[Test]
public void CreateSampleInventory_Uses_Same_Tower_Rarity_Rule_As_Service()
{
BackpackInventoryData inventory = InventorySeedUtility.CreateSampleInventory();
TowerItemData tower = inventory.Towers[0];
MuzzleCompItemData muzzle = inventory.MuzzleComponents[0];
BearingCompItemData bearing = inventory.BearingComponents[0];
BaseCompItemData baseComp = inventory.BaseComponents[0];
RarityType expected = InventoryRarityRuleService.ResolveTowerRarity(
muzzle.Rarity,
bearing.Rarity,
baseComp.Rarity);
Assert.That(tower.Rarity, Is.EqualTo(expected));
}
}
}