55 lines
1.5 KiB
C#
55 lines
1.5 KiB
C#
using Chrono.Model;
|
|
|
|
namespace Tests;
|
|
|
|
public class CardDataTests
|
|
{
|
|
[Test]
|
|
public void StatEfficiency_CalculatesCorrectly()
|
|
{
|
|
var card = new CardData { Cost = 2, Attack = 2, Health = 3 };
|
|
Assert.That(card.StatEfficiency, Is.EqualTo(2.5f));
|
|
}
|
|
|
|
[Test]
|
|
public void StatEfficiency_ReturnsZero_WhenCostIsZero()
|
|
{
|
|
var card = new CardData { Cost = 0, Attack = 2, Health = 3 };
|
|
Assert.That(card.StatEfficiency, Is.EqualTo(0f));
|
|
}
|
|
|
|
[Test]
|
|
public void StatEfficiency_ReturnsZero_WhenAttackIsNull()
|
|
{
|
|
var card = new CardData { Cost = 2, Attack = null, Health = 3 };
|
|
Assert.That(card.StatEfficiency, Is.EqualTo(0f));
|
|
}
|
|
|
|
[Test]
|
|
public void IsAgent_ReturnsTrue_WhenCategoryIsAgent()
|
|
{
|
|
var card = new CardData { Category = "Agent" };
|
|
Assert.That(card.IsAgent, Is.True);
|
|
}
|
|
|
|
[Test]
|
|
public void IsSpell_ReturnsTrue_WhenCategoryIsSpell()
|
|
{
|
|
var card = new CardData { Category = "Spell" };
|
|
Assert.That(card.IsSpell, Is.True);
|
|
}
|
|
|
|
[Test]
|
|
public void ImagePath_UsesPlaceholder_WhenImageFileIsNull()
|
|
{
|
|
var card = new CardData { ImageFile = null };
|
|
Assert.That(card.ImagePath, Is.EqualTo("cards/placeholder.png"));
|
|
}
|
|
|
|
[Test]
|
|
public void StatEfficiency_RoundsToTwoDecimalPlaces()
|
|
{
|
|
var card = new CardData { Cost = 3, Attack = 1, Health = 1 }; // (1+1)/3 = 0.666...
|
|
Assert.That(card.StatEfficiency, Is.EqualTo(0.67f));
|
|
}
|
|
} |