DeleteUpsUseCaseTests.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using NSubstitute;
  2. using RackPeek.Domain.Helpers;
  3. using RackPeek.Domain.Resources.Hardware.UpsUnits;
  4. using RackPeek.Domain.Resources.Models;
  5. namespace Tests.HardwareResources.Ups;
  6. public class DeleteUpsUseCaseTests
  7. {
  8. [Fact]
  9. public async Task ExecuteAsync_Deletes_ups_when_exists()
  10. {
  11. var host = new UsecaseTestHost();
  12. var repo = host.HardwareRepo;
  13. repo.GetByNameAsync("ups01").Returns(new RackPeek.Domain.Resources.Models.Ups { Name = "ups01" });
  14. var sut = host.Get<DeleteUpsUseCase>();
  15. await sut.ExecuteAsync("ups01");
  16. await repo.Received(1).DeleteAsync("ups01");
  17. }
  18. [Fact]
  19. public async Task ExecuteAsync_Throws_if_ups_not_found()
  20. {
  21. var host = new UsecaseTestHost();
  22. var repo = host.HardwareRepo;
  23. repo.GetByNameAsync("ups01").Returns((Hardware?)null);
  24. var sut = host.Get<DeleteUpsUseCase>();
  25. var ex = await Assert.ThrowsAsync<NotFoundException>(async () =>
  26. await sut.ExecuteAsync("ups01")
  27. );
  28. Assert.Equal("UPS 'ups01' not found.", ex.Message);
  29. await repo.DidNotReceive().DeleteAsync(Arg.Any<string>());
  30. }
  31. }