Table of Contents

Class BunitRenderer

Namespace
Bunit.Rendering
Assembly
bunit.dll

Represents a bUnit BunitRenderer used to render Blazor components and fragments during bUnit tests.

public sealed class BunitRenderer : Renderer, IDisposable, IAsyncDisposable
Inheritance
BunitRenderer
Implements
Inherited Members
Extension Methods

Constructors

BunitRenderer(BunitServiceProvider, ILoggerFactory)

Initializes a new instance of the BunitRenderer class.

public BunitRenderer(BunitServiceProvider services, ILoggerFactory loggerFactory)

Parameters

services BunitServiceProvider
loggerFactory ILoggerFactory

BunitRenderer(BunitServiceProvider, ILoggerFactory, IComponentActivator)

Initializes a new instance of the BunitRenderer class.

public BunitRenderer(BunitServiceProvider services, ILoggerFactory loggerFactory, IComponentActivator componentActivator)

Parameters

services BunitServiceProvider
loggerFactory ILoggerFactory
componentActivator IComponentActivator

Properties

Dispatcher

Gets the Dispatcher associated with this Renderer.

public override Dispatcher Dispatcher { get; }

Property Value

Dispatcher

RendererInfo

Gets the RendererInfo associated with this Renderer.

protected override RendererInfo RendererInfo { get; }

Property Value

RendererInfo

UnhandledException

Gets a Task<TResult>, which completes when an unhandled exception is thrown during the rendering of a component, that is caught by the renderer.

public Task<Exception> UnhandledException { get; }

Property Value

Task<Exception>

Methods

AddPendingTask(ComponentState?, Task)

Notifies the renderer that there is a pending task associated with a component. The renderer is regarded as quiescent when all such tasks have completed.

protected override void AddPendingTask(ComponentState? componentState, Task task)

Parameters

componentState ComponentState

The ComponentState for the component associated with this pending task, if any.

task Task

The Task.

CreateComponentState(int, IComponent, ComponentState?)

Creates a ComponentState instance to track state associated with a newly-instantiated component. This is called before the component is initialized and tracked within the Renderer. Subclasses may override this method to use their own subclasses of ComponentState.

protected override ComponentState CreateComponentState(int componentId, IComponent component, ComponentState? parentComponentState)

Parameters

componentId int

The ID of the newly-created component.

component IComponent

The component instance.

parentComponentState ComponentState

The ComponentState associated with the parent component, or null if this is a root component.

Returns

ComponentState

A ComponentState for the new component.

DispatchEventAsync(ulong, EventFieldInfo, EventArgs)

Notifies the renderer that an event has occurred.

public Task DispatchEventAsync(ulong eventHandlerId, EventFieldInfo fieldInfo, EventArgs eventArgs)

Parameters

eventHandlerId ulong

The AttributeEventHandlerId value from the original event attribute.

fieldInfo EventFieldInfo

Information that the renderer can use to update the state of the existing render tree to match the UI.

eventArgs EventArgs

Arguments to be passed to the event handler.

Returns

Task

A Task which will complete once all asynchronous processing related to the event has completed.

DispatchEventAsync(ulong, EventFieldInfo, EventArgs, bool)

Notifies the renderer that an event has occurred.

public Task DispatchEventAsync(ulong eventHandlerId, EventFieldInfo fieldInfo, EventArgs eventArgs, bool ignoreUnknownEventHandlers)

Parameters

eventHandlerId ulong

The AttributeEventHandlerId value from the original event attribute.

fieldInfo EventFieldInfo

Information that the renderer can use to update the state of the existing render tree to match the UI.

eventArgs EventArgs

Arguments to be passed to the event handler.

ignoreUnknownEventHandlers bool

Set to true to ignore the UnknownEventHandlerIdException.

Returns

Task

A Task which will complete once all asynchronous processing related to the event has completed.

Dispose(bool)

Releases all resources currently used by this Renderer instance.

protected override void Dispose(bool disposing)

Parameters

disposing bool

true if this method is being invoked by Dispose(), otherwise false.

DisposeComponents()

Disposes all components rendered by the BunitRenderer.

public Task DisposeComponents()

Returns

Task

FindComponent<TComponent>(IRenderedComponent<IComponent>)

Performs a depth-first search for the first TComponent child component of the parentComponent.

public IRenderedComponent<TComponent> FindComponent<TComponent>(IRenderedComponent<IComponent> parentComponent) where TComponent : IComponent

Parameters

parentComponent IRenderedComponent<IComponent>

Parent component to search.

Returns

IRenderedComponent<TComponent>

Type Parameters

TComponent

Type of component to find.

FindComponents<TComponent>(IRenderedComponent<IComponent>)

Performs a depth-first search for all TComponent child components of the parentComponent.

public IReadOnlyList<IRenderedComponent<TComponent>> FindComponents<TComponent>(IRenderedComponent<IComponent> parentComponent) where TComponent : IComponent

Parameters

parentComponent IRenderedComponent<IComponent>

Parent component to search.

Returns

IReadOnlyList<IRenderedComponent<TComponent>>

Type Parameters

TComponent

Type of components to find.

GetComponentRenderMode(IComponent)

Gets the IComponentRenderMode for a given component if available.

protected override IComponentRenderMode? GetComponentRenderMode(IComponent component)

Parameters

component IComponent

The component type

Returns

IComponentRenderMode

HandleException(Exception)

Allows derived types to handle exceptions during rendering. Defaults to rethrowing the original exception.

protected override void HandleException(Exception exception)

Parameters

exception Exception

The Exception.

ProcessPendingRender()

Processes pending renders requests from components if there are any.

protected override void ProcessPendingRender()

RenderFragment(RenderFragment)

Renders the renderFragment.

public IRenderedComponent<IComponent> RenderFragment(RenderFragment renderFragment)

Parameters

renderFragment RenderFragment

The RenderFragment to render.

Returns

IRenderedComponent<IComponent>

A IRenderedComponent<TComponent> that provides access to the rendered renderFragment.

Render<TComponent>(Action<ComponentParameterCollectionBuilder<TComponent>>?)

Renders a TComponent with the parameters build with the parameterBuilder passed to it.

public IRenderedComponent<TComponent> Render<TComponent>(Action<ComponentParameterCollectionBuilder<TComponent>>? parameterBuilder = null) where TComponent : IComponent

Parameters

parameterBuilder Action<ComponentParameterCollectionBuilder<TComponent>>

The a builder to create parameters to pass to the component.

Returns

IRenderedComponent<TComponent>

A RenderedComponent<TComponent> that provides access to the rendered component.

Type Parameters

TComponent

The type of component to render.

ResolveComponentForRenderMode(Type, int?, IComponentActivator, IComponentRenderMode)

Determines how to handle an IComponentRenderMode when obtaining a component instance. This is only called when a render mode is specified either at the call site or on the component type.

Subclasses may override this method to return a component of a different type, or throw, depending on whether the renderer supports the render mode and how it implements that support.

protected override IComponent ResolveComponentForRenderMode(Type componentType, int? parentComponentId, IComponentActivator componentActivator, IComponentRenderMode renderMode)

Parameters

componentType Type

The type of component that was requested.

parentComponentId int?

The parent component ID, or null if it is a root component.

componentActivator IComponentActivator

An IComponentActivator that should be used when instantiating component objects.

renderMode IComponentRenderMode

The IComponentRenderMode declared on componentType or at the call site (for example, by the parent component).

Returns

IComponent

An IComponent instance.

SetRendererInfo(RendererInfo?)

public void SetRendererInfo(RendererInfo? rendererInfo)

Parameters

rendererInfo RendererInfo

UpdateDisplayAsync(in RenderBatch)

Updates the visible UI.

protected override Task UpdateDisplayAsync(in RenderBatch renderBatch)

Parameters

renderBatch RenderBatch

The changes to the UI since the previous call.

Returns

Task

A Task to represent the UI update process.

.NET Foundation

Supported by the .NET Foundation.