using System.Collections.Generic;
using Xunit;
using CncModels.Dto;
namespace CncModels.Tests
{
///
/// ApiResponse 单元测试
///
public class ApiResponseTests
{
[Fact]
///
/// 成功响应:Code=0, Message=success, Data=传入值
///
public void Success_Returns_Code_0_Message_Success_With_Data()
{
// Arrange
var data = "ok";
// Act
var resp = ApiResponse.Success(data);
// Assert
Assert.Equal(0, resp.Code);
Assert.Equal("success", resp.Message);
Assert.Equal(data, resp.Data);
}
[Fact]
///
/// 成功响应:自定义信息
///
public void Success_With_Custom_Message()
{
var resp = ApiResponse.Success("payload", "custom");
Assert.Equal(0, resp.Code);
Assert.Equal("custom", resp.Message);
Assert.Equal("payload", resp.Data);
}
[Fact]
///
/// 失败响应:非零错误码且数据为 null
///
public void Fail_Returns_NonZero_Code_And_Null_Data()
{
var resp = ApiResponse.Fail(400, "bad request");
Assert.Equal(400, resp.Code);
Assert.Equal("bad request", resp.Message);
Assert.Null(resp.Data);
}
[Fact]
///
/// 成功响应:数据为 null 的情况
///
public void Success_With_Null_Data()
{
var resp = ApiResponse.Success(null);
Assert.Equal(0, resp.Code);
Assert.Equal("success", resp.Message);
Assert.Null(resp.Data);
}
[Fact]
///
/// 成功响应:复杂对象数据
///
public void Success_With_Complex_Data()
{
var data = new List { 1, 2, 3 };
var resp = ApiResponse>.Success(data);
Assert.Equal(0, resp.Code);
Assert.Equal("success", resp.Message);
Assert.Equal(data, resp.Data);
}
}
}