GetUpsUseCaseTests.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using NSubstitute;
  2. using RackPeek.Domain.Resources.Hardware;
  3. using RackPeek.Domain.Resources.Hardware.UpsUnits;
  4. using RackPeek.Domain.Resources.Models;
  5. namespace Tests.HardwareResources.Ups;
  6. public class GetUpsUseCaseTests
  7. {
  8. [Fact]
  9. public async Task ExecuteAsync_Returns_only_ups_units()
  10. {
  11. var repo = Substitute.For<IHardwareRepository>();
  12. repo.GetAllAsync().Returns([
  13. new RackPeek.Domain.Resources.Models.Ups { Name = "ups01" },
  14. new Server { Name = "node01" },
  15. new RackPeek.Domain.Resources.Models.Ups { Name = "ups02" }
  16. ]);
  17. var sut = new GetUpsUseCase(repo);
  18. var result = await sut.ExecuteAsync();
  19. Assert.Equal(2, result.Count);
  20. Assert.All(result, u => Assert.IsType<RackPeek.Domain.Resources.Models.Ups>(u));
  21. Assert.Contains(result, u => u.Name == "ups01");
  22. Assert.Contains(result, u => u.Name == "ups02");
  23. }
  24. [Fact]
  25. public async Task ExecuteAsync_Returns_empty_list_when_no_ups_exist()
  26. {
  27. var repo = Substitute.For<IHardwareRepository>();
  28. repo.GetAllAsync().Returns([
  29. new Server { Name = "node01" }
  30. ]);
  31. var sut = new GetUpsUseCase(repo);
  32. var result = await sut.ExecuteAsync();
  33. Assert.Empty(result);
  34. }
  35. }