Injecting ILogger via DI
This commit is contained in:
parent
127858dd7b
commit
f7dd913c3f
|
|
@ -28,7 +28,7 @@ namespace Microsoft.AspNet.Identity
|
|||
IEnumerable<IRoleValidator<TRole>> roleValidators = null,
|
||||
ILookupNormalizer keyNormalizer = null,
|
||||
IdentityErrorDescriber errors = null,
|
||||
ILoggerFactory loggerFactory = null)
|
||||
ILogger<RoleManager<TRole>> logger = null)
|
||||
{
|
||||
if (store == null)
|
||||
{
|
||||
|
|
@ -46,8 +46,7 @@ namespace Microsoft.AspNet.Identity
|
|||
}
|
||||
}
|
||||
|
||||
loggerFactory = loggerFactory ?? new LoggerFactory();
|
||||
Logger = loggerFactory.Create(nameof(RoleManager<TRole>));
|
||||
Logger = logger ?? new Logger<RoleManager<TRole>>(new LoggerFactory());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -68,7 +67,7 @@ namespace Microsoft.AspNet.Identity
|
|||
/// <summary>
|
||||
/// Used to log results
|
||||
/// </summary>
|
||||
public ILogger Logger { get; set; }
|
||||
public ILogger<RoleManager<TRole>> Logger { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Used to normalize user names, role names, emails for uniqueness
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ namespace Microsoft.AspNet.Identity
|
|||
IHttpContextAccessor contextAccessor,
|
||||
IClaimsIdentityFactory<TUser> claimsFactory,
|
||||
IOptions<IdentityOptions> optionsAccessor = null,
|
||||
ILoggerFactory loggerFactory = null)
|
||||
ILogger<SignInManager<TUser>> logger = null)
|
||||
{
|
||||
if (userManager == null)
|
||||
{
|
||||
|
|
@ -46,15 +46,14 @@ namespace Microsoft.AspNet.Identity
|
|||
ClaimsFactory = claimsFactory;
|
||||
Options = optionsAccessor?.Options ?? new IdentityOptions();
|
||||
|
||||
loggerFactory = loggerFactory ?? new LoggerFactory();
|
||||
Logger = loggerFactory.Create(nameof(SignInManager<TUser>));
|
||||
Logger = logger ?? new Logger<SignInManager<TUser>>(new LoggerFactory());
|
||||
}
|
||||
|
||||
public UserManager<TUser> UserManager { get; private set; }
|
||||
public HttpContext Context { get; private set; }
|
||||
public IClaimsIdentityFactory<TUser> ClaimsFactory { get; private set; }
|
||||
public IdentityOptions Options { get; private set; }
|
||||
public ILogger Logger { get; set; }
|
||||
public ILogger<SignInManager<TUser>> Logger { get; set; }
|
||||
|
||||
// Should this be a func?
|
||||
public virtual async Task<ClaimsIdentity> CreateUserIdentityAsync(TUser user,
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ namespace Microsoft.AspNet.Identity
|
|||
IdentityErrorDescriber errors = null,
|
||||
IEnumerable<IUserTokenProvider<TUser>> tokenProviders = null,
|
||||
IEnumerable<IIdentityMessageProvider> msgProviders = null,
|
||||
ILoggerFactory loggerFactory = null)
|
||||
ILogger<UserManager<TUser>> logger = null)
|
||||
{
|
||||
if (store == null)
|
||||
{
|
||||
|
|
@ -79,8 +79,7 @@ namespace Microsoft.AspNet.Identity
|
|||
}
|
||||
}
|
||||
|
||||
loggerFactory = loggerFactory ?? new LoggerFactory();
|
||||
Logger = loggerFactory.Create(nameof(UserManager<TUser>));
|
||||
Logger = logger ?? new Logger<UserManager<TUser>>(new LoggerFactory());
|
||||
|
||||
if (tokenProviders != null)
|
||||
{
|
||||
|
|
@ -149,7 +148,7 @@ namespace Microsoft.AspNet.Identity
|
|||
/// <summary>
|
||||
/// Used to log IdentityResult
|
||||
/// </summary>
|
||||
public ILogger Logger { get; set; }
|
||||
public ILogger<UserManager<TUser>> Logger { get; set; }
|
||||
|
||||
public IdentityOptions Options
|
||||
{
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
{
|
||||
var result = IdentityResult.Success;
|
||||
var logMessage = new StringBuilder();
|
||||
var logger = MockHelpers.MockILogger(logMessage);
|
||||
var logger = MockHelpers.MockILogger<IdentityResult>(logMessage);
|
||||
|
||||
result.Log(logger.Object, "Operation");
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
{
|
||||
var result = IdentityResult.Failed(new IdentityError() { Code = "Foo" }, new IdentityError() { Code = "Bar" });
|
||||
var logMessage = new StringBuilder();
|
||||
var logger = MockHelpers.MockILogger(logMessage);
|
||||
var logger = MockHelpers.MockILogger<IdentityResult>(logMessage);
|
||||
|
||||
result.Log(logger.Object, "Operation");
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
// app.UseServices(services =>
|
||||
// {
|
||||
// services.AddInstance(contextAccessor.Object);
|
||||
// services.AddInstance<ILoggerFactory>(new NullLoggerFactory());
|
||||
// services.AddInstance<Ilogger>(new Nulllogger());
|
||||
// services.AddIdentity<ApplicationUser, IdentityRole>(s =>
|
||||
// {
|
||||
// s.AddUserStore(() => new InMemoryUserStore<ApplicationUser>());
|
||||
|
|
@ -129,8 +129,8 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
options.Setup(a => a.Options).Returns(identityOptions);
|
||||
var claimsFactory = new Mock<ClaimsIdentityFactory<TestUser, TestRole>>(manager.Object, roleManager.Object, options.Object);
|
||||
var logStore = new StringBuilder();
|
||||
var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object);
|
||||
var logger = MockHelpers.MockILogger<SignInManager<TestUser>>(logStore);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, logger.Object);
|
||||
string expected = string.Format("{0} for user: {1} : Result : {2}", "PasswordSignInAsync", user.Id, "Lockedout");
|
||||
|
||||
// Act
|
||||
|
|
@ -171,8 +171,8 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
var claimsFactory = new Mock<ClaimsIdentityFactory<TestUser, TestRole>>(manager.Object, roleManager.Object, options.Object);
|
||||
claimsFactory.Setup(m => m.CreateAsync(user, CancellationToken.None)).ReturnsAsync(new ClaimsIdentity("Microsoft.AspNet.Identity")).Verifiable();
|
||||
var logStore = new StringBuilder();
|
||||
var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object);
|
||||
var logger = MockHelpers.MockILogger<SignInManager<TestUser>>(logStore);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, logger.Object);
|
||||
string expected = string.Format("{0} for user: {1} : Result : {2}", "PasswordSignInAsync", user.Id, "Succeeded");
|
||||
|
||||
// Act
|
||||
|
|
@ -261,8 +261,8 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
var options = new Mock<IOptions<IdentityOptions>>();
|
||||
options.Setup(a => a.Options).Returns(identityOptions);
|
||||
var logStore = new StringBuilder();
|
||||
var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, new ClaimsIdentityFactory<TestUser, TestRole>(manager.Object, roleManager.Object, options.Object), options.Object, loggerFactory.Object);
|
||||
var logger = MockHelpers.MockILogger<SignInManager<TestUser>>(logStore);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, new ClaimsIdentityFactory<TestUser, TestRole>(manager.Object, roleManager.Object, options.Object), options.Object, logger.Object);
|
||||
string expected = string.Format("{0} for user: {1} : Result : {2}", "PasswordSignInAsync", user.Id, "RequiresTwoFactor");
|
||||
|
||||
// Act
|
||||
|
|
@ -314,8 +314,8 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
var claimsFactory = new Mock<ClaimsIdentityFactory<TestUser, TestRole>>(manager.Object, roleManager.Object, options.Object);
|
||||
claimsFactory.Setup(m => m.CreateAsync(user, CancellationToken.None)).ReturnsAsync(new ClaimsIdentity("Microsoft.AspNet.Identity")).Verifiable();
|
||||
var logStore = new StringBuilder();
|
||||
var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object);
|
||||
var logger = MockHelpers.MockILogger<SignInManager<TestUser>>(logStore);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, logger.Object);
|
||||
string expected = string.Format("{0} for user: {1} : Result : {2}", "ExternalLoginSignInAsync", user.Id.ToString(), "Succeeded");
|
||||
|
||||
// Act
|
||||
|
|
@ -402,8 +402,8 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
context.Setup(c => c.AuthenticateAsync(IdentityOptions.TwoFactorUserIdCookieAuthenticationType)).ReturnsAsync(authResult).Verifiable();
|
||||
contextAccessor.Setup(a => a.Value).Returns(context.Object);
|
||||
var logStore = new StringBuilder();
|
||||
var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory, options.Object, loggerFactory.Object);
|
||||
var logger = MockHelpers.MockILogger<SignInManager<TestUser>>(logStore);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory, options.Object, logger.Object);
|
||||
string expected = string.Format("{0} for user: {1} : Result : {2}", "TwoFactorSignInAsync", user.Id.ToString(), "Succeeded");
|
||||
|
||||
// Act
|
||||
|
|
@ -525,8 +525,8 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
IdentityOptions.ApplicationCookieAuthenticationType = authenticationType;
|
||||
var claimsFactory = new Mock<ClaimsIdentityFactory<TestUser, TestRole>>(manager.Object, roleManager.Object, options.Object);
|
||||
var logStore = new StringBuilder();
|
||||
var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object);
|
||||
var logger = MockHelpers.MockILogger<SignInManager<TestUser>>(logStore);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, logger.Object);
|
||||
|
||||
// Act
|
||||
helper.SignOut();
|
||||
|
|
@ -558,8 +558,8 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
options.Setup(a => a.Options).Returns(identityOptions);
|
||||
var claimsFactory = new Mock<ClaimsIdentityFactory<TestUser, TestRole>>(manager.Object, roleManager.Object, options.Object);
|
||||
var logStore = new StringBuilder();
|
||||
var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object);
|
||||
var logger = MockHelpers.MockILogger<SignInManager<TestUser>>(logStore);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, logger.Object);
|
||||
string expected = string.Format("{0} for user: {1} : Result : {2}", "PasswordSignInAsync", user.Id.ToString(), "Failed");
|
||||
// Act
|
||||
var result = await helper.PasswordSignInAsync(user.UserName, "bogus", false, false);
|
||||
|
|
@ -664,8 +664,8 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
options.Setup(a => a.Options).Returns(identityOptions);
|
||||
var claimsFactory = new Mock<ClaimsIdentityFactory<TestUser, TestRole>>(manager.Object, roleManager.Object, options.Object);
|
||||
var logStore = new StringBuilder();
|
||||
var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object);
|
||||
var logger = MockHelpers.MockILogger<SignInManager<TestUser>>(logStore);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, logger.Object);
|
||||
string expected = string.Format("{0} for user: {1} : Result : {2}", "CanSignInAsync", user.Id.ToString(), confirmed.ToString());
|
||||
|
||||
// Act
|
||||
|
|
@ -710,8 +710,8 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
options.Setup(a => a.Options).Returns(identityOptions);
|
||||
var claimsFactory = new Mock<ClaimsIdentityFactory<TestUser, TestRole>>(manager.Object, roleManager.Object, options.Object);
|
||||
var logStore = new StringBuilder();
|
||||
var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object);
|
||||
var logger = MockHelpers.MockILogger<SignInManager<TestUser>>(logStore);
|
||||
var helper = new SignInManager<TestUser>(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, logger.Object);
|
||||
string expected = string.Format("{0} for user: {1} : Result : {2}", "CanSignInAsync", user.Id.ToString(), confirmed.ToString());
|
||||
|
||||
// Act
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
{
|
||||
var result = SignInResult.Success;
|
||||
var logMessage = new StringBuilder();
|
||||
var logger = MockHelpers.MockILogger(logMessage);
|
||||
var logger = MockHelpers.MockILogger<SignInResultTest>(logMessage);
|
||||
|
||||
result.Log(logger.Object, "Operation");
|
||||
|
||||
|
|
@ -25,7 +25,7 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
{
|
||||
var result = SignInResult.LockedOut;
|
||||
var logMessage = new StringBuilder();
|
||||
var logger = MockHelpers.MockILogger(logMessage);
|
||||
var logger = MockHelpers.MockILogger<SignInResultTest>(logMessage);
|
||||
|
||||
result.Log(logger.Object, "Operation");
|
||||
|
||||
|
|
@ -37,7 +37,7 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
{
|
||||
var result = SignInResult.NotAllowed;
|
||||
var logMessage = new StringBuilder();
|
||||
var logger = MockHelpers.MockILogger(logMessage);
|
||||
var logger = MockHelpers.MockILogger<SignInResultTest>(logMessage);
|
||||
|
||||
result.Log(logger.Object, "Operation");
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
{
|
||||
var result = SignInResult.TwoFactorRequired;
|
||||
var logMessage = new StringBuilder();
|
||||
var logger = MockHelpers.MockILogger(logMessage);
|
||||
var logger = MockHelpers.MockILogger<SignInResultTest>(logMessage);
|
||||
|
||||
result.Log(logger.Object, "Operation");
|
||||
|
||||
|
|
@ -61,7 +61,7 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
{
|
||||
var result = SignInResult.Failed;
|
||||
var logMessage = new StringBuilder();
|
||||
var logger = MockHelpers.MockILogger(logMessage);
|
||||
var logger = MockHelpers.MockILogger<SignInResultTest>(logMessage);
|
||||
|
||||
result.Log(logger.Object, "Operation");
|
||||
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Text;
|
||||
using Microsoft.Framework.Logging;
|
||||
using Moq;
|
||||
using System.Text;
|
||||
|
||||
namespace Microsoft.AspNet.Identity.Test
|
||||
{
|
||||
|
|
@ -29,39 +29,23 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
store = store ?? new Mock<IRoleStore<TRole>>().Object;
|
||||
var roles = new List<IRoleValidator<TRole>>();
|
||||
roles.Add(new RoleValidator<TRole>());
|
||||
return new Mock<RoleManager<TRole>>(store, roles, null, null,null);
|
||||
return new Mock<RoleManager<TRole>>(store, roles, null, null, null);
|
||||
}
|
||||
|
||||
public static Mock<ILogger> MockILogger(StringBuilder logStore = null)
|
||||
public static Mock<ILogger<T>> MockILogger<T>(StringBuilder logStore = null) where T : class
|
||||
{
|
||||
logStore = logStore ?? LogMessage;
|
||||
var logger = new Mock<ILogger>();
|
||||
var logger = new Mock<ILogger<T>>();
|
||||
logger.Setup(x => x.Write(It.IsAny<LogLevel>(), It.IsAny<int>(), It.IsAny<object>(),
|
||||
It.IsAny<Exception>(), It.IsAny<Func<object, Exception, string>>()))
|
||||
.Callback((LogLevel logLevel, int eventId, object state, Exception exception, Func<object, Exception, string> formatter) =>
|
||||
{ logStore.Append(state.ToString()); });
|
||||
{ logStore.Append(state.ToString()); });
|
||||
logger.Setup(x => x.IsEnabled(LogLevel.Information)).Returns(true);
|
||||
logger.Setup(x => x.IsEnabled(LogLevel.Warning)).Returns(true);
|
||||
|
||||
return logger;
|
||||
}
|
||||
|
||||
public static Mock<ILoggerFactory> MockILoggerFactory(ILogger logger = null)
|
||||
{
|
||||
logger = logger ?? MockILogger().Object;
|
||||
var loggerFactory = new Mock<ILoggerFactory>();
|
||||
loggerFactory.Setup(x => x.Create(It.IsAny<string>())).Returns(logger);
|
||||
return loggerFactory;
|
||||
}
|
||||
|
||||
public static UserManager<TUser> UserManagerWithMockLogger<TUser>(ILoggerFactory loggerFactory = null) where TUser : class
|
||||
{
|
||||
var userstore = new Mock<IUserStore<TUser>>().Object;
|
||||
var userManager = new UserManager<TUser>(userstore, loggerFactory: loggerFactory ?? MockILoggerFactory().Object);
|
||||
|
||||
return userManager;
|
||||
}
|
||||
|
||||
public static UserManager<TUser> TestUserManager<TUser>(IUserStore<TUser> store = null) where TUser : class
|
||||
{
|
||||
store = store ?? new Mock<IUserStore<TUser>>().Object;
|
||||
|
|
|
|||
Loading…
Reference in New Issue