2025-07-24 19:51:16 +08:00
|
|
|
using DMS.Application.DTOs;
|
|
|
|
|
using DMS.Application.Interfaces;
|
|
|
|
|
using DMS.Application.Services;
|
|
|
|
|
using JetBrains.Annotations;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
|
|
|
|
|
namespace DMS.Infrastructure.UnitTests.Services;
|
|
|
|
|
|
|
|
|
|
[TestSubject(typeof(VariableTableAppService))]
|
|
|
|
|
public class VariableTableAppServiceTest : BaseServiceTest
|
|
|
|
|
{
|
|
|
|
|
private readonly IVariableTableAppService _variableTableAppService;
|
|
|
|
|
|
|
|
|
|
public VariableTableAppServiceTest()
|
|
|
|
|
{
|
|
|
|
|
_variableTableAppService = ServiceProvider.GetRequiredService<IVariableTableAppService>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public async Task CreateVariableTableAsyncTest()
|
|
|
|
|
{
|
|
|
|
|
var dto = new CreateVariableTableWithMenuDto()
|
|
|
|
|
{
|
|
|
|
|
VariableTable = FakerHelper.FakeVariableTableDto(),
|
|
|
|
|
Menu = FakerHelper.FakeCreateMenuDto(),
|
|
|
|
|
DeviceId = 5
|
|
|
|
|
};
|
|
|
|
|
var addVarTable= await _variableTableAppService.CreateVariableTableAsync(dto);
|
2025-07-30 12:54:14 +08:00
|
|
|
Assert.NotEqual(addVarTable.VariableTable.Id, 0);
|
2025-07-24 19:51:16 +08:00
|
|
|
}
|
2025-07-24 21:01:03 +08:00
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public async Task DeleteVariableTableAsyncTest()
|
|
|
|
|
{
|
|
|
|
|
// 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);
|
2025-07-30 12:54:14 +08:00
|
|
|
Assert.NotEqual(createdVariableTable.VariableTable.Id, 0);
|
2025-07-24 21:01:03 +08:00
|
|
|
|
|
|
|
|
// Act: Delete the created variable table
|
2025-07-30 12:54:14 +08:00
|
|
|
var isDeleted = await _variableTableAppService.DeleteVariableTableAsync(createdVariableTable.VariableTable.Id);
|
2025-07-24 21:01:03 +08:00
|
|
|
|
|
|
|
|
// Assert: Verify deletion was successful
|
|
|
|
|
Assert.True(isDeleted);
|
|
|
|
|
|
|
|
|
|
// Optionally, try to retrieve the deleted variable table to confirm it's gone
|
2025-07-30 12:54:14 +08:00
|
|
|
var deletedTable = await _variableTableAppService.GetVariableTableByIdAsync(createdVariableTable.VariableTable.Id);
|
2025-07-24 21:01:03 +08:00
|
|
|
Assert.Null(deletedTable);
|
|
|
|
|
}
|
2025-07-24 21:06:48 +08:00
|
|
|
|
|
|
|
|
[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);
|
2025-07-30 12:54:14 +08:00
|
|
|
Assert.NotEqual(createdVariableTable.VariableTable.Id, 0);
|
2025-07-24 21:06:48 +08:00
|
|
|
|
|
|
|
|
// Modify some properties of the DTO
|
2025-07-30 12:54:14 +08:00
|
|
|
createdVariableTable.VariableTable.Name = "Updated Variable Table Name";
|
|
|
|
|
createdVariableTable.VariableTable.Description = "This is an updated description.";
|
2025-07-24 21:06:48 +08:00
|
|
|
|
|
|
|
|
// Act: Update the variable table
|
2025-07-30 12:54:14 +08:00
|
|
|
var affectedRows = await _variableTableAppService.UpdateVariableTableAsync(createdVariableTable.VariableTable);
|
2025-07-24 21:06:48 +08:00
|
|
|
|
|
|
|
|
// Assert: Verify update was successful
|
|
|
|
|
Assert.Equal(1, affectedRows);
|
|
|
|
|
|
|
|
|
|
// Retrieve the updated variable table to confirm changes
|
2025-07-30 12:54:14 +08:00
|
|
|
var updatedTable = await _variableTableAppService.GetVariableTableByIdAsync(createdVariableTable.VariableTable.Id);
|
2025-07-24 21:06:48 +08:00
|
|
|
Assert.NotNull(updatedTable);
|
|
|
|
|
Assert.Equal("Updated Variable Table Name", updatedTable.Name);
|
|
|
|
|
Assert.Equal("This is an updated description.", updatedTable.Description);
|
|
|
|
|
}
|
2025-07-24 19:51:16 +08:00
|
|
|
}
|