DescribeUpsUseCaseTests.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using NSubstitute;
  2. using RackPeek.Domain.Resources.Hardware;
  3. using RackPeek.Domain.Resources.Hardware.Models;
  4. using RackPeek.Domain.Resources.Hardware.UpsUnits;
  5. namespace Tests.Hardware.Ups;
  6. public class DescribeUpsUseCaseTests
  7. {
  8. [Fact]
  9. public async Task ExecuteAsync_Returns_null_when_ups_not_found()
  10. {
  11. var repo = Substitute.For<IHardwareRepository>();
  12. repo.GetByNameAsync("ups01").Returns((RackPeek.Domain.Resources.Hardware.Models.Hardware?)null);
  13. var sut = new DescribeUpsUseCase(repo);
  14. var result = await sut.ExecuteAsync("ups01");
  15. Assert.Null(result);
  16. }
  17. [Fact]
  18. public async Task ExecuteAsync_Returns_description_when_ups_exists()
  19. {
  20. var repo = Substitute.For<IHardwareRepository>();
  21. repo.GetByNameAsync("ups01").Returns(new RackPeek.Domain.Resources.Hardware.Models.Ups
  22. {
  23. Name = "ups01",
  24. Model = "APC-1500",
  25. Va = 1500
  26. });
  27. var sut = new DescribeUpsUseCase(repo);
  28. var result = await sut.ExecuteAsync("ups01");
  29. Assert.NotNull(result);
  30. Assert.Equal("ups01", result.Name);
  31. Assert.Equal("APC-1500", result.Model);
  32. Assert.Equal(1500, result.Va);
  33. }
  34. }