using NSubstitute; using RackPeek.Domain.Helpers; using RackPeek.Domain.Resources.Hardware; using RackPeek.Domain.Resources.Hardware.UpsUnits; using RackPeek.Domain.Resources.Models; namespace Tests.HardwareResources.Ups; public class GetUpsUnitUseCaseTests { [Fact] public async Task ExecuteAsync_Returns_ups_when_it_exists() { var repo = Substitute.For(); var ups = new RackPeek.Domain.Resources.Models.Ups { Name = "ups01" }; repo.GetByNameAsync("ups01").Returns(ups); var sut = new GetUpsUnitUseCase(repo); var result = await sut.ExecuteAsync("ups01"); Assert.NotNull(result); Assert.Same(ups, result); } [Fact] public async Task ExecuteAsync_Returns_null_when_hardware_is_not_ups() { var repo = Substitute.For(); repo.GetByNameAsync("node01").Returns(new Server { Name = "node01" }); var sut = new GetUpsUnitUseCase(repo); await Assert.ThrowsAsync(() => sut.ExecuteAsync("node01")); } }