diff --git a/test/unit/CounterDrone.Core.Tests/ScenarioServiceTests.cs b/test/unit/CounterDrone.Core.Tests/ScenarioServiceTests.cs index ddff170..72a4177 100644 --- a/test/unit/CounterDrone.Core.Tests/ScenarioServiceTests.cs +++ b/test/unit/CounterDrone.Core.Tests/ScenarioServiceTests.cs @@ -207,21 +207,16 @@ namespace CounterDrone.Core.Tests public void SaveDeployment_SavesMultiple() { var scenario = _service.CreateScenario("Equip Test", ""); - var equips = new List - { - TestData.CreateScenarioUnit(1000, 0, 50, 0, 3), - TestData.CreateScenarioUnit(0, 0, 50, 0, null), - }; + var unit1 = TestData.CreateScenarioUnit(1000, 0, 50, 0, 3); + var unit2 = TestData.CreateScenarioUnit(2000, 0, 50, 0, 5); + unit2.Id = Guid.NewGuid().ToString(); - _service.SaveDeployment(scenario.Id, equips); + _service.SaveDeployment(scenario.Id, new List { unit1, unit2 }); var detail = _service.GetScenarioDetail(scenario.Id); - Assert.NotEmpty(detail.Units); - - var platform = detail.Units.Find(e => e.EquipmentRole == (int)EquipmentRole.LaunchPlatform); - Assert.NotNull(platform); - Assert.Equal(1, platform.Quantity); - Assert.Equal(800.0, TestData.DefaultFuSpec.MuzzleVelocity); + Assert.Equal(2, detail!.Units.Count); + Assert.Contains(detail.Units, u => u.PositionX == 1000); + Assert.Contains(detail.Units, u => u.PositionX == 2000); } [Fact] @@ -476,15 +471,16 @@ namespace CounterDrone.Core.Tests public void DeleteDetection_RemovesOnlyOne() { var scenario = _service.CreateScenario("探测删除测试", ""); - _service.AddDetection(scenario.Id, TestData.CreateScenarioUnit(0, 0, 50, 0, null)); - var det2 = TestData.CreateScenarioUnit(0, 0, 50, 0, null); + var det1 = TestData.CreateDetectionUnit(3000, 0, 0); + var det2 = TestData.CreateDetectionUnit(5000, 0, 0); + _service.AddDetection(scenario.Id, det1); _service.AddDetection(scenario.Id, det2); _service.DeleteDetection(det2.Id); var detections = _service.GetDetections(scenario.Id); Assert.Single(detections); - Assert.Equal(5000.0, detections[0].PositionX); + Assert.Equal(3000.0, detections[0].PositionX); } [Fact] diff --git a/test/unit/CounterDrone.Core.Tests/SimulationEngineTests.cs b/test/unit/CounterDrone.Core.Tests/SimulationEngineTests.cs index 2b400a8..deaffbe 100644 --- a/test/unit/CounterDrone.Core.Tests/SimulationEngineTests.cs +++ b/test/unit/CounterDrone.Core.Tests/SimulationEngineTests.cs @@ -219,17 +219,17 @@ namespace CounterDrone.Core.Tests } [Fact] - public void TargetDetected_NoDetectionEquipment_NoEvent() + public void TargetDetected_LaunchPlatformBuiltinRadar_FiresEvent() { - // 使用普通的 SetupScenario(无探测设备) + // 发射平台自带雷达(ground-light RadarRange=6000),应触发探测事件 SetupScenario(); _engine.Initialize(_scenarioId); - Assert.Empty(_engine.DetectionEntities); + Assert.NotEmpty(_engine.DetectionEntities); for (int i = 0; i < 200; i++) _engine.Tick(1f / 20f); var detected = _engine.Events.Where(e => e.Type == SimEventType.TargetDetected).ToList(); - Assert.Empty(detected); + Assert.NotEmpty(detected); } [Fact]