// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNet.Http; using Microsoft.AspNet.Http.Internal; using Microsoft.Framework.DependencyInjection; namespace Microsoft.AspNet.Identity.EntityFramework.InMemory.Test { public static class TestIdentityFactory { public static InMemoryContext CreateContext() { var services = new ServiceCollection(); services.AddEntityFramework().AddInMemoryDatabase(); var serviceProvider = services.BuildServiceProvider(); var db = new InMemoryContext(); db.Database.EnsureCreated(); return db; } public static IServiceCollection CreateTestServices() { var services = new ServiceCollection(); services.AddSingleton(); services.AddLogging(); services.AddIdentity(); return services; } public static RoleManager CreateRoleManager(InMemoryContext context) { var services = CreateTestServices(); services.AddInstance>(new RoleStore(context)); return services.BuildServiceProvider().GetRequiredService>(); } public static RoleManager CreateRoleManager() { return CreateRoleManager(CreateContext()); } } }