完成编辑变量表的单元测试

This commit is contained in:
2025-07-24 21:06:48 +08:00
parent ffde374af2
commit 4657a461e3
3 changed files with 54 additions and 5 deletions

View File

@@ -10,7 +10,7 @@ namespace DMS.Application.Interfaces
Task<VariableTableDto> GetVariableTableByIdAsync(int id); Task<VariableTableDto> GetVariableTableByIdAsync(int id);
Task<List<VariableTableDto>> GetAllVariableTablesAsync(); Task<List<VariableTableDto>> GetAllVariableTablesAsync();
Task<VariableTableDto> CreateVariableTableAsync(CreateVariableTableWithMenuDto createDto); Task<VariableTableDto> CreateVariableTableAsync(CreateVariableTableWithMenuDto createDto);
Task UpdateVariableTableAsync(VariableTableDto variableTableDto); Task<int> UpdateVariableTableAsync(VariableTableDto variableTableDto);
Task<bool> DeleteVariableTableAsync(int id); Task<bool> DeleteVariableTableAsync(int id);
} }
} }

View File

@@ -106,11 +106,30 @@ namespace DMS.Application.Services
/// 异步更新变量表。 /// 异步更新变量表。
/// </summary> /// </summary>
/// <param name="variableTableDto">要更新的变量表数据传输对象。</param> /// <param name="variableTableDto">要更新的变量表数据传输对象。</param>
/// <returns>表示异步操作的任务。</returns> /// <returns>受影响的行数。</returns>
public async Task UpdateVariableTableAsync(VariableTableDto variableTableDto) /// <exception cref="ApplicationException">如果找不到变量表。</exception>
public async Task<int> UpdateVariableTableAsync(VariableTableDto variableTableDto)
{ {
var variableTable = _mapper.Map<VariableTable>(variableTableDto); try
await _repositoryManager.VariableTables.UpdateAsync(variableTable); {
await _repositoryManager.BeginTranAsync();
var variableTable = await _repositoryManager.VariableTables.GetByIdAsync(variableTableDto.Id);
if (variableTable == null)
{
throw new ApplicationException($"VariableTable with ID {variableTableDto.Id} not found.");
}
_mapper.Map(variableTableDto, variableTable);
int res = await _repositoryManager.VariableTables.UpdateAsync(variableTable);
await _repositoryManager.CommitAsync();
return res;
}
catch (Exception ex)
{
await _repositoryManager.RollbackAsync();
// 可以在此记录日志
throw new ApplicationException($"更新变量表时发生错误,操作已回滚,错误信息:{ex.Message}", ex);
}
} }
/// <summary> /// <summary>

View File

@@ -52,4 +52,34 @@ public class VariableTableAppServiceTest : BaseServiceTest
var deletedTable = await _variableTableAppService.GetVariableTableByIdAsync(createdVariableTable.Id); var deletedTable = await _variableTableAppService.GetVariableTableByIdAsync(createdVariableTable.Id);
Assert.Null(deletedTable); Assert.Null(deletedTable);
} }
[Fact]
public async Task UpdateVariableTableAsyncTest()
{
// Arrange: Create a variable table first
var createDto = new CreateVariableTableWithMenuDto()
{
VariableTable = FakerHelper.FakeVariableTableDto(),
Menu = FakerHelper.FakeCreateMenuDto(),
DeviceId = 5 // Assuming a device with ID 5 exists for testing
};
var createdVariableTable = await _variableTableAppService.CreateVariableTableAsync(createDto);
Assert.NotEqual(createdVariableTable.Id, 0);
// Modify some properties of the DTO
createdVariableTable.Name = "Updated Variable Table Name";
createdVariableTable.Description = "This is an updated description.";
// Act: Update the variable table
var affectedRows = await _variableTableAppService.UpdateVariableTableAsync(createdVariableTable);
// Assert: Verify update was successful
Assert.Equal(1, affectedRows);
// Retrieve the updated variable table to confirm changes
var updatedTable = await _variableTableAppService.GetVariableTableByIdAsync(createdVariableTable.Id);
Assert.NotNull(updatedTable);
Assert.Equal("Updated Variable Table Name", updatedTable.Name);
Assert.Equal("This is an updated description.", updatedTable.Description);
}
} }