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(DeviceAppService))] public class DeviceAppServiceTest : BaseServiceTest // 继承基类 { private readonly IDeviceAppService _deviceService; public DeviceAppServiceTest() : base() { // 从 IoC 容器中解析出需要测试的服务 // 使用 GetRequiredService 可以确保如果服务未注册,测试会立即失败,这通常是我们想要的。 _deviceService = ServiceProvider.GetRequiredService(); } [Fact] public async Task CreateDeviceWithDetailsAsyncTest() { // Arrange // var dto = new CreateDeviceWithDetailsDto // { // Device = FakerHelper.FakeCreateDeviceDto(), // VariableTable = FakerHelper.FakeVariableTableDto(), // DeviceMenu = FakerHelper.FakeCreateMenuDto(), // VariableTableMenu = FakerHelper.FakeCreateMenuDto() // // // ... 填充其他需要的数据 // }; // // // Act // var addDto = await _deviceService.CreateDeviceWithDetailsAsync(dto); // // // Assert // Assert.NotEqual(0, addDto.Device.Id); } [Fact] public async Task DeleteDeviceAsyncTest() { // Act var isSuccess = await _deviceService.DeleteDeviceByIdAsync(4); // Assert Assert.Equal(isSuccess,true); } [Fact] public async Task UpdateDeviceAsyncTest() { // UpdateDeviceDto dto = new UpdateDeviceDto() // { // Id = 5, // Name = "lalala", // IsActive = true, // Rack = 0, // Slot = 0 // // }; // var res = await _deviceService.UpdateDeviceAsync(dto); // Assert.NotEqual(res,0); } }