GetDesktopUseCaseTests.cs 994 B

1234567891011121314151617181920212223242526272829303132333435
  1. using NSubstitute;
  2. using RackPeek.Domain.Helpers;
  3. using RackPeek.Domain.Resources.Hardware;
  4. using RackPeek.Domain.Resources.Hardware.Desktops;
  5. using RackPeek.Domain.Resources.Models;
  6. namespace Tests.HardwareResources.Desktops;
  7. public class GetDesktopUseCaseTests
  8. {
  9. [Fact]
  10. public async Task Returns_Desktop()
  11. {
  12. var repo = Substitute.For<IHardwareRepository>();
  13. repo.GetByNameAsync("desk1").Returns(new Desktop { Name = "desk1" });
  14. var useCase = new GetDesktopUseCase(repo);
  15. var result = await useCase.ExecuteAsync("desk1");
  16. Assert.NotNull(result);
  17. Assert.Equal("desk1", result!.Name);
  18. }
  19. [Fact]
  20. public async Task Returns_Null_If_Not_Found()
  21. {
  22. var repo = Substitute.For<IHardwareRepository>();
  23. repo.GetByNameAsync("desk1").Returns((Hardware?)null);
  24. var useCase = new GetDesktopUseCase(repo);
  25. await Assert.ThrowsAsync<NotFoundException>(() => useCase.ExecuteAsync("desk1"));
  26. }
  27. }