HandledEventArgsAnalyzerTests.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using Terminal.Gui.Input;
  2. using Terminal.Gui.Views;
  3. namespace Terminal.Gui.Analyzers.Tests;
  4. public class HandledEventArgsAnalyzerTests
  5. {
  6. [Theory]
  7. [InlineData("e")]
  8. [InlineData ("args")]
  9. public async Task Should_ReportDiagnostic_When_EHandledNotSet_Lambda (string paramName)
  10. {
  11. var originalCode = $$"""
  12. using Terminal.Gui.Views;
  13. class TestClass
  14. {
  15. void Setup()
  16. {
  17. var b = new Button();
  18. b.Accepting += (s, {{paramName}}) =>
  19. {
  20. // Forgot {{paramName}}.Handled = true;
  21. };
  22. }
  23. }
  24. """;
  25. await new ProjectBuilder ()
  26. .WithSourceCode (originalCode)
  27. .WithAnalyzer (new HandledEventArgsAnalyzer ())
  28. .ValidateAsync ();
  29. }
  30. [Theory]
  31. [InlineData ("e")]
  32. [InlineData ("args")]
  33. public async Task Should_ReportDiagnostic_When_EHandledNotSet_Method (string paramName)
  34. {
  35. var originalCode = $$"""
  36. using Terminal.Gui.Views;
  37. using Terminal.Gui.Input;
  38. class TestClass
  39. {
  40. void Setup()
  41. {
  42. var b = new Button();
  43. b.Accepting += BOnAccepting;
  44. }
  45. private void BOnAccepting (object? sender, CommandEventArgs {{paramName}})
  46. {
  47. }
  48. }
  49. """;
  50. await new ProjectBuilder ()
  51. .WithSourceCode (originalCode)
  52. .WithAnalyzer (new HandledEventArgsAnalyzer ())
  53. .ValidateAsync ();
  54. }
  55. }