public static AnalyzerActions CreateSpyActions(SpyAnalyzer spy) => new AnalyzerActions { CodeBlockAction = context => spy.CodeBlockActionHistory.Add(context.CodeBlock), CodeBlockStartAction = context => spy.CodeBlockStartActionHistory.Add(context.CodeBlock), CompilationAction = context => spy.CompilationActionHistory.Add(context.Compilation), CompilationStartAction = context => spy.CompilationStartActionHistory.Add(context.Compilation), OperationAction = context => spy.OperationActionHistory.Add(context.Operation), OperationBlockAction = context => spy.OperationBlockActionHistory.Add(context.OperationBlocks), OperationBlockStartAction = context => spy.OperationBlockStartActionHistory.Add(context.OperationBlocks), SemanticModelAction = context => spy.SemanticModelActionHistory.Add(context.SemanticModel), SymbolAction = context => spy.SymbolActionHistory.Add(context.Symbol), SymbolStartAction = context => spy.SymbolStartActionHistory.Add(context.Symbol), SyntaxNodeAction = context => spy.SyntaxNodeActionHistory.Add(context.Node), SyntaxTreeAction = context => spy.SyntaxTreeActionHistory.Add(context.Tree) };
public async Task WhenGivenAnyCodes_RecordAllActionHistory() { var spy = new SpyAnalyzer(); var builder = new StringBuilder(); var failed = false; await DiagnosticAnalyzerRunner.Run(spy, ExampleCode.DiagnosticsFreeClassLibrary); if (0 == spy.CodeBlockActionHistory.Count) { failed = true; builder.AppendLine(nameof(spy.CodeBlockActionHistory)); } if (0 == spy.CodeBlockStartActionHistory.Count) { failed = true; builder.AppendLine(nameof(spy.CodeBlockStartActionHistory)); } if (0 == spy.CompilationActionHistory.Count) { failed = true; builder.AppendLine(nameof(spy.CompilationActionHistory)); } if (0 == spy.CompilationStartActionHistory.Count) { failed = true; builder.AppendLine(nameof(spy.CompilationStartActionHistory)); } if (0 == spy.OperationActionHistory.Count) { failed = true; builder.AppendLine(nameof(spy.OperationActionHistory)); } if (0 == spy.OperationBlockActionHistory.Count) { failed = true; builder.AppendLine(nameof(spy.OperationBlockActionHistory)); } if (0 == spy.OperationBlockStartActionHistory.Count) { failed = true; builder.AppendLine(nameof(spy.OperationBlockStartActionHistory)); } if (0 == spy.SemanticModelActionHistory.Count) { failed = true; builder.AppendLine(nameof(spy.SemanticModelActionHistory)); } if (0 == spy.SymbolActionHistory.Count) { failed = true; builder.AppendLine(nameof(spy.SymbolActionHistory)); } if (0 == spy.SymbolStartActionHistory.Count) { failed = true; builder.AppendLine(nameof(spy.SymbolStartActionHistory)); } if (0 == spy.SyntaxNodeActionHistory.Count) { failed = true; builder.AppendLine(nameof(spy.SyntaxNodeActionHistory)); } if (0 == spy.SyntaxTreeActionHistory.Count) { failed = true; builder.AppendLine(nameof(spy.SyntaxTreeActionHistory)); } Assert.IsFalse(failed, builder.ToString()); }