AddDesktopUseCaseTests.cs 994 B

12345678910111213141516171819202122232425262728293031323334
  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.Hardware.Models;
  6. namespace Tests.HardwareResources.Desktops;
  7. public class AddDesktopUseCaseTests
  8. {
  9. [Fact]
  10. public async Task Adds_New_Desktop()
  11. {
  12. var repo = Substitute.For<IHardwareRepository>();
  13. repo.GetByNameAsync("desk1").Returns((Hardware?)null);
  14. var useCase = new AddDesktopUseCase(repo);
  15. await useCase.ExecuteAsync("desk1");
  16. await repo.Received().AddAsync(Arg.Is<Desktop>(d => d.Name == "desk1"));
  17. }
  18. [Fact]
  19. public async Task Throws_If_Desktop_Exists()
  20. {
  21. var repo = Substitute.For<IHardwareRepository>();
  22. repo.GetByNameAsync("desk1").Returns(new Desktop { Name = "desk1" });
  23. var useCase = new AddDesktopUseCase(repo);
  24. await Assert.ThrowsAsync<ConflictException>(() => useCase.ExecuteAsync("desk1"));
  25. }
  26. }