using Hua.Todo.Core.Entities;
using Xunit;
namespace Hua.Todo.Host.Tests;
///
/// TaskEntity 单元测试。
///
public class TaskEntityTests
{
///
/// 测试 TaskEntity 继承自 FullAuditedEntityWithUser。
///
[Fact]
public void TaskEntity_InheritsFromFullAuditedEntityWithUser()
{
// Arrange & Act
var task = new TaskEntity();
// Assert
Assert.IsAssignableFrom>(task);
}
///
/// 测试 TaskEntity 主键为 Guid 类型。
///
[Fact]
public void TaskEntity_IdIsGuid()
{
// Arrange & Act
var task = new TaskEntity();
// Assert
Assert.Equal(Guid.Empty, task.Id);
}
///
/// 测试 TaskEntity 默认值。
///
[Fact]
public void TaskEntity_DefaultValues()
{
// Arrange & Act
var task = new TaskEntity();
// Assert
Assert.Equal(string.Empty, task.Title);
Assert.Equal(TaskPriority.Medium, task.Priority);
Assert.False(task.IsCompleted);
Assert.Null(task.ParentTaskId);
Assert.Empty(task.SubTasks);
Assert.False(task.IsDeleted);
Assert.Null(task.DeletionTime);
Assert.Null(task.DeleterId);
}
///
/// 测试创建任务时生成 Guid。
///
[Fact]
public void TaskEntity_NewInstance_HasUniqueId()
{
// Arrange & Act
var task1 = new TaskEntity { Id = Guid.NewGuid() };
var task2 = new TaskEntity { Id = Guid.NewGuid() };
// Assert
Assert.NotEqual(task1.Id, task2.Id);
}
}
///
/// FullAuditedEntityWithUser 基类单元测试。
///
public class FullAuditedEntityWithUserTests
{
///
/// 测试 ABP 审计字段默认值。
///
[Fact]
public void FullAuditedEntityWithUser_DefaultValues()
{
// Arrange & Act
var entity = new TestAuditedEntity();
// Assert
Assert.Equal(Guid.Empty, entity.Id);
Assert.False(entity.IsDeleted);
Assert.Null(entity.DeletionTime);
Assert.Null(entity.DeleterId);
Assert.Null(entity.ExtraProperties);
Assert.Null(entity.ConcurrencyStamp);
Assert.Equal(default, entity.CreationTime);
Assert.Null(entity.CreatorId);
Assert.Null(entity.LastModificationTime);
Assert.Null(entity.LastModifierId);
}
///
/// 测试 IUser 接口实现。
///
[Fact]
public void UserEntity_ImplementsIUser()
{
// Arrange & Act
var user = new UserEntity
{
Id = Guid.NewGuid(),
UserName = "testuser"
};
// Assert
Assert.IsAssignableFrom>(user);
Assert.Equal("testuser", user.UserName);
}
///
/// 测试子类。
///
private class TestAuditedEntity : FullAuditedEntityWithUser
{
}
}