GetUpsUnitUseCaseTests.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using NSubstitute;
  2. using RackPeek.Domain.Helpers;
  3. using RackPeek.Domain.Resources.Hardware;
  4. using RackPeek.Domain.Resources.Hardware.UpsUnits;
  5. using RackPeek.Domain.Resources.Models;
  6. namespace Tests.HardwareResources.Ups;
  7. public class GetUpsUnitUseCaseTests
  8. {
  9. [Fact]
  10. public async Task ExecuteAsync_Returns_ups_when_it_exists()
  11. {
  12. var repo = Substitute.For<IHardwareRepository>();
  13. var ups = new RackPeek.Domain.Resources.Models.Ups { Name = "ups01" };
  14. repo.GetByNameAsync("ups01").Returns(ups);
  15. var sut = new GetUpsUnitUseCase(repo);
  16. var result = await sut.ExecuteAsync("ups01");
  17. Assert.NotNull(result);
  18. Assert.Same(ups, result);
  19. }
  20. [Fact]
  21. public async Task ExecuteAsync_Returns_null_when_hardware_is_not_ups()
  22. {
  23. var repo = Substitute.For<IHardwareRepository>();
  24. repo.GetByNameAsync("node01").Returns(new Server { Name = "node01" });
  25. var sut = new GetUpsUnitUseCase(repo);
  26. await Assert.ThrowsAsync<NotFoundException>(() => sut.ExecuteAsync("node01"));
  27. }
  28. }