UpdateDesktopUseCaseTests.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  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 UpdateDesktopUseCaseTests
  8. {
  9. [Fact]
  10. public async Task Updates_Model()
  11. {
  12. var repo = Substitute.For<IHardwareRepository>();
  13. var desktop = new Desktop { Name = "desk1" };
  14. repo.GetByNameAsync("desk1").Returns(desktop);
  15. var useCase = new UpdateDesktopUseCase(repo);
  16. await useCase.ExecuteAsync("desk1", "Optiplex");
  17. Assert.Equal("Optiplex", desktop.Model);
  18. await repo.Received().UpdateAsync(desktop);
  19. }
  20. [Fact]
  21. public async Task Throws_If_Not_Found()
  22. {
  23. var repo = Substitute.For<IHardwareRepository>();
  24. repo.GetByNameAsync("desk1").Returns((Hardware?)null);
  25. var useCase = new UpdateDesktopUseCase(repo);
  26. await Assert.ThrowsAsync<NotFoundException>(() =>
  27. useCase.ExecuteAsync("desk1", "Optiplex"));
  28. }
  29. }