You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
haoliang-net/tests/CncModels.Tests/ApiResponseTests.cs

79 lines
2.2 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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