namespace Spectre.Console.Testing; /// /// A fake type resolver suitable for testing. /// public sealed class FakeTypeResolver : ITypeResolver { private readonly Dictionary> _registrations; private readonly Dictionary> _instances; /// /// Initializes a new instance of the class. /// /// The registrations. /// The singleton registrations. public FakeTypeResolver( Dictionary> registrations, Dictionary> instances) { _registrations = registrations ?? throw new ArgumentNullException(nameof(registrations)); _instances = instances ?? throw new ArgumentNullException(nameof(instances)); } /// public object? Resolve(Type? type) { if (type == null) { return null; } if (_instances.TryGetValue(type, out var instances)) { return instances.FirstOrDefault(); } if (_registrations.TryGetValue(type, out var registrations)) { return registrations.Count == 0 ? null : Activator.CreateInstance(type); } return null; } }