DescribeAccessPointUseCaseTests.cs 1.3 KB

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