basic tests for a wider variety of files
This commit is contained in:
78
tests/enemies/EnemyUnitTest.cs
Normal file
78
tests/enemies/EnemyUnitTest.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
using Godot;
|
||||
using GdUnit4;
|
||||
using static GdUnit4.Assertions;
|
||||
using Movementtests.interfaces;
|
||||
using Movementtests.systems.damage;
|
||||
|
||||
namespace Movementtests.tests;
|
||||
|
||||
[TestSuite, RequireGodotRuntime]
|
||||
public class EnemyUnitTest
|
||||
{
|
||||
[TestCase]
|
||||
public void ComputeDamage_NoComponent_ReturnsZero()
|
||||
{
|
||||
var enemy = new Enemy();
|
||||
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
|
||||
|
||||
var result = enemy.ComputeDamage(input);
|
||||
AssertFloat(result.Damage.DamageDealt).IsEqual(0.0f);
|
||||
}
|
||||
|
||||
[TestCase]
|
||||
public void TakeDamage_WithCDamageable_AggregatesDamage()
|
||||
{
|
||||
var enemy = new Enemy();
|
||||
var cDamage = new CDamageable();
|
||||
cDamage.DamageModifiers = new[]
|
||||
{
|
||||
new RDamageModifier(EDamageTypes.Normal, 1.0f),
|
||||
new RDamageModifier(EDamageTypes.Normal, 2.0f)
|
||||
};
|
||||
enemy.CDamageable = cDamage;
|
||||
|
||||
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
|
||||
var result = enemy.TakeDamage(input);
|
||||
AssertFloat(result.Damage.DamageDealt).IsEqual(30.0f);
|
||||
}
|
||||
|
||||
[TestCase]
|
||||
public void ReduceHealth_WithCHealth_Decreases()
|
||||
{
|
||||
var enemy = new Enemy();
|
||||
var health = new CHealth { RHealth = new RHealth(100.0f), CurrentHealth = 100.0f };
|
||||
enemy.CHealth = health;
|
||||
|
||||
var input = new DamageRecord(Vector3.Zero, new RDamage(25.0f, EDamageTypes.Normal));
|
||||
var record = enemy.ReduceHealth(enemy, input);
|
||||
|
||||
AssertFloat(health.CurrentHealth).IsEqual(75.0f);
|
||||
AssertFloat(record.CurrentHealth).IsEqual(75.0f);
|
||||
}
|
||||
|
||||
[TestCase]
|
||||
public void Knockback_Register_And_Compute()
|
||||
{
|
||||
var enemy = new Enemy();
|
||||
var cKnock = new CKnockback { RKnockback = new RKnockback(1.0f) };
|
||||
enemy.CKnockback = cKnock;
|
||||
enemy.GlobalPosition = Vector3.Zero;
|
||||
cKnock.GlobalPosition = Vector3.Zero;
|
||||
|
||||
var dmg = new DamageRecord(new Vector3(5, 0, 0), new RDamage(0, EDamageTypes.Normal));
|
||||
var krec = new KnockbackRecord(dmg, 2.0f);
|
||||
enemy.RegisterKnockback(krec);
|
||||
|
||||
var k = enemy.ComputeKnockback();
|
||||
AssertVector(k).IsEqual(new Vector3(-2, 0, 0));
|
||||
}
|
||||
|
||||
[TestCase]
|
||||
public void Unstun_ResetsFlag()
|
||||
{
|
||||
var enemy = new Enemy();
|
||||
enemy.IsStunned = true;
|
||||
enemy.Unstun();
|
||||
AssertBool(enemy.IsStunned).IsFalse();
|
||||
}
|
||||
}
|
||||
1
tests/enemies/EnemyUnitTest.cs.uid
Normal file
1
tests/enemies/EnemyUnitTest.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cojxgcs6xqqoq
|
||||
Reference in New Issue
Block a user