// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.Framework.OptionsModel; using Moq; namespace Microsoft.AspNet.Identity.Test { public static class MockHelpers { public static Mock> MockUserManager() where TUser : class { var store = new Mock>(); var mgr = new Mock>(store.Object, null, null, null, null, null, null, null, null); mgr.Object.UserValidators.Add(new UserValidator()); mgr.Object.PasswordValidators.Add(new PasswordValidator()); return mgr; } public static Mock> MockRoleManager(IRoleStore store = null) where TRole : class { store = store ?? new Mock>().Object; var roles = new List>(); roles.Add(new RoleValidator()); return new Mock>(store, roles, null, null); } public static UserManager TestUserManager(IUserStore store = null) where TUser : class { store = store ?? new Mock>().Object; var validator = new Mock>(); var userManager = new UserManager(store); userManager.UserValidators.Add(validator.Object); userManager.PasswordValidators.Add(new PasswordValidator()); validator.Setup(v => v.ValidateAsync(userManager, It.IsAny(), CancellationToken.None)) .Returns(Task.FromResult(IdentityResult.Success)).Verifiable(); return userManager; } public static RoleManager TestRoleManager(IRoleStore store = null) where TRole : class { store = store ?? new Mock>().Object; var roles = new List>(); roles.Add(new RoleValidator()); return new RoleManager(store, roles); } } }