using System; using System.Collections.Generic; using Microsoft.AspNet.DependencyInjection; namespace Microsoft.AspNet.Identity.Test { public static class TestServices { public static IServiceProvider DefaultServiceProvider() where TUser : class,IUser where TKey : IEquatable { return new ServiceProvider().Add(TestServices.DefaultServices()); } public static IEnumerable DefaultServices() where TUser : class,IUser where TKey : IEquatable { return new IServiceDescriptor[] { new ServiceDescriptor(), new ServiceDescriptor, UserValidator>(), new ServiceDescriptor(), }; } public class ServiceDescriptor : IServiceDescriptor { public ServiceDescriptor(LifecycleKind lifecycle = LifecycleKind.Transient) { Lifecycle = lifecycle; } public LifecycleKind Lifecycle { get; private set; } public Type ServiceType { get { return typeof (TService); } } public Type ImplementationType { get { return typeof (TImplementation); } } public object ImplementationInstance { get { return null; } } } public class ServiceInstanceDescriptor : IServiceDescriptor { public ServiceInstanceDescriptor(object instance) { ImplementationInstance = instance; } public LifecycleKind Lifecycle { get { return LifecycleKind.Singleton; } } public Type ServiceType { get { return typeof (TService); } } public Type ImplementationType { get { return null; } } public object ImplementationInstance { get; private set; } } } }