using GeometryTD.Definition; using GeometryTD.UI; using NUnit.Framework; namespace GeometryTD.Tests.EditMode { public sealed class RepoParticipantAssignDialogUtilityTests { [Test] public void BuildDialog_Returns_InvalidTower_Message_For_Broken_Component() { DialogFormRawData rawData = RepoParticipantAssignDialogUtility.BuildDialog( new ParticipantTowerAssignResult { TowerInstanceId = 90001, FailureReason = ParticipantTowerAssignFailureReason.InvalidTower, ValidationFailureReason = CombatParticipantTowerValidationFailureReason.BrokenMuzzleComponent }, 4); Assert.That(rawData.Title, Is.EqualTo("无法加入参战区")); Assert.That(rawData.Message, Is.EqualTo("塔 #90001 枪口组件耐久为 0,无法参战。")); Assert.That(rawData.ConfirmText, Is.EqualTo("知道了")); } [Test] public void BuildDialog_Returns_InvalidTower_Message_For_Missing_Component() { DialogFormRawData rawData = RepoParticipantAssignDialogUtility.BuildDialog( new ParticipantTowerAssignResult { TowerInstanceId = 90002, FailureReason = ParticipantTowerAssignFailureReason.InvalidTower, ValidationFailureReason = CombatParticipantTowerValidationFailureReason.MissingBaseComponent }, 4); Assert.That(rawData.Message, Is.EqualTo("塔 #90002 缺少底座组件。")); } [Test] public void BuildDialog_Returns_ParticipantAreaFull_Message() { DialogFormRawData rawData = RepoParticipantAssignDialogUtility.BuildDialog( new ParticipantTowerAssignResult { TowerInstanceId = 90003, FailureReason = ParticipantTowerAssignFailureReason.ParticipantAreaFull }, 4); Assert.That(rawData.Message, Is.EqualTo("参战区已满,最多只能放入 4 座塔。")); } [Test] public void BuildDialog_Returns_AlreadyAssigned_Message() { DialogFormRawData rawData = RepoParticipantAssignDialogUtility.BuildDialog( new ParticipantTowerAssignResult { TowerInstanceId = 90004, FailureReason = ParticipantTowerAssignFailureReason.AlreadyAssigned }, 4); Assert.That(rawData.Message, Is.EqualTo("塔 #90004 已在参战区中。")); } } }