GetAccessPointsUseCaseTest.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using NSubstitute;
  2. using RackPeek.Domain.Resources.Hardware;
  3. using RackPeek.Domain.Resources.Hardware.AccessPoints;
  4. using RackPeek.Domain.Resources.Models;
  5. namespace Tests.HardwareResources.AccessPoints;
  6. public class GetAccessPointsUseCaseTests
  7. {
  8. [Fact]
  9. public async Task ExecuteAsync_Returns_only_access_points()
  10. {
  11. // Arrange
  12. var repo = Substitute.For<IHardwareRepository>();
  13. repo.GetAllAsync().Returns([
  14. new AccessPoint { Name = "ap01" },
  15. new Server { Name = "node01" },
  16. new AccessPoint { Name = "ap02" }
  17. ]);
  18. var sut = new GetAccessPointsUseCase(repo);
  19. // Act
  20. var result = await sut.ExecuteAsync();
  21. // Assert
  22. Assert.Equal(2, result.Count);
  23. Assert.All(result, ap => Assert.IsType<AccessPoint>(ap));
  24. Assert.Contains(result, ap => ap.Name == "ap01");
  25. Assert.Contains(result, ap => ap.Name == "ap02");
  26. }
  27. [Fact]
  28. public async Task ExecuteAsync_Returns_empty_list_when_no_access_points_exist()
  29. {
  30. // Arrange
  31. var repo = Substitute.For<IHardwareRepository>();
  32. repo.GetAllAsync().Returns([
  33. new Server { Name = "node01" }
  34. ]);
  35. var sut = new GetAccessPointsUseCase(repo);
  36. // Act
  37. var result = await sut.ExecuteAsync();
  38. // Assert
  39. Assert.Empty(result);
  40. }
  41. }