From 49f6a6304cff7ccac4bc0f6e1a79f4730fcf0467 Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Sun, 20 Dec 2020 02:41:02 +0100 Subject: [PATCH] Add total damage test --- .../{Damageable => Damage}/DamageTest.cs | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) rename Content.IntegrationTests/Tests/{Damageable => Damage}/DamageTest.cs (77%) diff --git a/Content.IntegrationTests/Tests/Damageable/DamageTest.cs b/Content.IntegrationTests/Tests/Damage/DamageTest.cs similarity index 77% rename from Content.IntegrationTests/Tests/Damageable/DamageTest.cs rename to Content.IntegrationTests/Tests/Damage/DamageTest.cs index 3cc065aac4..caeea3865a 100644 --- a/Content.IntegrationTests/Tests/Damageable/DamageTest.cs +++ b/Content.IntegrationTests/Tests/Damage/DamageTest.cs @@ -147,5 +147,53 @@ namespace Content.IntegrationTests.Tests.Damageable } }); } + + [Test] + public async Task TotalDamageTest() + { + var server = StartServerDummyTicker(new ServerContentIntegrationOption + { + ExtraPrototypes = Prototypes + }); + + await server.WaitIdleAsync(); + + var sEntityManager = server.ResolveDependency(); + var sMapManager = server.ResolveDependency(); + + IEntity sDamageableEntity; + IDamageableComponent sDamageableComponent = null; + + await server.WaitPost(() => + { + var mapId = sMapManager.NextMapId(); + var coordinates = new MapCoordinates(0, 0, mapId); + sMapManager.CreateMap(mapId); + + sDamageableEntity = sEntityManager.SpawnEntity(DamageableEntityId, coordinates); + sDamageableComponent = sDamageableEntity.GetComponent(); + }); + + await server.WaitAssertion(() => + { + var damageType = DamageClass.Brute; + var damage = 10; + + Assert.True(sDamageableComponent.ChangeDamage(DamageClass.Brute, damage, true)); + Assert.That(sDamageableComponent.TotalDamage, Is.EqualTo(10)); + + var totalTypeDamage = 0; + + foreach (var type in damageType.ToTypes()) + { + Assert.True(sDamageableComponent.TryGetDamage(type, out var typeDamage)); + Assert.That(typeDamage, Is.LessThanOrEqualTo(damage)); + + totalTypeDamage += typeDamage; + } + + Assert.That(totalTypeDamage, Is.EqualTo(damage)); + }); + } } }