DeleteAccessPointUseCaseTests.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using NSubstitute;
  2. using RackPeek.Domain.Helpers;
  3. using RackPeek.Domain.Resources.Hardware.AccessPoints;
  4. using RackPeek.Domain.Resources.Models;
  5. namespace Tests.HardwareResources.AccessPoints;
  6. public class DeleteAccessPointUseCaseTests
  7. {
  8. [Fact]
  9. public async Task ExecuteAsync_Deletes_ap_when_exists()
  10. {
  11. // Arrange
  12. var host = new UsecaseTestHost();
  13. var repo = host.HardwareRepo;
  14. repo.GetByNameAsync("ap01").Returns(new AccessPoint { Name = "ap01" });
  15. var sut = host.Get<DeleteAccessPointUseCase>();
  16. // Act
  17. await sut.ExecuteAsync("ap01");
  18. // Assert
  19. await repo.Received(1).DeleteAsync("ap01");
  20. }
  21. [Fact]
  22. public async Task ExecuteAsync_Throws_if_ap_not_found()
  23. {
  24. // Arrange
  25. var host = new UsecaseTestHost();
  26. var repo = host.HardwareRepo;
  27. repo.GetByNameAsync("ap01").Returns((Hardware?)null);
  28. var sut = host.Get<DeleteAccessPointUseCase>();
  29. // Act
  30. var ex = await Assert.ThrowsAsync<NotFoundException>(async () =>
  31. await sut.ExecuteAsync("ap01")
  32. );
  33. // Assert
  34. Assert.Equal("Access point 'ap01' not found.", ex.Message);
  35. await repo.DidNotReceive().DeleteAsync(Arg.Any<string>());
  36. }
  37. }