DescribeDesktopUseCaseTests.cs 1.4 KB

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