DescribeAccessPointUseCaseTests.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using NSubstitute;
  2. using RackPeek.Domain.Helpers;
  3. using RackPeek.Domain.Resources.Hardware;
  4. using RackPeek.Domain.Resources.Hardware.AccessPoints;
  5. using RackPeek.Domain.Resources.Models;
  6. namespace Tests.HardwareResources.AccessPoints;
  7. public class DescribeAccessPointUseCaseTests
  8. {
  9. [Fact]
  10. public async Task ExecuteAsync_Returns_null_when_ap_not_found()
  11. {
  12. // Arrange
  13. var repo = Substitute.For<IHardwareRepository>();
  14. repo.GetByNameAsync("ap01").Returns((Hardware?)null);
  15. var sut = new DescribeAccessPointUseCase(repo);
  16. // Act
  17. await Assert.ThrowsAsync<NotFoundException>(() => sut.ExecuteAsync("ap01"));
  18. }
  19. [Fact]
  20. public async Task ExecuteAsync_Returns_description_when_ap_exists()
  21. {
  22. // Arrange
  23. var repo = Substitute.For<IHardwareRepository>();
  24. repo.GetByNameAsync("ap01").Returns(new AccessPoint
  25. {
  26. Name = "ap01",
  27. Model = "U6-Lite",
  28. Speed = 1.2
  29. });
  30. var sut = new DescribeAccessPointUseCase(repo);
  31. // Act
  32. var result = await sut.ExecuteAsync("ap01");
  33. // Assert
  34. Assert.NotNull(result);
  35. Assert.Equal("ap01", result.Name);
  36. Assert.Equal("U6-Lite", result.Model);
  37. Assert.Equal(1.2, result.Speed);
  38. }
  39. }