// 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.AspNetCore.Http; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; namespace Microsoft.AspNetCore.Identity.EntityFrameworkCore.InMemory.Test { public static class TestIdentityFactory { public static InMemoryContext CreateContext() { var services = new ServiceCollection(); services.AddEntityFrameworkInMemoryDatabase(); var serviceProvider = services.BuildServiceProvider(); var db = new InMemoryContext(new DbContextOptionsBuilder().Options); db.Database.EnsureCreated(); return db; } public static IServiceCollection CreateTestServices() { var services = new ServiceCollection(); services.AddHttpContextAccessor(); services.AddLogging(); services.AddIdentity(); return services; } public static RoleManager CreateRoleManager(InMemoryContext context) { var services = CreateTestServices(); services.AddSingleton>(new RoleStore(context)); return services.BuildServiceProvider().GetRequiredService>(); } public static RoleManager CreateRoleManager() { return CreateRoleManager(CreateContext()); } } }