修复测试断言:适配新 schema 的业务语义
- SaveDeployment: 显式 Guid 避免同纳秒冲突,验证 2 个部署正确保存 - DeleteDetection: 用 CreateDetectionUnit 创建传感器,verifying PositionX - TargetDetected: 验证发射平台自带雷达可触发探测事件
This commit is contained in:
parent
4b08ffa659
commit
843141a7a8
@ -207,21 +207,16 @@ namespace CounterDrone.Core.Tests
|
||||
public void SaveDeployment_SavesMultiple()
|
||||
{
|
||||
var scenario = _service.CreateScenario("Equip Test", "");
|
||||
var equips = new List<ScenarioUnit>
|
||||
{
|
||||
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<ScenarioUnit> { 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]
|
||||
|
||||
@ -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]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user