// 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.Security.Claims; using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.DependencyInjection.Fallback; using Xunit; namespace Microsoft.AspNet.Identity.Test { public class IdentityBuilderTest { [Fact] public void CanSpecifyUserValidatorInstance() { var services = new ServiceCollection(); var validator = new UserValidator(); services.AddIdentity().AddUserValidator(validator); Assert.Equal(validator, services.BuildServiceProvider().GetRequiredService>()); } [Fact] public void CanSpecifyPasswordValidatorInstance() { var services = new ServiceCollection(); var validator = new PasswordValidator(); services.AddIdentity().AddPasswordValidator(validator); Assert.Equal(validator, services.BuildServiceProvider().GetRequiredService>()); } [Fact] public void CanSpecifyPasswordHasherInstance() { CanOverride>(new PasswordHasher()); } [Fact] public void EnsureDefaultServices() { var services = new ServiceCollection(); services.AddIdentity(); var provider = services.BuildServiceProvider(); var userValidator = provider.GetRequiredService>() as UserValidator; Assert.NotNull(userValidator); var pwdValidator = provider.GetRequiredService>() as PasswordValidator; Assert.NotNull(pwdValidator); var hasher = provider.GetRequiredService>() as PasswordHasher; Assert.NotNull(hasher); } private static void CanOverride(TService instance) { var services = new ServiceCollection(); services.AddIdentity().AddInstance(instance); Assert.Equal(instance, services.BuildServiceProvider().GetRequiredService()); } } }