// Copyright (c) Microsoft Open Technologies, Inc. // All Rights Reserved // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR // CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING // WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF // TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR // NON-INFRINGEMENT. // See the Apache 2 License for the specific language governing // permissions and limitations under the License. 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(b => b.AddUserValidator(() => validator)); Assert.Equal(validator, services.BuildServiceProvider().GetService>()); } [Fact] public void CanSpecifyPasswordValidatorInstance() { var services = new ServiceCollection(); var validator = new PasswordValidator(); services.AddIdentity(b => b.AddPasswordValidator(() => validator)); Assert.Equal(validator, services.BuildServiceProvider().GetService>()); } [Fact] public void CanSpecifyPasswordHasherInstance() { CanOverride(new PasswordHasher()); } [Fact] public void CanSpecifyClaimsIdentityFactoryInstance() { CanOverride>(new ClaimsIdentityFactory()); } [Fact] public void EnsureDefaultServices() { var services = new ServiceCollection(); services.AddIdentity(identity => { }); var provider = services.BuildServiceProvider(); var userValidator = provider.GetService>() as UserValidator; Assert.NotNull(userValidator); var pwdValidator = provider.GetService>() as PasswordValidator; Assert.NotNull(pwdValidator); var hasher = provider.GetService() as PasswordHasher; Assert.NotNull(hasher); var claimsFactory = provider.GetService>() as ClaimsIdentityFactory; Assert.NotNull(claimsFactory); } private static void CanOverride(TService instance) { var services = new ServiceCollection(); services.AddIdentity(b => b.AddInstance(() => instance)); Assert.Equal(instance, services.BuildServiceProvider().GetService()); } } }