GetServerUseCaseTests.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using NSubstitute;
  2. using RackPeek.Domain.Resources.Hardware;
  3. using RackPeek.Domain.Resources.Hardware.Models;
  4. using RackPeek.Domain.Resources.Hardware.Server;
  5. namespace Tests.Hardware;
  6. public class GetServerUseCaseTests
  7. {
  8. [Fact]
  9. public async Task ExecuteAsync_Returns_server_when_exists()
  10. {
  11. // Arrange
  12. var repo = Substitute.For<IHardwareRepository>();
  13. repo.GetByNameAsync("node01").Returns(new Server { Name = "node01" });
  14. var sut = new GetServerUseCase(repo);
  15. // Act
  16. var server = await sut.ExecuteAsync("node01");
  17. // Assert
  18. Assert.NotNull(server);
  19. Assert.IsType<Server>(server);
  20. Assert.Equal("node01", server!.Name);
  21. }
  22. [Fact]
  23. public async Task ExecuteAsync_Returns_null_when_not_found()
  24. {
  25. // Arrange
  26. var repo = Substitute.For<IHardwareRepository>();
  27. repo.GetByNameAsync("node01").Returns((RackPeek.Domain.Resources.Hardware.Models.Hardware?)null);
  28. var sut = new GetServerUseCase(repo);
  29. // Act
  30. var server = await sut.ExecuteAsync("node01");
  31. // Assert
  32. Assert.Null(server);
  33. }
  34. [Fact]
  35. public async Task ExecuteAsync_Returns_null_when_found_is_not_server()
  36. {
  37. // Arrange
  38. var repo = Substitute.For<IHardwareRepository>();
  39. repo.GetByNameAsync("node01").Returns(new Desktop { Name = "desktop1" });
  40. var sut = new GetServerUseCase(repo);
  41. // Act
  42. var server = await sut.ExecuteAsync("node01");
  43. // Assert
  44. Assert.Null(server);
  45. }
  46. }