DeleteUpsUseCaseTests.cs 1.2 KB

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