Skip to content

Commit 88b8749

Browse files
committed
refactor: Rename TestRenderer to BunitRenderer
1 parent c7be4d8 commit 88b8749

File tree

8 files changed

+33
-35
lines changed

8 files changed

+33
-35
lines changed

benchmark/bunit.benchmarks/BenchmarkBase.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,21 @@ public abstract class BenchmarkBase
1111
private static readonly ComponentParameterCollection EmptyParameter = new();
1212
private readonly ServiceCollection services = new();
1313

14-
protected TestRenderer Renderer { get; private set; } = default!;
14+
protected ITestRenderer Renderer { get; private set; } = default!;
1515

1616
[GlobalSetup]
1717
public void Setup()
1818
{
1919
RegisterServices(services);
2020

2121
var serviceProvider = services.BuildServiceProvider();
22-
Renderer = new TestRenderer(
23-
new RenderedComponentActivator(serviceProvider),
24-
new TestServiceProvider(services),
25-
new NullLoggerFactory());
22+
Renderer = serviceProvider.GetRequiredService<ITestRenderer>();
2623
}
2724

2825
[GlobalCleanup]
2926
public void Cleanup()
3027
{
3128
InternalCleanup();
32-
Renderer.Dispose();
3329
}
3430

3531
protected IRenderedComponent<TComponent> RenderComponent<TComponent>()

src/bunit/Extensions/TestServiceProviderExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ public static IServiceCollection AddDefaultTestContextServices(this IServiceColl
4747

4848
// bUnit specific services
4949
services.AddSingleton(testContext);
50-
services.AddSingleton<TestRenderer>();
51-
services.AddSingleton<Renderer>(s => s.GetRequiredService<TestRenderer>());
52-
services.AddSingleton<ITestRenderer>(s => s.GetRequiredService<TestRenderer>());
50+
services.AddSingleton<BunitRenderer>();
51+
services.AddSingleton<Renderer>(s => s.GetRequiredService<BunitRenderer>());
52+
services.AddSingleton<ITestRenderer>(s => s.GetRequiredService<BunitRenderer>());
5353
services.AddSingleton<HtmlComparer>();
5454
services.AddSingleton<BunitHtmlParser>();
5555
services.AddSingleton<IRenderedComponentActivator, RenderedComponentActivator>();

src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ public abstract class WaitForHelper<T> : IDisposable
1414
private readonly Func<(bool CheckPassed, T Content)> completeChecker;
1515
private readonly IRenderedFragment renderedFragment;
1616
private readonly ILogger<WaitForHelper<T>> logger;
17-
private readonly TestRenderer renderer;
17+
#pragma warning disable CA2213 // Handled by the container
18+
private readonly BunitRenderer renderer;
19+
#pragma warning restore CA2213
1820
private bool isDisposed;
1921
private int checkCount;
2022
private Exception? capturedException;
@@ -51,11 +53,11 @@ protected WaitForHelper(
5153
{
5254
this.renderedFragment = renderedFragment ?? throw new ArgumentNullException(nameof(renderedFragment));
5355
this.completeChecker = completeChecker ?? throw new ArgumentNullException(nameof(completeChecker));
54-
56+
5557
logger = renderedFragment.Services.CreateLogger<WaitForHelper<T>>();
56-
renderer = (TestRenderer)renderedFragment
58+
renderer = renderedFragment
5759
.Services
58-
.GetRequiredService<ITestRenderer>();
60+
.GetRequiredService<BunitRenderer>();
5961
checkPassedCompletionSource = new TaskCompletionSource<T>(TaskCreationOptions.RunContinuationsAsynchronously);
6062
timer = new Timer(_ =>
6163
{
@@ -125,7 +127,7 @@ private void InitializeWaiting()
125127
}
126128

127129
private Task<T> CreateWaitTask()
128-
{
130+
{
129131
// Two to failure conditions, that the renderer captures an unhandled
130132
// exception from a component or itself, or that the timeout is reached,
131133
// are executed on the renderers scheduler, to ensure that OnAfterRender

src/bunit/Rendering/BunitHtmlParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public sealed class BunitHtmlParser : IDisposable
2525

2626
/// <summary>
2727
/// Initializes a new instance of the <see cref="BunitHtmlParser"/> class
28-
/// with a AngleSharp context without a <see cref="TestRenderer"/> registered.
28+
/// with a AngleSharp context without a <see cref="BunitRenderer"/> registered.
2929
/// </summary>
3030
public BunitHtmlParser()
3131
: this(Configuration.Default.WithCss().With(new HtmlComparer())) { }

src/bunit/Rendering/TestRenderer.cs renamed to src/bunit/Rendering/BunitRenderer.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ namespace Bunit.Rendering;
66
/// <summary>
77
/// Represents a bUnit <see cref="ITestRenderer"/> used to render Blazor components and fragments during bUnit tests.
88
/// </summary>
9-
public class TestRenderer : Renderer, ITestRenderer
9+
internal sealed class BunitRenderer : Renderer, ITestRenderer
1010
{
1111
private readonly object renderTreeUpdateLock = new();
1212
private readonly SynchronizationContext? usersSyncContext = SynchronizationContext.Current;
1313
private readonly Dictionary<int, IRenderedFragment> renderedComponents = new();
1414
private readonly List<int> rootComponentIds = new();
15-
private readonly ILogger<TestRenderer> logger;
15+
private readonly ILogger<BunitRenderer> logger;
1616
private readonly IRenderedComponentActivator activator;
1717
private TaskCompletionSource<Exception> unhandledExceptionTsc = new(TaskCreationOptions.RunContinuationsAsynchronously);
1818
private Exception? capturedUnhandledException;
@@ -29,23 +29,23 @@ public class TestRenderer : Renderer, ITestRenderer
2929
internal int RenderCount { get; private set; }
3030

3131
/// <summary>
32-
/// Initializes a new instance of the <see cref="TestRenderer"/> class.
32+
/// Initializes a new instance of the <see cref="BunitRenderer"/> class.
3333
/// </summary>
34-
public TestRenderer(IRenderedComponentActivator renderedComponentActivator, TestServiceProvider services, ILoggerFactory loggerFactory)
34+
public BunitRenderer(IRenderedComponentActivator renderedComponentActivator, TestServiceProvider services, ILoggerFactory loggerFactory)
3535
: base(services, loggerFactory)
3636
{
37-
logger = loggerFactory.CreateLogger<TestRenderer>();
37+
logger = loggerFactory.CreateLogger<BunitRenderer>();
3838
activator = renderedComponentActivator;
3939
ElementReferenceContext = new WebElementReferenceContext(services.GetRequiredService<IJSRuntime>());
4040
}
4141

4242
/// <summary>
43-
/// Initializes a new instance of the <see cref="TestRenderer"/> class.
43+
/// Initializes a new instance of the <see cref="BunitRenderer"/> class.
4444
/// </summary>
45-
public TestRenderer(IRenderedComponentActivator renderedComponentActivator, TestServiceProvider services, ILoggerFactory loggerFactory, IComponentActivator componentActivator)
45+
public BunitRenderer(IRenderedComponentActivator renderedComponentActivator, TestServiceProvider services, ILoggerFactory loggerFactory, IComponentActivator componentActivator)
4646
: base(services, loggerFactory, componentActivator)
4747
{
48-
logger = loggerFactory.CreateLogger<TestRenderer>();
48+
logger = loggerFactory.CreateLogger<BunitRenderer>();
4949
activator = renderedComponentActivator;
5050
ElementReferenceContext = new WebElementReferenceContext(services.GetRequiredService<IJSRuntime>());
5151
}
@@ -183,7 +183,7 @@ protected override Task UpdateDisplayAsync(in RenderBatch renderBatch)
183183
// There is no guarantee a caller/test framework has set a sync context.
184184
usersSyncContext.Send(static (state) =>
185185
{
186-
var (renderBatch, renderer) = ((RenderBatch, TestRenderer))state!;
186+
var (renderBatch, renderer) = ((RenderBatch, BunitRenderer))state!;
187187
renderer.UpdateDisplay(renderBatch);
188188
}, (renderBatch, this));
189189
}

src/bunit/Rendering/ITestRenderer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ namespace Bunit.Rendering;
33
/// <summary>
44
/// Represents a generalized Blazor renderer for testing purposes.
55
/// </summary>
6-
public interface ITestRenderer
6+
public interface ITestRenderer : IDisposable
77
{
88
/// <summary>
99
/// Gets a <see cref="Task{Exception}"/>, which completes when an unhandled exception

src/bunit/Rendering/TestRendererLoggerExtensions.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,27 +28,27 @@ internal static class TestRendererLoggerExtensions
2828
private static readonly Action<ILogger, string, string, Exception> UnhandledException
2929
= LoggerMessage.Define<string, string>(LogLevel.Error, new EventId(30, "LogUnhandledException"), "An unhandled exception happened during rendering: {Message}" + Environment.NewLine + "{StackTrace}");
3030

31-
internal static void LogProcessingPendingRenders(this ILogger<TestRenderer> logger)
31+
internal static void LogProcessingPendingRenders(this ILogger<BunitRenderer> logger)
3232
=> ProcessingPendingRenders(logger, null);
3333

34-
internal static void LogNewRenderBatchReceived(this ILogger<TestRenderer> logger)
34+
internal static void LogNewRenderBatchReceived(this ILogger<BunitRenderer> logger)
3535
=> NewRenderBatchReceived(logger, null);
3636

37-
internal static void LogComponentDisposed(this ILogger<TestRenderer> logger, int componentId)
37+
internal static void LogComponentDisposed(this ILogger<BunitRenderer> logger, int componentId)
3838
=> ComponentDisposed(logger, componentId, null);
3939

40-
internal static void LogComponentRendered(this ILogger<TestRenderer> logger, int componentId)
40+
internal static void LogComponentRendered(this ILogger<BunitRenderer> logger, int componentId)
4141
=> ComponentRendered(logger, componentId, null);
4242

43-
internal static void LogChangedComponentsMarkupUpdated(this ILogger<TestRenderer> logger)
43+
internal static void LogChangedComponentsMarkupUpdated(this ILogger<BunitRenderer> logger)
4444
=> ChangedComponentsMarkupUpdated(logger, null);
4545

46-
internal static void LogAsyncInitialRender(this ILogger<TestRenderer> logger)
46+
internal static void LogAsyncInitialRender(this ILogger<BunitRenderer> logger)
4747
=> AsyncInitialRender(logger, null);
4848

49-
internal static void LogInitialRenderCompleted(this ILogger<TestRenderer> logger, int componentId)
49+
internal static void LogInitialRenderCompleted(this ILogger<BunitRenderer> logger, int componentId)
5050
=> InitialRenderCompleted(logger, componentId, null);
5151

52-
internal static void LogUnhandledException(this ILogger<TestRenderer> logger, Exception exception)
52+
internal static void LogUnhandledException(this ILogger<BunitRenderer> logger, Exception exception)
5353
=> UnhandledException(logger, exception.Message, exception.StackTrace ?? string.Empty, exception);
5454
}

tests/bunit.tests/Rendering/TestRendererTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ public async Task Test061()
318318
[Fact(DisplayName = "When test renderer is disposed, so is all rendered components")]
319319
public void Test070()
320320
{
321-
var sut = (TestRenderer)Services.GetRequiredService<ITestRenderer>();
321+
var sut = (BunitRenderer)Services.GetRequiredService<ITestRenderer>();
322322
var cut = sut.RenderComponent<NoChildNoParams>();
323323

324324
sut.Dispose();
@@ -419,7 +419,7 @@ public void Test1000()
419419
{
420420
var activatorMock = new Mock<IComponentActivator>();
421421
activatorMock.Setup(x => x.CreateInstance(typeof(Wrapper))).Returns(new Wrapper());
422-
using var renderer = new TestRenderer(
422+
using var renderer = new BunitRenderer(
423423
Services.GetService<IRenderedComponentActivator>(),
424424
Services,
425425
NullLoggerFactory.Instance,

0 commit comments

Comments
 (0)