99using Microsoft . CodeAnalysis . Razor . CodeActions . Models ;
1010using Microsoft . CodeAnalysis . Razor . CodeActions . Razor ;
1111using Microsoft . CodeAnalysis . Razor . Formatting ;
12+ using Microsoft . CodeAnalysis . Razor . Protocol ;
1213using Microsoft . CodeAnalysis . Testing ;
1314using Microsoft . VisualStudio . LanguageServer . Protocol ;
1415using Xunit ;
@@ -18,11 +19,6 @@ namespace Microsoft.AspNetCore.Razor.LanguageServer.CodeActions;
1819
1920public class CodeActionEndToEndTest ( ITestOutputHelper testOutput ) : CodeActionEndToEndTestBase ( testOutput )
2021{
21- private const string GenerateEventHandlerTitle = "Generate Event Handler 'DoesNotExist'" ;
22- private const string GenerateAsyncEventHandlerTitle = "Generate Async Event Handler 'DoesNotExist'" ;
23- private const string GenerateEventHandlerReturnType = "void" ;
24- private const string GenerateAsyncEventHandlerReturnType = "global::System.Threading.Tasks.Task" ;
25-
2622 #region CSharp CodeAction Tests
2723
2824 [ Fact ]
@@ -443,7 +439,7 @@ public async Task Handle_GenerateMethod_NoCodeBlock_NonEmptyTrailingLine(string
443439 var expected = $$ """
444440 <button @onclick="DoesNotExist"></button>
445441 @code {
446- private {{ GenerateEventHandlerReturnType }} DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
442+ private void DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
447443 {
448444 throw new global::System.NotImplementedException();
449445 }
@@ -452,7 +448,7 @@ public async Task Handle_GenerateMethod_NoCodeBlock_NonEmptyTrailingLine(string
452448
453449 await ValidateCodeActionAsync ( input ,
454450 expected ,
455- GenerateEventHandlerTitle ,
451+ LanguageServerConstants . CodeActions . GenerateEventHandler ,
456452 razorCodeActionProviders : [ new GenerateMethodCodeActionProvider ( ) ] ,
457453 codeActionResolversCreator : CreateRazorCodeActionResolvers ,
458454 diagnostics : [ new Diagnostic ( ) { Code = "CS0103" , Message = "The name 'DoesNotExist' does not exist in the current context" } ] ) ;
@@ -473,7 +469,7 @@ public async Task Handle_GenerateMethod_Action(string cursorAndMethodName)
473469 @addTagHelper TestComponent, Microsoft.AspNetCore.Components
474470 <TestComponent OnDragStart="DoesNotExist" />
475471 @code {
476- private {{ GenerateEventHandlerReturnType }} DoesNotExist(global::Microsoft.AspNetCore.Components.Web.DragEventArgs args)
472+ private void DoesNotExist(global::Microsoft.AspNetCore.Components.Web.DragEventArgs args)
477473 {
478474 throw new global::System.NotImplementedException();
479475 }
@@ -482,7 +478,7 @@ public async Task Handle_GenerateMethod_Action(string cursorAndMethodName)
482478
483479 await ValidateCodeActionAsync ( input ,
484480 expected ,
485- GenerateEventHandlerTitle ,
481+ LanguageServerConstants . CodeActions . GenerateEventHandler ,
486482 razorCodeActionProviders : [ new GenerateMethodCodeActionProvider ( ) ] ,
487483 codeActionResolversCreator : CreateRazorCodeActionResolvers ,
488484 diagnostics : [ new Diagnostic ( ) { Code = "CS0103" , Message = "The name 'DoesNotExist' does not exist in the current context" } ] ) ;
@@ -503,7 +499,7 @@ public async Task Handle_GenerateMethod_GenericAction(string cursorAndMethodName
503499 @addTagHelper TestGenericComponent, Microsoft.AspNetCore.Components
504500 <TestGenericComponent TItem="string" OnDragStart="DoesNotExist" />
505501 @code {
506- private {{ GenerateEventHandlerReturnType }} DoesNotExist(global::Microsoft.AspNetCore.Components.Web.DragEventArgs<string> args)
502+ private void DoesNotExist(global::Microsoft.AspNetCore.Components.Web.DragEventArgs<string> args)
507503 {
508504 throw new global::System.NotImplementedException();
509505 }
@@ -512,7 +508,7 @@ public async Task Handle_GenerateMethod_GenericAction(string cursorAndMethodName
512508
513509 await ValidateCodeActionAsync ( input ,
514510 expected ,
515- GenerateEventHandlerTitle ,
511+ LanguageServerConstants . CodeActions . GenerateEventHandler ,
516512 razorCodeActionProviders : [ new GenerateMethodCodeActionProvider ( ) ] ,
517513 codeActionResolversCreator : CreateRazorCodeActionResolvers ,
518514 diagnostics : [ new Diagnostic ( ) { Code = "CS0103" , Message = "The name 'DoesNotExist' does not exist in the current context" } ] ) ;
@@ -532,7 +528,7 @@ public async Task Handle_GenerateMethod_NoCodeBlock_EmptyTrailingLine(string cur
532528 var expected = $$ """
533529 <button @onclick="DoesNotExist"></button>
534530 @code {
535- private {{ GenerateEventHandlerReturnType }} DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
531+ private void DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
536532 {
537533 throw new global::System.NotImplementedException();
538534 }
@@ -541,7 +537,7 @@ public async Task Handle_GenerateMethod_NoCodeBlock_EmptyTrailingLine(string cur
541537
542538 await ValidateCodeActionAsync ( input ,
543539 expected ,
544- GenerateEventHandlerTitle ,
540+ LanguageServerConstants . CodeActions . GenerateEventHandler ,
545541 razorCodeActionProviders : [ new GenerateMethodCodeActionProvider ( ) ] ,
546542 codeActionResolversCreator : CreateRazorCodeActionResolvers ,
547543 diagnostics : [ new Diagnostic ( ) { Code = "CS0103" , Message = "The name 'DoesNotExist' does not exist in the current context" } ] ) ;
@@ -562,7 +558,7 @@ public async Task Handle_GenerateMethod_NoCodeBlock_WhitespaceTrailingLine(strin
562558 <button @onclick="DoesNotExist"></button>
563559
564560 @code {
565- private {{ GenerateEventHandlerReturnType }} DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
561+ private void DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
566562 {
567563 throw new global::System.NotImplementedException();
568564 }
@@ -571,7 +567,7 @@ public async Task Handle_GenerateMethod_NoCodeBlock_WhitespaceTrailingLine(strin
571567
572568 await ValidateCodeActionAsync ( input ,
573569 expected ,
574- GenerateEventHandlerTitle ,
570+ LanguageServerConstants . CodeActions . GenerateEventHandler ,
575571 razorCodeActionProviders : [ new GenerateMethodCodeActionProvider ( ) ] ,
576572 codeActionResolversCreator : CreateRazorCodeActionResolvers ,
577573 diagnostics : [ new Diagnostic ( ) { Code = "CS0103" , Message = "The name 'DoesNotExist' does not exist in the current context" } ] ) ;
@@ -590,7 +586,7 @@ public async Task Handle_GenerateAsyncMethod_NoCodeBlock(string cursorAndMethodN
590586 var expected = $$ """
591587 <button @onclick="DoesNotExist"></button>
592588 @code {
593- private {{ GenerateAsyncEventHandlerReturnType }} DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
589+ private global::System.Threading.Tasks.Task DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
594590 {
595591 throw new global::System.NotImplementedException();
596592 }
@@ -599,7 +595,7 @@ public async Task Handle_GenerateAsyncMethod_NoCodeBlock(string cursorAndMethodN
599595
600596 await ValidateCodeActionAsync ( input ,
601597 expected ,
602- GenerateAsyncEventHandlerTitle ,
598+ LanguageServerConstants . CodeActions . GenerateAsyncEventHandler ,
603599 razorCodeActionProviders : [ new GenerateMethodCodeActionProvider ( ) ] ,
604600 codeActionResolversCreator : CreateRazorCodeActionResolvers ,
605601 diagnostics : [ new Diagnostic ( ) { Code = "CS0103" , Message = "The name 'DoesNotExist' does not exist in the current context" } ] ) ;
@@ -619,7 +615,7 @@ public async Task Handle_GenerateMethod_Empty_CodeBlock(string codeBlock)
619615 var expected = $$ """
620616 <button @onclick="DoesNotExist"></button>
621617 @code {
622- private {{ GenerateEventHandlerReturnType }} DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
618+ private void DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
623619 {
624620 throw new global::System.NotImplementedException();
625621 }
@@ -628,7 +624,7 @@ public async Task Handle_GenerateMethod_Empty_CodeBlock(string codeBlock)
628624
629625 await ValidateCodeActionAsync ( input ,
630626 expected ,
631- GenerateEventHandlerTitle ,
627+ LanguageServerConstants . CodeActions . GenerateEventHandler ,
632628 razorCodeActionProviders : [ new GenerateMethodCodeActionProvider ( ) ] ,
633629 codeActionResolversCreator : CreateRazorCodeActionResolvers ,
634630 diagnostics : [ new Diagnostic ( ) { Code = "CS0103" , Message = "The name 'DoesNotExist' does not exist in the current context" } ] ) ;
@@ -648,7 +644,7 @@ public async Task Handle_GenerateAsyncMethod_Empty_CodeBlock(string codeBlock)
648644 var expected = $$ """
649645 <button @onclick="DoesNotExist"></button>
650646 @code {
651- private {{ GenerateAsyncEventHandlerReturnType }} DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
647+ private global::System.Threading.Tasks.Task DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
652648 {
653649 throw new global::System.NotImplementedException();
654650 }
@@ -657,17 +653,17 @@ public async Task Handle_GenerateAsyncMethod_Empty_CodeBlock(string codeBlock)
657653
658654 await ValidateCodeActionAsync ( input ,
659655 expected ,
660- GenerateAsyncEventHandlerTitle ,
656+ LanguageServerConstants . CodeActions . GenerateAsyncEventHandler ,
661657 razorCodeActionProviders : [ new GenerateMethodCodeActionProvider ( ) ] ,
662658 codeActionResolversCreator : CreateRazorCodeActionResolvers ,
663659 diagnostics : [ new Diagnostic ( ) { Code = "CS0103" , Message = "The name 'DoesNotExist' does not exist in the current context" } ] ) ;
664660 }
665661
666662 [ Theory ]
667- [ InlineData ( "" , GenerateEventHandlerReturnType , GenerateEventHandlerTitle ) ]
668- [ InlineData ( "\r \n " , GenerateEventHandlerReturnType , GenerateEventHandlerTitle ) ]
669- [ InlineData ( "" , GenerateAsyncEventHandlerReturnType , GenerateAsyncEventHandlerTitle ) ]
670- [ InlineData ( "\r \n " , GenerateAsyncEventHandlerReturnType , GenerateAsyncEventHandlerTitle ) ]
663+ [ InlineData ( "" , "void" , LanguageServerConstants . CodeActions . GenerateEventHandler ) ]
664+ [ InlineData ( "\r \n " , "void" , LanguageServerConstants . CodeActions . GenerateEventHandler ) ]
665+ [ InlineData ( "" , "global::System.Threading.Tasks.Task" , LanguageServerConstants . CodeActions . GenerateAsyncEventHandler ) ]
666+ [ InlineData ( "\r \n " , "global::System.Threading.Tasks.Task" , LanguageServerConstants . CodeActions . GenerateAsyncEventHandler ) ]
671667 public async Task Handle_GenerateMethod_Nonempty_CodeBlock ( string spacing , string returnType , string codeActionTitle )
672668 {
673669 var input = $$ """
@@ -722,7 +718,7 @@ public void Exists()
722718 {
723719 }
724720
725- private {{ GenerateAsyncEventHandlerReturnType }} DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
721+ private global::System.Threading.Tasks.Task DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
726722 {
727723 throw new global::System.NotImplementedException();
728724 }
@@ -731,7 +727,7 @@ public void Exists()
731727
732728 await ValidateCodeActionAsync ( input ,
733729 expected ,
734- GenerateAsyncEventHandlerTitle ,
730+ LanguageServerConstants . CodeActions . GenerateAsyncEventHandler ,
735731 razorCodeActionProviders : [ new GenerateMethodCodeActionProvider ( ) ] ,
736732 codeActionResolversCreator : CreateRazorCodeActionResolvers ,
737733 diagnostics : [ new Diagnostic ( ) { Code = "CS0103" , Message = "The name 'DoesNotExist' does not exist in the current context" } ] ) ;
@@ -766,8 +762,8 @@ public async Task Handle_GenerateMethod_SetEventParameter_DoesNothing(string par
766762 Assert . DoesNotContain (
767763 result ,
768764 e =>
769- ( ( RazorVSInternalCodeAction ) e . Value ! ) . Title == GenerateEventHandlerTitle
770- || ( ( RazorVSInternalCodeAction ) e . Value ! ) . Title == GenerateAsyncEventHandlerTitle ) ;
765+ ( ( RazorVSInternalCodeAction ) e . Value ! ) . Name == LanguageServerConstants . CodeActions . GenerateEventHandler
766+ || ( ( RazorVSInternalCodeAction ) e . Value ! ) . Name == LanguageServerConstants . CodeActions . GenerateAsyncEventHandler ) ;
771767 }
772768
773769 [ Theory ]
@@ -804,8 +800,8 @@ public void Exists()
804800 Assert . DoesNotContain (
805801 result ,
806802 e =>
807- ( ( RazorVSInternalCodeAction ) e . Value ! ) . Title == GenerateEventHandlerTitle
808- || ( ( RazorVSInternalCodeAction ) e . Value ! ) . Title == GenerateAsyncEventHandlerTitle ) ;
803+ ( ( RazorVSInternalCodeAction ) e . Value ! ) . Name == LanguageServerConstants . CodeActions . GenerateEventHandler
804+ || ( ( RazorVSInternalCodeAction ) e . Value ! ) . Name == LanguageServerConstants . CodeActions . GenerateAsyncEventHandler ) ;
809805 }
810806
811807 [ Theory ]
@@ -855,7 +851,7 @@ public async Task Handle_GenerateMethod_VaryIndentSize(bool insertSpaces, int ta
855851
856852 await ValidateCodeActionAsync ( input ,
857853 expected ,
858- "Generate Event Handler 'DoesNotExist'" ,
854+ LanguageServerConstants . CodeActions . GenerateEventHandler ,
859855 razorCodeActionProviders : [ new GenerateMethodCodeActionProvider ( ) ] ,
860856 codeActionResolversCreator : CreateRazorCodeActionResolvers ,
861857 optionsMonitor : optionsMonitor ,
@@ -890,7 +886,7 @@ namespace {{CodeBehindTestReplaceNamespace}}
890886 {
891887 public partial class test
892888 {{{spacingOrMethod}}
893- private {{ GenerateEventHandlerReturnType }} DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
889+ private void DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
894890 {
895891 throw new global::System.NotImplementedException();
896892 }
@@ -903,7 +899,7 @@ await ValidateCodeBehindFileAsync(
903899 initialCodeBehindContent ,
904900 expectedRazorContent ,
905901 expectedCodeBehindContent ,
906- GenerateEventHandlerTitle ) ;
902+ LanguageServerConstants . CodeActions . GenerateEventHandler ) ;
907903 }
908904
909905 [ Theory ]
@@ -934,7 +930,7 @@ namespace {{CodeBehindTestReplaceNamespace}}
934930 {
935931 public partial class test
936932 {{{spacingOrMethod}}
937- private {{ GenerateAsyncEventHandlerReturnType }} DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
933+ private global::System.Threading.Tasks.Task DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEventArgs args)
938934 {
939935 throw new global::System.NotImplementedException();
940936 }
@@ -947,7 +943,7 @@ await ValidateCodeBehindFileAsync(
947943 initialCodeBehindContent ,
948944 expectedRazorContent ,
949945 expectedCodeBehindContent ,
950- GenerateAsyncEventHandlerTitle ) ;
946+ LanguageServerConstants . CodeActions . GenerateAsyncEventHandler ) ;
951947 }
952948
953949 [ Theory ]
@@ -974,7 +970,7 @@ await ValidateCodeBehindFileAsync(
974970 initialCodeBehindContent ,
975971 expectedRazorContent ,
976972 initialCodeBehindContent ,
977- GenerateEventHandlerTitle ) ;
973+ LanguageServerConstants . CodeActions . GenerateEventHandler ) ;
978974 }
979975
980976 [ Fact ]
@@ -1011,7 +1007,7 @@ await ValidateCodeBehindFileAsync(
10111007 initialCodeBehindContent ,
10121008 expectedRazorContent ,
10131009 expectedCodeBehindContent ,
1014- GenerateEventHandlerTitle ) ;
1010+ LanguageServerConstants . CodeActions . GenerateEventHandler ) ;
10151011 }
10161012
10171013 [ Fact ]
@@ -1033,7 +1029,7 @@ private void DoesNotExist(global::Microsoft.AspNetCore.Components.Web.MouseEvent
10331029
10341030 await ValidateCodeActionAsync ( input ,
10351031 expected ,
1036- GenerateEventHandlerTitle ,
1032+ LanguageServerConstants . CodeActions . GenerateEventHandler ,
10371033 razorCodeActionProviders : [ new GenerateMethodCodeActionProvider ( ) ] ,
10381034 codeActionResolversCreator : CreateRazorCodeActionResolvers ,
10391035 diagnostics : [ new Diagnostic ( ) { Code = "CS0103" , Message = "The name 'DoesNotExist' does not exist in the current context" } ] ) ;
@@ -1047,7 +1043,7 @@ public async Task Handle_GenerateMethod_RefAttribute()
10471043 """ ;
10481044
10491045 await ValidateCodeActionAsync ( input ,
1050- GenerateEventHandlerTitle ,
1046+ LanguageServerConstants . CodeActions . GenerateEventHandler ,
10511047 razorCodeActionProviders : [ new GenerateMethodCodeActionProvider ( ) ] ,
10521048 codeActionResolversCreator : CreateRazorCodeActionResolvers ,
10531049 diagnostics : [ new Diagnostic ( ) { Code = "CS0103" , Message = "The name 'DoesNotExist' does not exist in the current context" } ] ) ;
0 commit comments