DesktopErrorTests.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. using Tests.EndToEnd.Infra;
  2. using Xunit.Abstractions;
  3. namespace Tests.EndToEnd.DesktopTests;
  4. [Collection("Yaml CLI tests")]
  5. public class DesktopErrorTests(TempYamlCliFixture fs, ITestOutputHelper outputHelper)
  6. : IClassFixture<TempYamlCliFixture> {
  7. private async Task<(string, string)> ExecuteAsync(params string[] args) {
  8. var output = await YamlCliTestHost.RunAsync(
  9. args,
  10. fs.Root,
  11. outputHelper,
  12. "config.yaml"
  13. );
  14. var yaml = await File.ReadAllTextAsync(Path.Combine(fs.Root, "config.yaml"));
  15. return (output, yaml);
  16. }
  17. [Fact]
  18. public async Task adding_duplicate_desktop_returns_error() {
  19. await ExecuteAsync("desktops", "add", "workstation01");
  20. (var output, var _) = await ExecuteAsync("desktops", "add", "workstation01");
  21. Assert.Contains("already exists", output, StringComparison.OrdinalIgnoreCase);
  22. }
  23. [Fact]
  24. public async Task get_missing_desktop_returns_error() {
  25. (var output, var _) = await ExecuteAsync("desktops", "get", "ghost");
  26. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  27. }
  28. [Fact]
  29. public async Task set_missing_desktop_returns_error() {
  30. (var output, var _) = await ExecuteAsync("desktops", "set", "ghost", "--model", "X");
  31. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  32. }
  33. [Fact]
  34. public async Task delete_missing_desktop_returns_error() {
  35. (var output, var _) = await ExecuteAsync("desktops", "del", "ghost");
  36. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  37. }
  38. [Fact]
  39. public async Task tree_missing_desktop_returns_error() {
  40. (var output, var _) = await ExecuteAsync("desktops", "tree", "ghost");
  41. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  42. }
  43. // CPU errors
  44. [Fact]
  45. public async Task cpu_add_missing_desktop_returns_error() {
  46. (var output, var _) = await ExecuteAsync(
  47. "desktops", "cpu", "add", "ghost",
  48. "--model", "Xeon",
  49. "--cores", "8",
  50. "--threads", "16"
  51. );
  52. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  53. }
  54. [Fact]
  55. public async Task cpu_set_invalid_index_returns_error() {
  56. await ExecuteAsync("desktops", "add", "workstation01");
  57. (var output, var _) = await ExecuteAsync(
  58. "desktops", "cpu", "set", "workstation01", "5",
  59. "--model", "Xeon"
  60. );
  61. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  62. }
  63. // Drive errors
  64. [Fact]
  65. public async Task drive_add_missing_desktop_returns_error() {
  66. (var output, var _) = await ExecuteAsync(
  67. "desktops", "drive", "add", "ghost",
  68. "--type", "ssd",
  69. "--size", "1000"
  70. );
  71. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  72. }
  73. // GPU errors
  74. [Fact]
  75. public async Task gpu_add_missing_desktop_returns_error() {
  76. (var output, var _) = await ExecuteAsync(
  77. "desktops", "gpu", "add", "ghost",
  78. "--model", "RTX 4090",
  79. "--vram", "24"
  80. );
  81. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  82. }
  83. // NIC errors
  84. [Fact]
  85. public async Task nic_add_missing_desktop_returns_error() {
  86. (var output, var _) = await ExecuteAsync(
  87. "desktops", "nic", "add", "ghost",
  88. "--type", "rj45",
  89. "--speed", "10",
  90. "--ports", "2"
  91. );
  92. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  93. }
  94. }