trying to fix CI
This commit is contained in:
@@ -55,10 +55,9 @@ jobs:
|
|||||||
dotnet-version: 'net9.0'
|
dotnet-version: 'net9.0'
|
||||||
paths: |
|
paths: |
|
||||||
res://tests/
|
res://tests/
|
||||||
timeout: 1
|
|
||||||
publish-report: false
|
publish-report: false
|
||||||
upload-report: false
|
upload-report: false
|
||||||
arguments: "--verbose --headless --import"
|
arguments: "--verbose --headless"
|
||||||
|
|
||||||
- name: Upload test report
|
- name: Upload test report
|
||||||
uses: actions/upload-artifact@v3-node20
|
uses: actions/upload-artifact@v3-node20
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANode_002Ecs_002Fl_003AC_0021_003FUsers_003FMinimata_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fdf73a4db74df89d59655c5fb6326406f47fbfa9af1fa81518fe0a07c49d34133_003FNode_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANode_002Ecs_002Fl_003AC_0021_003FUsers_003FMinimata_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fdf73a4db74df89d59655c5fb6326406f47fbfa9af1fa81518fe0a07c49d34133_003FNode_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASceneTree_002Ecs_002Fl_003AC_0021_003FUsers_003FMinimata_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F8d6960554e939a669841b1ece03d27df4ab42f92bb80be3767eaec8cdaccf84b_003FSceneTree_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASceneTree_002Ecs_002Fl_003AC_0021_003FUsers_003FMinimata_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F8d6960554e939a669841b1ece03d27df4ab42f92bb80be3767eaec8cdaccf84b_003FSceneTree_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
|
||||||
|
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=dd9a7ac6_002Dbb9b_002D4001_002Db145_002D15e6509b7e78/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=dd9a7ac6_002Dbb9b_002D4001_002Db145_002D15e6509b7e78/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
<Solution />
|
<Solution />
|
||||||
</SessionState></s:String>
|
</SessionState></s:String>
|
||||||
|
|||||||
@@ -10,50 +10,92 @@ namespace Movementtests.tests;
|
|||||||
public class DamageComponentUnitTest
|
public class DamageComponentUnitTest
|
||||||
{
|
{
|
||||||
[TestCase]
|
[TestCase]
|
||||||
public void DamageModifier_Applies_WhenTypeMatches()
|
public void DamageModifierAppliesWhenTypeMatches()
|
||||||
{
|
{
|
||||||
|
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
|
||||||
var modifier = new RDamageModifier(EDamageTypes.Normal, 2.0f);
|
var modifier = new RDamageModifier(EDamageTypes.Normal, 2.0f);
|
||||||
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
|
var signalTriggered = false;
|
||||||
|
modifier.DamageTaken += (_, _) => signalTriggered = true;
|
||||||
|
|
||||||
var result = modifier.TakeDamage(input);
|
var result = modifier.TakeDamage(input);
|
||||||
|
|
||||||
AssertFloat(result.Damage.DamageDealt).IsEqual(20.0f);
|
AssertFloat(result.Damage.DamageDealt).IsEqual(20.0f);
|
||||||
|
AssertBool(signalTriggered).IsTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase]
|
[TestCase]
|
||||||
public void DamageModifier_Ignores_WhenTypeDifferent()
|
public void DamageModifierIgnoresWhenTypeDifferent()
|
||||||
{
|
{
|
||||||
var modifier = new RDamageModifier(EDamageTypes.Fire, 3.0f);
|
|
||||||
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
|
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
|
||||||
|
var modifier = new RDamageModifier(EDamageTypes.Fire, 3.0f);
|
||||||
|
var signalTriggered = false;
|
||||||
|
modifier.DamageTaken += (_, _) => signalTriggered = true;
|
||||||
|
|
||||||
var result = modifier.TakeDamage(input);
|
var result = modifier.TakeDamage(input);
|
||||||
|
|
||||||
AssertFloat(result.Damage.DamageDealt).IsEqual(0.0f);
|
AssertFloat(result.Damage.DamageDealt).IsEqual(0.0f);
|
||||||
|
AssertBool(signalTriggered).IsFalse(); // No damage actually taken
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase]
|
[TestCase]
|
||||||
public void CDamageable_Sums_All_Modifiers()
|
public void DamageableSumsAllModifiers()
|
||||||
|
{
|
||||||
|
var mod1 = new RDamageModifier(EDamageTypes.Normal, 1.0f);
|
||||||
|
var mod2 = new RDamageModifier(EDamageTypes.Normal, 0.5f);
|
||||||
|
|
||||||
|
var damageable = new CDamageable();
|
||||||
|
damageable.DamageModifiers = new[] { mod1, mod2 };
|
||||||
|
var signalTriggered = false;
|
||||||
|
damageable.DamageTaken += (_, _) => signalTriggered = true;
|
||||||
|
|
||||||
|
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
|
||||||
|
var result = damageable.TakeDamage(input);
|
||||||
|
|
||||||
|
AssertFloat(result.Damage.DamageDealt).IsEqual(15.0f);
|
||||||
|
AssertBool(signalTriggered).IsTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestCase]
|
||||||
|
public void ComputeDamageModifierAppliesWhenTypeMatches()
|
||||||
|
{
|
||||||
|
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
|
||||||
|
var modifier = new RDamageModifier(EDamageTypes.Normal, 2.0f);
|
||||||
|
var signalTriggered = false;
|
||||||
|
modifier.DamageTaken += (_, _) => signalTriggered = true;
|
||||||
|
|
||||||
|
var result = modifier.ComputeDamage(input);
|
||||||
|
|
||||||
|
AssertFloat(result.Damage.DamageDealt).IsEqual(20.0f);
|
||||||
|
AssertBool(signalTriggered).IsFalse();
|
||||||
|
}
|
||||||
|
[TestCase]
|
||||||
|
public void ComputeDamageModifierIgnoresWhenTypeDifferent()
|
||||||
|
{
|
||||||
|
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
|
||||||
|
var modifier = new RDamageModifier(EDamageTypes.Fire, 3.0f);
|
||||||
|
var signalTriggered = false;
|
||||||
|
modifier.DamageTaken += (_, _) => signalTriggered = true;
|
||||||
|
|
||||||
|
var result = modifier.ComputeDamage(input);
|
||||||
|
|
||||||
|
AssertFloat(result.Damage.DamageDealt).IsEqual(0.0f);
|
||||||
|
AssertBool(signalTriggered).IsFalse();
|
||||||
|
}
|
||||||
|
[TestCase]
|
||||||
|
public void ComputeDamageableSumsAllModifiers()
|
||||||
{
|
{
|
||||||
var mod1 = new RDamageModifier(EDamageTypes.Normal, 1.0f);
|
var mod1 = new RDamageModifier(EDamageTypes.Normal, 1.0f);
|
||||||
var mod2 = new RDamageModifier(EDamageTypes.Normal, 0.5f);
|
var mod2 = new RDamageModifier(EDamageTypes.Normal, 0.5f);
|
||||||
|
|
||||||
var cDamageable = new CDamageable();
|
var cDamageable = new CDamageable();
|
||||||
cDamageable.DamageModifiers = new[] { mod1, mod2 };
|
cDamageable.DamageModifiers = new[] { mod1, mod2 };
|
||||||
|
var signalTriggered = false;
|
||||||
|
cDamageable.DamageTaken += (_, _) => signalTriggered = true;
|
||||||
|
|
||||||
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
|
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);
|
var result = cDamageable.ComputeDamage(input);
|
||||||
AssertFloat(result.Damage.DamageDealt).IsEqual(10.0f);
|
|
||||||
|
AssertFloat(result.Damage.DamageDealt).IsEqual(15.0f);
|
||||||
|
AssertBool(signalTriggered).IsFalse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ public class HealthComponentUnitTest
|
|||||||
{
|
{
|
||||||
var cHealth = new CHealth();
|
var cHealth = new CHealth();
|
||||||
cHealth.RHealth = new RHealth(150.0f);
|
cHealth.RHealth = new RHealth(150.0f);
|
||||||
// Simulate Godot ready
|
|
||||||
cHealth._Ready();
|
cHealth._Ready();
|
||||||
AssertFloat(cHealth.CurrentHealth).IsEqual(150.0f);
|
AssertFloat(cHealth.CurrentHealth).IsEqual(150.0f);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using Godot;
|
|||||||
using GdUnit4;
|
using GdUnit4;
|
||||||
using static GdUnit4.Assertions;
|
using static GdUnit4.Assertions;
|
||||||
using Movementtests.interfaces;
|
using Movementtests.interfaces;
|
||||||
|
using Movementtests.systems.damage;
|
||||||
|
|
||||||
namespace Movementtests.tests;
|
namespace Movementtests.tests;
|
||||||
|
|
||||||
@@ -9,13 +10,13 @@ namespace Movementtests.tests;
|
|||||||
public class KnockbackComponentUnitTest
|
public class KnockbackComponentUnitTest
|
||||||
{
|
{
|
||||||
[TestCase]
|
[TestCase]
|
||||||
public void RegisterAndComputeKnockback_Works_And_Resets()
|
public void RegisterAndComputeKnockback()
|
||||||
{
|
{
|
||||||
var cKnock = new CKnockback();
|
var cKnock = new CKnockback();
|
||||||
cKnock.RKnockback = new RKnockback(2.0f);
|
cKnock.RKnockback = new RKnockback(2.0f);
|
||||||
cKnock.GlobalPosition = Vector3.Zero;
|
cKnock.GlobalPosition = Vector3.Zero;
|
||||||
|
|
||||||
var damage = new DamageRecord(new Vector3(10, 0, 0), new RDamage(0, Movementtests.systems.damage.EDamageTypes.Normal));
|
var damage = new DamageRecord(new Vector3(10, 0, 0), new RDamage(0, EDamageTypes.Normal));
|
||||||
var record = new KnockbackRecord(damage, 1.5f);
|
var record = new KnockbackRecord(damage, 1.5f);
|
||||||
|
|
||||||
cKnock.RegisterKnockback(record);
|
cKnock.RegisterKnockback(record);
|
||||||
|
|||||||
@@ -10,12 +10,12 @@ namespace Movementtests.tests;
|
|||||||
public class MovementSystemUnitTest
|
public class MovementSystemUnitTest
|
||||||
{
|
{
|
||||||
[TestCase]
|
[TestCase]
|
||||||
public void GroundedMovement_Accelerates_And_Applies_Gravity()
|
public void GroundedMovementAcceleratesAndAppliesGravity()
|
||||||
{
|
{
|
||||||
var move = new CGroundedMovement();
|
var move = new CGroundedMovement();
|
||||||
move.RMovement = new RMovement(speed: 10.0f, acceleration: 1.0f, gravityModifier: 0.5f, targetHeight: 0.0f);
|
move.RMovement = new RMovement(speed: 10.0f, acceleration: 1.0f, gravityModifier: 0.5f, targetHeight: 0.0f);
|
||||||
move.WallInFrontRayCast = new RayCast3D();
|
move.WallInFrontRayCast = new RayCast3D();
|
||||||
move.GlobalPosition = Vector3.Zero;
|
//move.GlobalPosition = Vector3.Zero;
|
||||||
|
|
||||||
var inputs = new MovementInputs(
|
var inputs = new MovementInputs(
|
||||||
Velocity: Vector3.Zero,
|
Velocity: Vector3.Zero,
|
||||||
@@ -27,6 +27,6 @@ public class MovementSystemUnitTest
|
|||||||
|
|
||||||
var v = move.ComputeVelocity(inputs);
|
var v = move.ComputeVelocity(inputs);
|
||||||
|
|
||||||
AssertVector(v).IsEqualApprox(new Vector3(10, -4.9f, 0), new Vector3(0.0001f, 0.0001f, 0.0001f));
|
AssertVector(v).IsEqualApprox(new Vector3(10, -4.9f, 0), new Vector3(0.001f, 0.001f, 0.001f));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ namespace Movementtests.tests;
|
|||||||
public class EnemyUnitTest
|
public class EnemyUnitTest
|
||||||
{
|
{
|
||||||
[TestCase]
|
[TestCase]
|
||||||
public void ComputeDamage_NoComponent_ReturnsZero()
|
public void ComputeDamageNoComponent()
|
||||||
{
|
{
|
||||||
var enemy = new Enemy();
|
var enemy = new Enemy();
|
||||||
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
|
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
|
||||||
@@ -20,55 +20,7 @@ public class EnemyUnitTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
[TestCase]
|
[TestCase]
|
||||||
public void TakeDamage_WithCDamageable_AggregatesDamage()
|
public void Unstun()
|
||||||
{
|
|
||||||
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();
|
var enemy = new Enemy();
|
||||||
enemy.IsStunned = true;
|
enemy.IsStunned = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user