AddDesktopUseCaseTests.cs 925 B

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