GetSwitchUseCaseTests.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using NSubstitute;
  2. using RackPeek.Domain.Resources.Hardware;
  3. using RackPeek.Domain.Resources.Hardware.Models;
  4. using RackPeek.Domain.Resources.Hardware.Switches;
  5. namespace Tests.Hardware.Switches;
  6. public class GetSwitchUseCaseTests
  7. {
  8. [Fact]
  9. public async Task ExecuteAsync_Returns_switch_when_it_exists()
  10. {
  11. // Arrange
  12. var repo = Substitute.For<IHardwareRepository>();
  13. var sw = new Switch { Name = "sw01" };
  14. repo.GetByNameAsync("sw01").Returns(sw);
  15. var sut = new GetSwitchUseCase(repo);
  16. // Act
  17. var result = await sut.ExecuteAsync("sw01");
  18. // Assert
  19. Assert.NotNull(result);
  20. Assert.Same(sw, result);
  21. }
  22. [Fact]
  23. public async Task ExecuteAsync_Returns_null_when_hardware_is_not_switch()
  24. {
  25. // Arrange
  26. var repo = Substitute.For<IHardwareRepository>();
  27. repo.GetByNameAsync("node01").Returns(new Server { Name = "node01" });
  28. var sut = new GetSwitchUseCase(repo);
  29. // Act
  30. var result = await sut.ExecuteAsync("node01");
  31. // Assert
  32. Assert.Null(result);
  33. }
  34. }