UpdateDesktopUseCaseTests.cs 1013 B

12345678910111213141516171819202122232425262728293031323334
  1. using NSubstitute;
  2. using RackPeek.Domain.Resources.Hardware;
  3. using RackPeek.Domain.Resources.Hardware.Desktop;
  4. using RackPeek.Domain.Resources.Hardware.Models;
  5. public class UpdateDesktopUseCaseTests
  6. {
  7. [Fact]
  8. public async Task Updates_Model()
  9. {
  10. var repo = Substitute.For<IHardwareRepository>();
  11. var desktop = new Desktop { Name = "desk1" };
  12. repo.GetByNameAsync("desk1").Returns(desktop);
  13. var useCase = new UpdateDesktopUseCase(repo);
  14. await useCase.ExecuteAsync("desk1", "Optiplex");
  15. Assert.Equal("Optiplex", desktop.Model);
  16. await repo.Received().UpdateAsync(desktop);
  17. }
  18. [Fact]
  19. public async Task Throws_If_Not_Found()
  20. {
  21. var repo = Substitute.For<IHardwareRepository>();
  22. repo.GetByNameAsync("desk1").Returns((Hardware?)null);
  23. var useCase = new UpdateDesktopUseCase(repo);
  24. await Assert.ThrowsAsync<InvalidOperationException>(() =>
  25. useCase.ExecuteAsync("desk1", "Optiplex"));
  26. }
  27. }