SwitchErrorTests.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using Tests.EndToEnd.Infra;
  2. using Xunit.Abstractions;
  3. namespace Tests.EndToEnd.SwitchTests;
  4. [Collection("Yaml CLI tests")]
  5. public class SwitchErrorTests(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_switch_returns_error() {
  19. await ExecuteAsync("switches", "add", "sw01");
  20. (var output, var _) = await ExecuteAsync("switches", "add", "sw01");
  21. Assert.Contains("already exists", output, StringComparison.OrdinalIgnoreCase);
  22. }
  23. [Fact]
  24. public async Task get_missing_switch_returns_error() {
  25. (var output, var _) = await ExecuteAsync("switches", "get", "ghost");
  26. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  27. }
  28. [Fact]
  29. public async Task set_missing_switch_returns_error() {
  30. (var output, var _) = await ExecuteAsync("switches", "set", "ghost", "--Model", "X");
  31. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  32. }
  33. [Fact]
  34. public async Task delete_missing_switch_returns_error() {
  35. (var output, var _) = await ExecuteAsync("switches", "del", "ghost");
  36. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  37. }
  38. // Port errors
  39. [Fact]
  40. public async Task port_add_missing_switch_returns_error() {
  41. (var output, var _) = await ExecuteAsync(
  42. "switches", "port", "add", "ghost",
  43. "--type", "rj45",
  44. "--speed", "1",
  45. "--count", "8"
  46. );
  47. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  48. }
  49. [Fact]
  50. public async Task port_set_invalid_index_returns_error() {
  51. await ExecuteAsync("switches", "add", "sw01");
  52. (var output, var _) = await ExecuteAsync(
  53. "switches", "port", "set", "sw01",
  54. "--index", "5",
  55. "--type", "rj45"
  56. );
  57. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  58. }
  59. [Fact]
  60. public async Task port_del_invalid_index_returns_error() {
  61. await ExecuteAsync("switches", "add", "sw01");
  62. (var output, var _) = await ExecuteAsync(
  63. "switches", "port", "del", "sw01",
  64. "--index", "3"
  65. );
  66. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  67. }
  68. }