public void PickaxeMakesDestroyedWallFromDamagedWall(float damage) { // Arrange Mock <GameActor> actorMock = new Mock <GameActor>(); Mock <IAtlas> atlasMock = new Mock <IAtlas>(); GameActor pickaxedWall = null; atlasMock.Setup(x => x.ReplaceWith(It.IsAny <GameActorPosition>(), It.IsAny <GameActor>())). Callback((GameActorPosition original, GameActor replacement) => pickaxedWall = replacement); UsePickaxe pickaxe = new UsePickaxe(actorMock.Object) { Damage = damage }; float initialDamage = 0.5f; DamagedWall damagedWall = new DamagedWall(initialDamage, Vector2I.Zero); // Act damagedWall.ApplyGameAction(atlasMock.Object, pickaxe, new Vector2()); // Assert if (damage + initialDamage >= 1) { Assert.IsType(typeof(DestroyedWall), pickaxedWall); } else { Assert.Equal(null, pickaxedWall); } }
public void PickaxeMakesDamageWall0(float damage) { // Arrange Mock <GameActor> actorMock = new Mock <GameActor>(); UsePickaxe pickaxe = new UsePickaxe(actorMock.Object) { Damage = damage }; Mock <IAtlas> atlasMock = new Mock <IAtlas>(); GameActor pickaxedWall = null; atlasMock.Setup(x => x.ReplaceWith(It.IsAny <GameActorPosition>(), It.IsAny <GameActor>())). Callback((GameActorPosition original, GameActor replacement) => pickaxedWall = replacement); // Act m_wall.ApplyGameAction(atlasMock.Object, pickaxe, new Vector2()); // Assert if (damage >= 1) { Assert.IsType(typeof(DestroyedWall), pickaxedWall); } else if (damage > 0) { Assert.IsType(typeof(DamagedWall), pickaxedWall); DamagedWall damagedWall = (DamagedWall)pickaxedWall; Assert.True(damagedWall.Health >= 1.0f - damage); } else { Assert.Equal(null, pickaxedWall); } }