using System.Collections.Generic;
using CncModels.Constants;
using CncModels.Dto;
using CncModels.Dto.Settings;
using CncService;
using CncWebApi.Controllers;
using Xunit;
namespace CncWebApi.Tests
{
///
/// SettingsController单元测试
/// 系统配置CRUD + 车间管理CRUD + 修改密码
///
[Collection("Database")]
public class SettingsControllerTests
{
private readonly SettingsController _controller;
public SettingsControllerTests()
{
TestDb.TruncateAll();
_controller = ControllerFactory.CreateSettingsController();
}
#region 系统配置
#region GetSysConfigList - 配置列表
///
/// 测试:获取系统配置列表,种子数据有admin_username和admin_password_hash
///
[Fact]
public void GetSysConfigList_ShouldReturnConfigs()
{
var result = _controller.GetSysConfigList();
var response = ControllerFactory.Extract>(result);
ControllerFactory.AssertSuccess(response);
Assert.NotNull(response.Data);
Assert.True(response.Data.Count >= 2); // 至少有username和password_hash
}
#endregion
#region UpdateSysConfig - 编辑配置
///
/// 测试:更新配置值成功
///
[Fact]
public void UpdateSysConfig_ValidRequest_ShouldSuccess()
{
// 获取第一个配置ID
var list = ControllerFactory.Extract>(_controller.GetSysConfigList());
int configId = list.Data[0].Id;
var result = _controller.UpdateSysConfig(configId, new UpdateSysConfigRequest { ConfigValue = "new_value" });
ControllerFactory.AssertSuccess(ControllerFactory.Extract