diff --git a/src/Microsoft.AspNet.Identity/RoleManager.cs b/src/Microsoft.AspNet.Identity/RoleManager.cs index 98b7db3990..bc53a116ca 100644 --- a/src/Microsoft.AspNet.Identity/RoleManager.cs +++ b/src/Microsoft.AspNet.Identity/RoleManager.cs @@ -28,7 +28,7 @@ namespace Microsoft.AspNet.Identity IEnumerable> roleValidators = null, ILookupNormalizer keyNormalizer = null, IdentityErrorDescriber errors = null, - ILoggerFactory loggerFactory = null) + ILogger> logger = null) { if (store == null) { @@ -46,8 +46,7 @@ namespace Microsoft.AspNet.Identity } } - loggerFactory = loggerFactory ?? new LoggerFactory(); - Logger = loggerFactory.Create(nameof(RoleManager)); + Logger = logger ?? new Logger>(new LoggerFactory()); } /// @@ -68,7 +67,7 @@ namespace Microsoft.AspNet.Identity /// /// Used to log results /// - public ILogger Logger { get; set; } + public ILogger> Logger { get; set; } /// /// Used to normalize user names, role names, emails for uniqueness diff --git a/src/Microsoft.AspNet.Identity/SignInManager.cs b/src/Microsoft.AspNet.Identity/SignInManager.cs index d6fd276950..b28e480c26 100644 --- a/src/Microsoft.AspNet.Identity/SignInManager.cs +++ b/src/Microsoft.AspNet.Identity/SignInManager.cs @@ -26,7 +26,7 @@ namespace Microsoft.AspNet.Identity IHttpContextAccessor contextAccessor, IClaimsIdentityFactory claimsFactory, IOptions optionsAccessor = null, - ILoggerFactory loggerFactory = null) + ILogger> 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)); + Logger = logger ?? new Logger>(new LoggerFactory()); } public UserManager UserManager { get; private set; } public HttpContext Context { get; private set; } public IClaimsIdentityFactory ClaimsFactory { get; private set; } public IdentityOptions Options { get; private set; } - public ILogger Logger { get; set; } + public ILogger> Logger { get; set; } // Should this be a func? public virtual async Task CreateUserIdentityAsync(TUser user, diff --git a/src/Microsoft.AspNet.Identity/UserManager.cs b/src/Microsoft.AspNet.Identity/UserManager.cs index fa63e7d5ff..775c828710 100644 --- a/src/Microsoft.AspNet.Identity/UserManager.cs +++ b/src/Microsoft.AspNet.Identity/UserManager.cs @@ -52,7 +52,7 @@ namespace Microsoft.AspNet.Identity IdentityErrorDescriber errors = null, IEnumerable> tokenProviders = null, IEnumerable msgProviders = null, - ILoggerFactory loggerFactory = null) + ILogger> logger = null) { if (store == null) { @@ -79,8 +79,7 @@ namespace Microsoft.AspNet.Identity } } - loggerFactory = loggerFactory ?? new LoggerFactory(); - Logger = loggerFactory.Create(nameof(UserManager)); + Logger = logger ?? new Logger>(new LoggerFactory()); if (tokenProviders != null) { @@ -149,7 +148,7 @@ namespace Microsoft.AspNet.Identity /// /// Used to log IdentityResult /// - public ILogger Logger { get; set; } + public ILogger> Logger { get; set; } public IdentityOptions Options { diff --git a/test/Microsoft.AspNet.Identity.Test/IdentityResultTest.cs b/test/Microsoft.AspNet.Identity.Test/IdentityResultTest.cs index f65ab23cfb..479f3f94ce 100644 --- a/test/Microsoft.AspNet.Identity.Test/IdentityResultTest.cs +++ b/test/Microsoft.AspNet.Identity.Test/IdentityResultTest.cs @@ -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(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(logMessage); result.Log(logger.Object, "Operation"); diff --git a/test/Microsoft.AspNet.Identity.Test/SignInManagerTest.cs b/test/Microsoft.AspNet.Identity.Test/SignInManagerTest.cs index 401d4cf384..be4641923b 100644 --- a/test/Microsoft.AspNet.Identity.Test/SignInManagerTest.cs +++ b/test/Microsoft.AspNet.Identity.Test/SignInManagerTest.cs @@ -38,7 +38,7 @@ namespace Microsoft.AspNet.Identity.Test // app.UseServices(services => // { // services.AddInstance(contextAccessor.Object); - // services.AddInstance(new NullLoggerFactory()); + // services.AddInstance(new Nulllogger()); // services.AddIdentity(s => // { // s.AddUserStore(() => new InMemoryUserStore()); @@ -129,8 +129,8 @@ namespace Microsoft.AspNet.Identity.Test options.Setup(a => a.Options).Returns(identityOptions); var claimsFactory = new Mock>(manager.Object, roleManager.Object, options.Object); var logStore = new StringBuilder(); - var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object); - var helper = new SignInManager(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object); + var logger = MockHelpers.MockILogger>(logStore); + var helper = new SignInManager(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>(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(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object); + var logger = MockHelpers.MockILogger>(logStore); + var helper = new SignInManager(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>(); options.Setup(a => a.Options).Returns(identityOptions); var logStore = new StringBuilder(); - var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object); - var helper = new SignInManager(manager.Object, contextAccessor.Object, new ClaimsIdentityFactory(manager.Object, roleManager.Object, options.Object), options.Object, loggerFactory.Object); + var logger = MockHelpers.MockILogger>(logStore); + var helper = new SignInManager(manager.Object, contextAccessor.Object, new ClaimsIdentityFactory(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>(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(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object); + var logger = MockHelpers.MockILogger>(logStore); + var helper = new SignInManager(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(manager.Object, contextAccessor.Object, claimsFactory, options.Object, loggerFactory.Object); + var logger = MockHelpers.MockILogger>(logStore); + var helper = new SignInManager(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>(manager.Object, roleManager.Object, options.Object); var logStore = new StringBuilder(); - var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object); - var helper = new SignInManager(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object); + var logger = MockHelpers.MockILogger>(logStore); + var helper = new SignInManager(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>(manager.Object, roleManager.Object, options.Object); var logStore = new StringBuilder(); - var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object); - var helper = new SignInManager(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object); + var logger = MockHelpers.MockILogger>(logStore); + var helper = new SignInManager(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>(manager.Object, roleManager.Object, options.Object); var logStore = new StringBuilder(); - var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object); - var helper = new SignInManager(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object); + var logger = MockHelpers.MockILogger>(logStore); + var helper = new SignInManager(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>(manager.Object, roleManager.Object, options.Object); var logStore = new StringBuilder(); - var loggerFactory = MockHelpers.MockILoggerFactory(MockHelpers.MockILogger(logStore).Object); - var helper = new SignInManager(manager.Object, contextAccessor.Object, claimsFactory.Object, options.Object, loggerFactory.Object); + var logger = MockHelpers.MockILogger>(logStore); + var helper = new SignInManager(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 diff --git a/test/Microsoft.AspNet.Identity.Test/SignInResultTest.cs b/test/Microsoft.AspNet.Identity.Test/SignInResultTest.cs index ce7a522937..267db1a00f 100644 --- a/test/Microsoft.AspNet.Identity.Test/SignInResultTest.cs +++ b/test/Microsoft.AspNet.Identity.Test/SignInResultTest.cs @@ -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(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(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(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(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(logMessage); result.Log(logger.Object, "Operation"); diff --git a/test/Shared/MockHelpers.cs b/test/Shared/MockHelpers.cs index 36f2690c60..15b7666458 100644 --- a/test/Shared/MockHelpers.cs +++ b/test/Shared/MockHelpers.cs @@ -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>().Object; var roles = new List>(); roles.Add(new RoleValidator()); - return new Mock>(store, roles, null, null,null); + return new Mock>(store, roles, null, null, null); } - public static Mock MockILogger(StringBuilder logStore = null) + public static Mock> MockILogger(StringBuilder logStore = null) where T : class { logStore = logStore ?? LogMessage; - var logger = new Mock(); + var logger = new Mock>(); logger.Setup(x => x.Write(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny>())) .Callback((LogLevel logLevel, int eventId, object state, Exception exception, Func 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 MockILoggerFactory(ILogger logger = null) - { - logger = logger ?? MockILogger().Object; - var loggerFactory = new Mock(); - loggerFactory.Setup(x => x.Create(It.IsAny())).Returns(logger); - return loggerFactory; - } - - public static UserManager UserManagerWithMockLogger(ILoggerFactory loggerFactory = null) where TUser : class - { - var userstore = new Mock>().Object; - var userManager = new UserManager(userstore, loggerFactory: loggerFactory ?? MockILoggerFactory().Object); - - return userManager; - } - public static UserManager TestUserManager(IUserStore store = null) where TUser : class { store = store ?? new Mock>().Object;