Class ThrowingRecursionGuard

Namespace: AutoFixture.Kernel
Assembly: AutoFixture.dll

Handles recursion in the specimen creation process by throwing an exception at recursion point.

[Obsolete("This class will be removed in a future version of AutoFixture. Instead, use an instance of RecursionGuard, composed with an instance of ThrowingRecursionHandler.", true)]
public class ThrowingRecursionGuard : RecursionGuard, ISpecimenBuilderNode, ISpecimenBuilder, IEnumerable<ISpecimenBuilder>, IEnumerable

Inheritance

objectRecursionGuardThrowingRecursionGuard

Implements

ISpecimenBuilderNode, ISpecimenBuilder, IEnumerable<ISpecimenBuilder>, IEnumerable

Inherited Members

RecursionGuard.HandleRecursiveRequest(object), RecursionGuard.Create(object, ISpecimenContext), RecursionGuard.Compose(IEnumerable<ISpecimenBuilder>), RecursionGuard.GetEnumerator(), RecursionGuard.Builder, RecursionGuard.RecursionHandler, RecursionGuard.RecursionDepth, RecursionGuard.Comparer, RecursionGuard.RecordedRequests, object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Extension Methods

SpecimenFactory.Create<T>(ISpecimenBuilder), SpecimenFactory.CreateMany<T>(ISpecimenBuilder), SpecimenFactory.CreateMany<T>(ISpecimenBuilder, int), SpecimenCommand.Do<T>(ISpecimenBuilder, Action<T>), SpecimenCommand.Do<T1, T2>(ISpecimenBuilder, Action<T1, T2>), SpecimenCommand.Do<T1, T2, T3>(ISpecimenBuilder, Action<T1, T2, T3>), SpecimenCommand.Do<T1, T2, T3, T4>(ISpecimenBuilder, Action<T1, T2, T3, T4>), SpecimenQuery.Get<T, TResult>(ISpecimenBuilder, Func<T, TResult>), SpecimenQuery.Get<T1, T2, TResult>(ISpecimenBuilder, Func<T1, T2, TResult>), SpecimenQuery.Get<T1, T2, T3, TResult>(ISpecimenBuilder, Func<T1, T2, T3, TResult>), SpecimenQuery.Get<T1, T2, T3, T4, TResult>(ISpecimenBuilder, Func<T1, T2, T3, T4, TResult>), SpecimenBuilderNode.GraphEquals(ISpecimenBuilderNode, ISpecimenBuilderNode), SpecimenBuilderNode.GraphEquals(ISpecimenBuilderNode, ISpecimenBuilderNode, IEqualityComparer<ISpecimenBuilder>), CustomizationExtensions.ToCustomization(ISpecimenBuilder)

Constructors

ThrowingRecursionGuard(ISpecimenBuilder, IEqualityComparer)

Initializes a new instance of the ThrowingRecursionGuard class.

public ThrowingRecursionGuard(ISpecimenBuilder builder, IEqualityComparer comparer)

Parameters

builder ISpecimenBuilder

The intercepting builder to decorate.

comparer IEqualityComparer

An IEqualitycomparer implementation to use when comparing requests to determine recursion.

ThrowingRecursionGuard(ISpecimenBuilder)

Initializes a new instance of the ThrowingRecursionGuard class.

public ThrowingRecursionGuard(ISpecimenBuilder builder)

Parameters

builder ISpecimenBuilder

The builder.

Methods

Compose(IEnumerable<ISpecimenBuilder>)

Composes the supplied builders.

public override ISpecimenBuilderNode Compose(IEnumerable<ISpecimenBuilder> builders)

Parameters

builders IEnumerable<ISpecimenBuilder>

The builders to compose.

Returns

ISpecimenBuilderNode

A new ISpecimenBuilderNode instance containing builders as child nodes.

HandleRecursiveRequest(object)

Handles a request that would cause recursion by throwing an exception.

[Obsolete("This class will be removed in a future version of AutoFixture. Instead, use an instance of RecursionGuard, composed with an instance of ThrowingRecursionHandler.", true)]
public override object HandleRecursiveRequest(object request)

Parameters

request object

The recursion causing request.

Returns

object

Nothing. Always throws.