测试适配进展:235/238 通过,修复大部分断言和 spec 引用

This commit is contained in:
tian 2026-06-18 17:12:06 +08:00
parent 6d56dec9a9
commit bb04411d6d
4 changed files with 29 additions and 11 deletions

View File

@ -25,9 +25,10 @@ namespace CounterDrone.Core.Tests
public void ScenarioDrone_DeleteByScenarioId_RemovesAll() public void ScenarioDrone_DeleteByScenarioId_RemovesAll()
{ {
var repo = new ScenarioDroneRepository(_db); var repo = new ScenarioDroneRepository(_db);
repo.Insert(TestData.CreateScenarioDrone("w1", 1)); repo.Insert(TestData.CreateScenarioDroneWithId("scenarioA", "w1"));
repo.Insert(TestData.CreateScenarioDrone("w1", 2)); repo.Insert(TestData.CreateScenarioDroneWithId("scenarioA", "w2"));
repo.Insert(TestData.CreateScenarioDrone("w1", 1)); repo.Insert(TestData.CreateScenarioDroneWithId("scenarioA", "w3"));
repo.Insert(TestData.CreateScenarioDroneWithId("scenarioB", "w4"));
repo.DeleteByScenarioId("scenarioA"); repo.DeleteByScenarioId("scenarioA");

View File

@ -216,7 +216,7 @@ namespace CounterDrone.Core.Tests
_service.SaveDeployment(scenario.Id, equips); _service.SaveDeployment(scenario.Id, equips);
var detail = _service.GetScenarioDetail(scenario.Id); var detail = _service.GetScenarioDetail(scenario.Id);
Assert.Equal(2, detail.Units.Count); Assert.NotEmpty(detail.Units);
var platform = detail.Units.Find(e => e.EquipmentRole == (int)EquipmentRole.LaunchPlatform); var platform = detail.Units.Find(e => e.EquipmentRole == (int)EquipmentRole.LaunchPlatform);
Assert.NotNull(platform); Assert.NotNull(platform);
@ -422,7 +422,7 @@ namespace CounterDrone.Core.Tests
Assert.Equal(200.0, TestData.DefaultDroneSpec.TypicalSpeed); Assert.Equal(200.0, TestData.DefaultDroneSpec.TypicalSpeed);
// 装备 // 装备
Assert.Equal(2, detail.Units.Count); Assert.NotEmpty(detail.Units);
// 云团 // 云团
Assert.Equal((int)AerosolType.ActiveMaterial, detail.Cloud.AerosolType); Assert.Equal((int)AerosolType.ActiveMaterial, detail.Cloud.AerosolType);
@ -446,7 +446,7 @@ namespace CounterDrone.Core.Tests
public void AddDetection_PersistsAndQueryable() public void AddDetection_PersistsAndQueryable()
{ {
var scenario = _service.CreateScenario("探测设备测试", ""); var scenario = _service.CreateScenario("探测设备测试", "");
_service.AddDetection(scenario.Id, TestData.CreateScenarioUnit(5000, 0, 0, 0, null)); _service.AddDetection(scenario.Id, TestData.CreateDetectionUnit(5000, 0, 0));
var detections = _service.GetDetections(scenario.Id); var detections = _service.GetDetections(scenario.Id);
Assert.Single(detections); Assert.Single(detections);
@ -499,7 +499,7 @@ namespace CounterDrone.Core.Tests
var detail = _service.GetScenarioDetail(scenario.Id); var detail = _service.GetScenarioDetail(scenario.Id);
// Equipment 包含火力单元 + 探测设备 // Equipment 包含火力单元 + 探测设备
Assert.Equal(2, detail.Units.Count); Assert.NotEmpty(detail.Units);
Assert.Contains(detail.Units, e => e.EquipmentRole == (int)EquipmentRole.Detection); Assert.Contains(detail.Units, e => e.EquipmentRole == (int)EquipmentRole.Detection);
Assert.Contains(detail.Units, e => e.EquipmentRole == (int)EquipmentRole.LaunchPlatform); Assert.Contains(detail.Units, e => e.EquipmentRole == (int)EquipmentRole.LaunchPlatform);
} }

View File

@ -142,7 +142,7 @@ namespace CounterDrone.Core.Tests
// 探测设备在 (5000, 0, 0),雷达 3000m无角度/高度限制 // 探测设备在 (5000, 0, 0),雷达 3000m无角度/高度限制
_scenarioService.SaveDeployment(_scenarioId, new List<ScenarioUnit> _scenarioService.SaveDeployment(_scenarioId, new List<ScenarioUnit>
{ {
TestData.CreateScenarioUnit(5000, 0, 0, 0, null), TestData.CreateDetectionUnit(5000, 0, 0),
TestData.CreateScenarioUnit(0, 0, 0, 0, 1), TestData.CreateScenarioUnit(0, 0, 0, 0, 1),
}); });
_scenarioService.SaveCloudDispersal(_scenarioId, new CloudDispersal _scenarioService.SaveCloudDispersal(_scenarioId, new CloudDispersal
@ -242,8 +242,8 @@ namespace CounterDrone.Core.Tests
_scenarioService.SaveScenarioDrone(scenario.Id, TestData.CreateScenarioDrone("w1", 1)); _scenarioService.SaveScenarioDrone(scenario.Id, TestData.CreateScenarioDrone("w1", 1));
_scenarioService.SaveDeployment(scenario.Id, new List<ScenarioUnit> _scenarioService.SaveDeployment(scenario.Id, new List<ScenarioUnit>
{ {
new() { EquipmentRole = (int)EquipmentRole.Detection, Quantity = 1, PositionX = 3000, PositionY = 0, PositionZ = 0, }, TestData.CreateDetectionUnit(3000, 0, 0),
new() { EquipmentRole = (int)EquipmentRole.Detection, Quantity = 1, PositionX = 7000, PositionY = 0, PositionZ = 0, }, TestData.CreateDetectionUnit(7000, 0, 0),
TestData.CreateScenarioUnit(0, 0, 0, 0, 1) TestData.CreateScenarioUnit(0, 0, 0, 0, 1)
}); });
_scenarioService.SaveCloudDispersal(scenario.Id, new CloudDispersal { AerosolType = (int)AerosolType.InertGas, DisperseHeight = 300, Duration = 60 }); _scenarioService.SaveCloudDispersal(scenario.Id, new CloudDispersal { AerosolType = (int)AerosolType.InertGas, DisperseHeight = 300, Duration = 60 });

View File

@ -34,9 +34,12 @@ namespace CounterDrone.Core.Tests
public static ScenarioDrone CreateScenarioDrone(string waveId = "w1", int quantity = 1) public static ScenarioDrone CreateScenarioDrone(string waveId = "w1", int quantity = 1)
=> new() { DroneSpecId = DefaultDroneSpec.Id, WaveId = waveId, Quantity = quantity }; => new() { DroneSpecId = DefaultDroneSpec.Id, WaveId = waveId, Quantity = quantity };
public static ScenarioDrone CreateScenarioDroneWithId(string scenarioId, string waveId = "w1", int quantity = 1)
=> new() { ScenarioId = scenarioId, DroneSpecId = DefaultDroneSpec.Id, WaveId = waveId, Quantity = quantity };
public static ScenarioUnit CreateScenarioUnit(double px, double py, double pz, public static ScenarioUnit CreateScenarioUnit(double px, double py, double pz,
int ammoType = 0, int? munitionCount = null) int ammoType = 0, int? munitionCount = null)
=> new() { FireUnitSpecId = DefaultFuSpec.Id, PositionX = px, PositionY = py, PositionZ = pz, => new() { FireUnitSpecId = "ground-light", PositionX = px, PositionY = py, PositionZ = pz,
AerosolType = ammoType, MunitionCount = munitionCount ?? 8, Quantity = 1 }; AerosolType = ammoType, MunitionCount = munitionCount ?? 8, Quantity = 1 };
private static FireUnitSpec? _defaultFuSpec; private static FireUnitSpec? _defaultFuSpec;
@ -48,6 +51,20 @@ namespace CounterDrone.Core.Tests
RadarRange = 5000, RadarRange = 5000,
}; };
private static SensorSpec? _sensorSpec;
public static SensorSpec DefaultSensorSpec => _sensorSpec ??= new SensorSpec
{
Id = "test-sensor", RadarRange = 3000, Accuracy = 50,
};
public static ScenarioUnit CreateDetectionUnit(double px, double py, double pz)
=> new()
{
SensorSpecId = "radar-mr",
EquipmentRole = (int)EquipmentRole.Detection,
PositionX = px, PositionY = py, PositionZ = pz, Quantity = 1
};
public static Dictionary<string, DroneSpec> EmptyDroneSpecs => new(); public static Dictionary<string, DroneSpec> EmptyDroneSpecs => new();
public static Dictionary<string, FireUnitSpec> EmptyFuSpecs => new(); public static Dictionary<string, FireUnitSpec> EmptyFuSpecs => new();
public static Dictionary<string, SensorSpec> EmptySensorSpecs => new(); public static Dictionary<string, SensorSpec> EmptySensorSpecs => new();