geometry-tower-defense/Assets/Tests/EditMode/ContinueChallengeMultiplier...

78 lines
2.5 KiB
C#

using GeometryTD.Definition;
using GeometryTD.UI;
using NUnit.Framework;
namespace GeometryTD.Tests.EditMode
{
public sealed class ContinueChallengeMultiplierTests
{
[Test]
public void BuildRawData_Uses_OneX_Multiplier_For_First_Loop_And_Invalid_Input()
{
CombatInfoFormRawData firstLoop = CombatInfoFormUseCase.BuildRawData(
LevelThemeType.Plain,
levelId: 1,
currentPhaseIndex: 1,
totalPhaseCount: 4,
coin: 10,
baseHp: 20,
baseHpMax: 20,
canEnd: true);
CombatInfoFormRawData invalidInput = CombatInfoFormUseCase.BuildRawData(
LevelThemeType.Plain,
levelId: 1,
currentPhaseIndex: 0,
totalPhaseCount: 0,
coin: 10,
baseHp: 20,
baseHpMax: 20,
canEnd: false);
Assert.That(firstLoop.EnemyHpRateMultiplier, Is.EqualTo(1));
Assert.That(invalidInput.EnemyHpRateMultiplier, Is.EqualTo(1));
}
[Test]
public void BuildRawData_Doubles_EnemyHp_After_Each_Full_Loop()
{
CombatInfoFormRawData secondLoop = CombatInfoFormUseCase.BuildRawData(
LevelThemeType.Volcano,
levelId: 2,
currentPhaseIndex: 5,
totalPhaseCount: 4,
coin: 15,
baseHp: 18,
baseHpMax: 20,
canEnd: true);
CombatInfoFormRawData thirdLoop = CombatInfoFormUseCase.BuildRawData(
LevelThemeType.Mountain,
levelId: 3,
currentPhaseIndex: 9,
totalPhaseCount: 4,
coin: 20,
baseHp: 16,
baseHpMax: 20,
canEnd: true);
Assert.That(secondLoop.EnemyHpRateMultiplier, Is.EqualTo(2));
Assert.That(thirdLoop.EnemyHpRateMultiplier, Is.EqualTo(4));
}
[Test]
public void BuildRawData_Clamps_EnemyHp_Multiplier_At_IntMaxValue()
{
CombatInfoFormRawData rawData = CombatInfoFormUseCase.BuildRawData(
LevelThemeType.Plain,
levelId: 1,
currentPhaseIndex: 121,
totalPhaseCount: 4,
coin: 30,
baseHp: 10,
baseHpMax: 20,
canEnd: false);
Assert.That(rawData.EnemyHpRateMultiplier, Is.EqualTo(int.MaxValue));
}
}
}