basic tests for a wider variety of files
Some checks failed
Create tag and build when new code gets to main / BumpTag (push) Successful in 20s
Create tag and build when new code gets to main / Test (push) Failing after 7m29s
Create tag and build when new code gets to main / Export (push) Successful in 8m18s

This commit is contained in:
2026-02-20 16:58:17 +01:00
parent 4474ba22fa
commit 9207295a99
28 changed files with 545 additions and 140 deletions

View File

@@ -0,0 +1,59 @@
using Godot;
using GdUnit4;
using static GdUnit4.Assertions;
using Movementtests.interfaces;
using Movementtests.systems.damage;
namespace Movementtests.tests;
[TestSuite, RequireGodotRuntime]
public class DamageComponentUnitTest
{
[TestCase]
public void DamageModifier_Applies_WhenTypeMatches()
{
var modifier = new RDamageModifier(EDamageTypes.Normal, 2.0f);
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
var result = modifier.TakeDamage(input);
AssertFloat(result.Damage.DamageDealt).IsEqual(20.0f);
}
[TestCase]
public void DamageModifier_Ignores_WhenTypeDifferent()
{
var modifier = new RDamageModifier(EDamageTypes.Fire, 3.0f);
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
var result = modifier.TakeDamage(input);
AssertFloat(result.Damage.DamageDealt).IsEqual(0.0f);
}
[TestCase]
public void CDamageable_Sums_All_Modifiers()
{
var mod1 = new RDamageModifier(EDamageTypes.Normal, 1.0f);
var mod2 = new RDamageModifier(EDamageTypes.Normal, 0.5f);
var cDamageable = new CDamageable();
cDamageable.DamageModifiers = new[] { mod1, mod2 };
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
var result = cDamageable.TakeDamage(input);
// 10*1.0 + 10*0.5 = 15
AssertFloat(result.Damage.DamageDealt).IsEqual(15.0f);
}
[TestCase]
public void CDamageable_ComputeDamage_DoesNotEmit()
{
var mod = new RDamageModifier(EDamageTypes.Normal, 2.0f);
var cDamageable = new CDamageable();
cDamageable.DamageModifiers = new[] { mod };
var input = new DamageRecord(Vector3.Zero, new RDamage(5.0f, EDamageTypes.Normal));
var result = cDamageable.ComputeDamage(input);
AssertFloat(result.Damage.DamageDealt).IsEqual(10.0f);
}
}