Table of Contents

Class TestingHelper

Namespace
Silverback.Testing
Assembly
Silverback.Integration.Testing.dll

Exposes some helper methods and shortcuts to simplify testing.

public abstract class TestingHelper : ITestingHelper
Inheritance
TestingHelper
Implements
Derived
Inherited Members

Constructors

TestingHelper(IServiceProvider, ILogger<TestingHelper>)

Initializes a new instance of the TestingHelper class.

protected TestingHelper(IServiceProvider serviceProvider, ILogger<TestingHelper> logger)

Parameters

serviceProvider IServiceProvider

The IServiceProvider.

logger ILogger<TestingHelper>

The ILogger<TCategoryName>.

Properties

Spy

Gets the IIntegrationSpy.

public IIntegrationSpy Spy { get; }

Property Value

IIntegrationSpy

Remarks

The IIntegrationSpy must be enabled calling AddIntegrationSpy or AddIntegrationSpyAndSubscriber.

Methods

GetConsumer(string)

Gets the consumer with the specified name.

public IConsumer GetConsumer(string name)

Parameters

name string

The consumer name.

Returns

IConsumer

The IConsumer with the specified name.

GetConsumerEndpointConfiguration(string)

Returns the ConsumerEndpointConfiguration for the specified endpoint.

protected ConsumerEndpointConfiguration? GetConsumerEndpointConfiguration(string endpointName)

Parameters

endpointName string

The endpoint name. It could be either the topic/queue name or the friendly name.

Returns

ConsumerEndpointConfiguration

The ConsumerEndpointConfiguration.

GetConsumerForEndpoint(string)

Gets the existing consumer connected to specified endpoint.

public IConsumer GetConsumerForEndpoint(string endpointName)

Parameters

endpointName string

The endpoint name. It could be either the topic/queue name or the friendly name.

Returns

IConsumer

The IProducer.

GetEndpointRawName(string)

Resolves the raw name (topic/queue name) of the specified endpoint. If the endpoint is not found in the producers or consumers configurations an InvalidOperationException is thrown.

protected string GetEndpointRawName(string endpointName)

Parameters

endpointName string

The endpoint name. It could be either the topic/queue name or the friendly name.

Returns

string

The raw name (topic/queue).

GetProducerEndpointConfiguration(string)

Returns the ProducerEndpointConfiguration for the specified endpoint.

protected ProducerEndpointConfiguration? GetProducerEndpointConfiguration(string endpointName)

Parameters

endpointName string

The endpoint name. It could be either the topic/queue name or the friendly name.

Returns

ProducerEndpointConfiguration

The ProducerEndpointConfiguration.

GetProducerForConsumer(IConsumerCollection, string)

Gets an existing producer for the endpoint consumed by the specified consumer or initializes a new one mirroring the consumer configuration.

protected abstract IProducer? GetProducerForConsumer(IConsumerCollection consumers, string endpointName)

Parameters

consumers IConsumerCollection

The existing consumers.

endpointName string

The endpoint name. It could be either the topic/queue name or the friendly name.

Returns

IProducer

The IProducer.

GetProducerForEndpoint(string)

Gets a producer for the specified endpoint.

public IProducer GetProducerForEndpoint(string endpointName)

Parameters

endpointName string

The endpoint name. It could be either the topic/queue name or the friendly name.

Returns

IProducer

The IProducer.

IsOutboxEmptyAsync()

Checks whether the outbox (table) is empty.

public ValueTask<bool> IsOutboxEmptyAsync()

Returns

ValueTask<bool>

A ValueTask<TResult> representing the asynchronous operation. The task result contains true if the outbox is empty, otherwise false.

WaitUntilAllMessagesAreConsumedAsync(bool, TimeSpan?)

Returns a ValueTask that completes when all messages routed to the consumers have been processed and committed.

public ValueTask WaitUntilAllMessagesAreConsumedAsync(bool throwTimeoutException, TimeSpan? timeout = null)

Parameters

throwTimeoutException bool
A value specifying whether a <xref href="System.TimeoutException" data-throw-if-not-resolved="false"></xref> has to be thrown when the messages aren't consumed before the

timeout elapses.

timeout TimeSpan?

The time to wait for the messages to be consumed and processed. The default is 30 seconds.

Returns

ValueTask

A ValueTask that completes when all messages have been processed.

Remarks

This method works with the mocked brokers only.

WaitUntilAllMessagesAreConsumedAsync(bool, TimeSpan?, params string[])

Returns a ValueTask that completes when all messages routed to the consumers have been processed and committed.

public ValueTask WaitUntilAllMessagesAreConsumedAsync(bool throwTimeoutException, TimeSpan? timeout, params string[] endpointNames)

Parameters

throwTimeoutException bool
A value specifying whether a <xref href="System.TimeoutException" data-throw-if-not-resolved="false"></xref> has to be thrown when the messages aren't consumed before the

timeout elapses.

timeout TimeSpan?

The time to wait for the messages to be consumed and processed. The default is 30 seconds.

endpointNames string[]

The names of the endpoints to wait for. If not specified, all endpoints are considered.

Returns

ValueTask

A ValueTask that completes when all messages have been processed.

Remarks

This method works with the mocked brokers only.

WaitUntilAllMessagesAreConsumedAsync(bool, params string[])

Returns a ValueTask that completes when all messages routed to the consumers have been processed and committed.

public ValueTask WaitUntilAllMessagesAreConsumedAsync(bool throwTimeoutException, params string[] endpointNames)

Parameters

throwTimeoutException bool
A value specifying whether a <xref href="System.TimeoutException" data-throw-if-not-resolved="false"></xref> has to be thrown when the messages aren't consumed before the

timeout elapses.

endpointNames string[]

The names of the endpoints to wait for. If not specified, all endpoints are considered.

Returns

ValueTask

A ValueTask that completes when all messages have been processed.

Remarks

This method works with the mocked brokers only.

WaitUntilAllMessagesAreConsumedAsync(bool, CancellationToken, params string[])

Returns a ValueTask that completes when all messages routed to the consumers have been processed and committed.

public ValueTask WaitUntilAllMessagesAreConsumedAsync(bool throwTimeoutException, CancellationToken cancellationToken, params string[] endpointNames)

Parameters

throwTimeoutException bool

A value specifying whether a TimeoutException has to be thrown when the messages aren't consumed before the CancellationToken is canceled.

cancellationToken CancellationToken

A CancellationToken to observe while waiting for the task to complete.

endpointNames string[]

The names of the endpoints to wait for. If not specified, all endpoints are considered.

Returns

ValueTask

A ValueTask that completes when all messages have been processed.

Remarks

This method works with the mocked brokers only.

WaitUntilAllMessagesAreConsumedAsync(TimeSpan?, params string[])

Returns a ValueTask that completes when all messages routed to the consumers have been processed and committed.

public ValueTask WaitUntilAllMessagesAreConsumedAsync(TimeSpan? timeout, params string[] endpointNames)

Parameters

timeout TimeSpan?
endpointNames string[]

The names of the endpoints to wait for. If not specified, all endpoints are considered.

Returns

ValueTask

A ValueTask that completes when all messages have been processed.

Remarks

This method works with the mocked brokers only.

WaitUntilAllMessagesAreConsumedAsync(params string[])

Returns a ValueTask that completes when all messages routed to the consumers have been processed and committed.

public ValueTask WaitUntilAllMessagesAreConsumedAsync(params string[] endpointNames)

Parameters

endpointNames string[]

The names of the endpoints to wait for. If not specified, all endpoints are considered.

Returns

ValueTask

A ValueTask that completes when all messages have been processed.

Remarks

This method works with the mocked brokers only.

WaitUntilAllMessagesAreConsumedAsync(CancellationToken, params string[])

Returns a ValueTask that completes when all messages routed to the consumers have been processed and committed.

public ValueTask WaitUntilAllMessagesAreConsumedAsync(CancellationToken cancellationToken, params string[] endpointNames)

Parameters

cancellationToken CancellationToken

A CancellationToken to observe while waiting for the task to complete.

endpointNames string[]

The names of the endpoints to wait for. If not specified, all endpoints are considered.

Returns

ValueTask

A ValueTask that completes when all messages have been processed.

Remarks

This method works with the mocked brokers only.

WaitUntilAllMessagesAreConsumedCoreAsync(IReadOnlyCollection<string>, CancellationToken)

Returns a ValueTask that completes when all messages routed to the consumers have been processed and committed.

protected abstract Task WaitUntilAllMessagesAreConsumedCoreAsync(IReadOnlyCollection<string> endpointNames, CancellationToken cancellationToken)

Parameters

endpointNames IReadOnlyCollection<string>

The names of the endpoints to wait for. If not specified, all endpoints are considered.

cancellationToken CancellationToken

A CancellationToken to observe while waiting for the task to complete.

Returns

Task

A ValueTask that completes when all messages have been processed.

Remarks

This method works with the mocked brokers only.

WaitUntilConnectedAsync(bool, TimeSpan?)

Returns a ValueTask that completes when all consumers are connected and ready.

public ValueTask WaitUntilConnectedAsync(bool throwTimeoutException, TimeSpan? timeout = null)

Parameters

throwTimeoutException bool

A value specifying whether a TimeoutException has to be thrown when the connection isn't established before the timeout elapses.

timeout TimeSpan?

The time to wait for the consumers to connect. The default is 30 seconds.

Returns

ValueTask

A ValueTask that completes when all consumers are successfully connected and ready.

WaitUntilConnectedAsync(bool, CancellationToken)

Returns a ValueTask that completes when all consumers are connected and ready.

public ValueTask WaitUntilConnectedAsync(bool throwTimeoutException, CancellationToken cancellationToken)

Parameters

throwTimeoutException bool
A value specifying whether a <xref href="System.TimeoutException" data-throw-if-not-resolved="false"></xref> has to be thrown when the connection isn't established before the

CancellationToken is canceled.

cancellationToken CancellationToken

A CancellationToken to observe while waiting for the task to complete.

Returns

ValueTask

A Task that completes when all consumers are successfully connected and ready.

WaitUntilConnectedAsync(TimeSpan?)

Returns a ValueTask that completes when all consumers are connected and ready.

public ValueTask WaitUntilConnectedAsync(TimeSpan? timeout = null)

Parameters

timeout TimeSpan?

The time to wait for the consumers to connect. The default is 30 seconds.

Returns

ValueTask

A ValueTask that completes when all consumers are successfully connected and ready.

WaitUntilConnectedAsync(CancellationToken)

Returns a ValueTask that completes when all consumers are connected and ready.

public ValueTask WaitUntilConnectedAsync(CancellationToken cancellationToken)

Parameters

cancellationToken CancellationToken

A CancellationToken to observe while waiting for the task to complete.

Returns

ValueTask

A ValueTask that completes when all consumers are successfully connected and ready.

WaitUntilOutboxIsEmptyAsync(TimeSpan?)

Returns a ValueTask that completes when all messages stored in the outbox have been produced.

public ValueTask WaitUntilOutboxIsEmptyAsync(TimeSpan? timeout = null)

Parameters

timeout TimeSpan?

The time to wait for the messages to be consumed and processed. The default is 30 seconds.

Returns

ValueTask

A ValueTask that completes when the outbox is empty.

WaitUntilOutboxIsEmptyAsync(CancellationToken)

Returns a ValueTask that completes when all messages stored in the outbox have been produced.

public ValueTask WaitUntilOutboxIsEmptyAsync(CancellationToken cancellationToken)

Parameters

cancellationToken CancellationToken

A CancellationToken to observe while waiting for the task to complete.

Returns

ValueTask

A ValueTask that completes when the outbox is empty.