66using System . Xml ;
77using Microsoft . AspNetCore . Components ;
88using Microsoft . AspNetCore . Components . Rendering ;
9- using Microsoft . AspNetCore . Components . RenderTree ;
109using Microsoft . Extensions . DependencyInjection ;
10+ using Microsoft . Extensions . Logging . Abstractions ;
1111
1212namespace Egil . RazorComponents . Testing
1313{
1414 public class RazerComponentTestRenderer : IDisposable
1515 {
1616 private const string RenderResultsElement = "RenderResults" ;
1717
18- private readonly IDispatcher _dispatcher = Renderer . CreateDefaultDispatcher ( ) ;
1918 private readonly Func < string , string > _encoder = ( t ) => HtmlEncoder . Default . Encode ( t ) ;
2019
2120 public bool HasRendered { get ; private set ; } = false ;
@@ -28,18 +27,17 @@ public void Dispose() { }
2827
2928 public void Render ( RenderFragment renderFragment , IServiceCollection services )
3029 {
31- var paramCollection = ParameterCollection . FromDictionary ( new Dictionary < string , object > ( ) { { RenderTreeBuilder . ChildContent , renderFragment } } ) ;
32-
3330 using var serviceProvider = services . BuildServiceProvider ( ) ;
34- using var htmlRenderer = new HtmlRenderer ( serviceProvider , _encoder , _dispatcher ) ;
35- RenderResults = GetTestResults ( htmlRenderer , paramCollection ) ;
31+ using var htmlRenderer = new HtmlRenderer ( serviceProvider , NullLoggerFactory . Instance , _encoder ) ;
32+ RenderResults = GetTestResults ( htmlRenderer , renderFragment ) ;
3633
3734 HasRendered = true ;
3835 }
3936
40- private IReadOnlyList < TestRenderResult > GetTestResults ( HtmlRenderer htmlRenderer , ParameterCollection parameterCollection )
37+ private IReadOnlyList < TestRenderResult > GetTestResults ( HtmlRenderer htmlRenderer , RenderFragment renderFragment )
4138 {
42- var renderTask = _dispatcher . InvokeAsync ( ( ) => htmlRenderer . RenderComponentAsync < RenderFragmentWrapper > ( parameterCollection ) ) ;
39+ var parameters = ParameterView . FromDictionary ( new Dictionary < string , object > ( ) { { "ChildContent" , renderFragment } } ) ;
40+ var renderTask = htmlRenderer . Dispatcher . InvokeAsync ( ( ) => htmlRenderer . RenderComponentAsync < RenderFragmentWrapper > ( parameters ) ) ;
4341 var renderResult = GetResult ( renderTask ) ;
4442 return ProcessRenderResult ( string . Concat ( renderResult . Tokens ) ) ;
4543 }
0 commit comments