// 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 System; using System.Linq.Expressions; using Microsoft.AspNetCore.Identity.Test; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; namespace Microsoft.AspNetCore.Identity.EntityFrameworkCore.InMemory.Test { public class InMemoryEFOnlyUsersTest : UserManagerSpecificationTestBase { protected override object CreateTestContext() => new InMemoryContext(new DbContextOptionsBuilder().Options); protected override void AddUserStore(IServiceCollection services, object context = null) => services.AddSingleton>(new UserStore, IdentityUserRole, IdentityUserLogin, IdentityUserToken, IdentityRoleClaim>((InMemoryContext)context, new IdentityErrorDescriber())); protected override IdentityUser CreateTestUser(string namePrefix = "", string email = "", string phoneNumber = "", bool lockoutEnabled = false, DateTimeOffset? lockoutEnd = default(DateTimeOffset?), bool useNamePrefixAsUserName = false) { return new IdentityUser { UserName = useNamePrefixAsUserName ? namePrefix : string.Format("{0}{1}", namePrefix, Guid.NewGuid()), Email = email, PhoneNumber = phoneNumber, LockoutEnabled = lockoutEnabled, LockoutEnd = lockoutEnd }; } protected override void SetUserPasswordHash(IdentityUser user, string hashedPassword) { user.PasswordHash = hashedPassword; } protected override Expression> UserNameEqualsPredicate(string userName) => u => u.UserName == userName; protected override Expression> UserNameStartsWithPredicate(string userName) => u => u.UserName.StartsWith(userName); } }