DescribeDesktopUseCaseTests.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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.Models;
  6. namespace Tests.HardwareResources.Desktops;
  7. public class DescribeDesktopUseCaseTests
  8. {
  9. [Fact]
  10. public async Task Returns_Description()
  11. {
  12. var repo = Substitute.For<IHardwareRepository>();
  13. repo.GetByNameAsync("desk1").Returns(new Desktop
  14. {
  15. Name = "desk1",
  16. Model = "Optiplex",
  17. Cpus = new List<Cpu> { new() },
  18. Ram = new Ram { Size = 16, Mts = 2666 },
  19. Drives = new List<Drive> { new() },
  20. Nics = new List<Nic> { new() },
  21. Gpus = new List<Gpu> { new() }
  22. });
  23. var useCase = new DescribeDesktopUseCase(repo);
  24. var result = await useCase.ExecuteAsync("desk1");
  25. Assert.NotNull(result);
  26. Assert.Equal("desk1", result!.Name);
  27. Assert.Equal(1, result.CpuCount);
  28. Assert.Equal(1, result.DriveCount);
  29. Assert.Equal(1, result.NicCount);
  30. Assert.Equal(1, result.GpuCount);
  31. }
  32. [Fact]
  33. public async Task Returns_Null_If_Not_Found()
  34. {
  35. var repo = Substitute.For<IHardwareRepository>();
  36. repo.GetByNameAsync("desk1").Returns((Hardware?)null);
  37. var useCase = new DescribeDesktopUseCase(repo);
  38. await Assert.ThrowsAsync<NotFoundException>(() => useCase.ExecuteAsync("desk1"));
  39. }
  40. }