GetSwitchesUseCaseTests.cs 1.3 KB

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