DescribeUpsUseCaseTests.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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 DescribeUpsUseCaseTests
  8. {
  9. [Fact]
  10. public async Task ExecuteAsync_Returns_null_when_ups_not_found()
  11. {
  12. var repo = Substitute.For<IHardwareRepository>();
  13. repo.GetByNameAsync("ups01").Returns((Hardware?)null);
  14. var sut = new DescribeUpsUseCase(repo);
  15. await Assert.ThrowsAsync<NotFoundException>(() => sut.ExecuteAsync("ups01"));
  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.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. }