@@ -353,18 +353,33 @@ public async Task TestEmptySettingsAsync()
353353 }
354354
355355 [ Fact ]
356- public void TestUnexpectedExceptionNotCaught ( )
356+ public async Task TestUnexpectedExceptionNotCaughtAsync ( )
357357 {
358- var analysisContext = new AnalysisContextMissingOptions ( ) ;
359- var analyzer = new SA0002InvalidSettingsFile ( ) ;
360- analyzer . Initialize ( analysisContext ) ;
361- Assert . NotNull ( analysisContext . CompilationAction ) ;
362-
363- var additionalFiles = ImmutableArray . Create < AdditionalText > ( new InvalidAdditionalText ( ) ) ;
364- Assert . Null ( additionalFiles [ 0 ] . Path ) ;
365- Assert . Null ( additionalFiles [ 0 ] . GetText ( CancellationToken . None ) ) ;
366- var context = new CompilationAnalysisContext ( compilation : null , options : new AnalyzerOptions ( additionalFiles ) , reportDiagnostic : null , isSupportedDiagnostic : null , cancellationToken : CancellationToken . None ) ;
367- Assert . Throws < ArgumentNullException > ( ( ) => analysisContext . CompilationAction ( context ) ) ;
358+ await new CSharpTest
359+ {
360+ TestSources = { string . Empty } ,
361+ SolutionTransforms =
362+ {
363+ // Run additional validation here with access to a Compilation
364+ ( solution , projectId ) =>
365+ {
366+ var compilation = solution . GetProject ( projectId ) . GetCompilationAsync ( CancellationToken . None ) . GetAwaiter ( ) . GetResult ( ) ;
367+
368+ var analysisContext = new AnalysisContextMissingOptions ( ) ;
369+ var analyzer = new SA0002InvalidSettingsFile ( ) ;
370+ analyzer . Initialize ( analysisContext ) ;
371+ Assert . NotNull ( analysisContext . CompilationAction ) ;
372+
373+ var additionalFiles = ImmutableArray . Create < AdditionalText > ( new InvalidAdditionalText ( ) ) ;
374+ Assert . Null ( additionalFiles [ 0 ] . Path ) ;
375+ Assert . Null ( additionalFiles [ 0 ] . GetText ( CancellationToken . None ) ) ;
376+ var context = new CompilationAnalysisContext ( compilation , options : new AnalyzerOptions ( additionalFiles ) , reportDiagnostic : null , isSupportedDiagnostic : null , cancellationToken : CancellationToken . None ) ;
377+ Assert . Throws < ArgumentNullException > ( ( ) => analysisContext . CompilationAction ( context ) ) ;
378+
379+ return solution ;
380+ } ,
381+ } ,
382+ } . RunAsync ( CancellationToken . None ) . ConfigureAwait ( false ) ;
368383 }
369384
370385 private class InvalidAdditionalText : AdditionalText
0 commit comments