diff --git a/test/Microsoft.AspNet.Identity.EntityFramework.InMemory.Test/InMemoryEFUserStoreTest.cs b/test/Microsoft.AspNet.Identity.EntityFramework.InMemory.Test/InMemoryEFUserStoreTest.cs index 758e799ff9..bbdf4a73db 100644 --- a/test/Microsoft.AspNet.Identity.EntityFramework.InMemory.Test/InMemoryEFUserStoreTest.cs +++ b/test/Microsoft.AspNet.Identity.EntityFramework.InMemory.Test/InMemoryEFUserStoreTest.cs @@ -7,7 +7,7 @@ using Microsoft.Framework.DependencyInjection; namespace Microsoft.AspNet.Identity.EntityFramework.InMemory.Test { - public class InMemoryEFUserStoreTest : UserManagerTestBase,IDisposable + public class InMemoryEFUserStoreTest : UserManagerTestBase { protected override object CreateTestContext() { @@ -24,10 +24,5 @@ namespace Microsoft.AspNet.Identity.EntityFramework.InMemory.Test var store = new RoleStore((InMemoryContext)context); services.AddInstance>(store); } - - public void Dispose() - { - loggerFactory.Dispose(); - } } } diff --git a/test/Microsoft.AspNet.Identity.EntityFramework.Test/SqlStoreTestBase.cs b/test/Microsoft.AspNet.Identity.EntityFramework.Test/SqlStoreTestBase.cs index 3b6aca6f78..72b6275eda 100644 --- a/test/Microsoft.AspNet.Identity.EntityFramework.Test/SqlStoreTestBase.cs +++ b/test/Microsoft.AspNet.Identity.EntityFramework.Test/SqlStoreTestBase.cs @@ -34,7 +34,6 @@ namespace Microsoft.AspNet.Identity.EntityFramework.Test public void DropDatabaseDone() { DropDb(); - loggerFactory.Dispose(); } public void DropDb() diff --git a/test/Microsoft.AspNet.Identity.InMemory.Test/InMemoryStoreTest.cs b/test/Microsoft.AspNet.Identity.InMemory.Test/InMemoryStoreTest.cs index 7cca942833..4e034f666e 100644 --- a/test/Microsoft.AspNet.Identity.InMemory.Test/InMemoryStoreTest.cs +++ b/test/Microsoft.AspNet.Identity.InMemory.Test/InMemoryStoreTest.cs @@ -7,7 +7,7 @@ using Microsoft.Framework.DependencyInjection; namespace Microsoft.AspNet.Identity.InMemory.Test { - public class InMemoryStoreTest : UserManagerTestBase, IDisposable + public class InMemoryStoreTest : UserManagerTestBase { protected override object CreateTestContext() { @@ -23,10 +23,5 @@ namespace Microsoft.AspNet.Identity.InMemory.Test { services.AddSingleton, InMemoryRoleStore>(); } - - public void Dispose() - { - loggerFactory.Dispose(); - } } } \ No newline at end of file diff --git a/test/Shared/IdentityResultAssert.cs b/test/Shared/IdentityResultAssert.cs index 9b941b234d..80fabb9c02 100644 --- a/test/Shared/IdentityResultAssert.cs +++ b/test/Shared/IdentityResultAssert.cs @@ -1,7 +1,6 @@ // 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.IO; using System.Linq; using Microsoft.Framework.Logging; using Xunit; @@ -60,15 +59,11 @@ namespace Microsoft.AspNet.Identity.Test } private static void VerifySuccessLog(ILogger logger, string className, string methodName, string id, string userOrRole = "user") { - if (logger is TestFileLogger) + TestLogger testlogger = logger as TestLogger; + if (testlogger != null) { - var fileLogger = logger as TestFileLogger; string expected = string.Format("{0} for {1}: {2} : Success", methodName, userOrRole, id); - - lock (TestFileLogger.FileLock) - { - Assert.True(File.ReadAllText(fileLogger.FileName).Contains(expected)); - } + Assert.True(testlogger.LogMessages.Contains(expected)); } else { @@ -78,13 +73,10 @@ namespace Microsoft.AspNet.Identity.Test public static void VerifyLogMessage(ILogger logger, string expectedLog) { - if (logger is TestFileLogger) + TestLogger testlogger = logger as TestLogger; + if (testlogger != null) { - var fileLogger = logger as TestFileLogger; - lock (TestFileLogger.FileLock) - { - Assert.True(File.ReadAllText(fileLogger.FileName).Contains(expectedLog)); - } + Assert.True(testlogger.LogMessages.Contains(expectedLog)); } else { @@ -94,16 +86,13 @@ namespace Microsoft.AspNet.Identity.Test private static void VerifyFailureLog(ILogger logger, string className, string methodName, string userId, string userOrRole = "user", params IdentityError[] errors) { - if (logger is TestFileLogger) + TestLogger testlogger = logger as TestLogger; + if (testlogger != null) { - var fileLogger = logger as TestFileLogger; errors = errors ?? new IdentityError[] { new IdentityError() }; string expected = string.Format("{0} for {1}: {2} : Failed : {3}", methodName, userOrRole, userId, string.Join(",", errors.Select(x => x.Code).ToList())); - lock (TestFileLogger.FileLock) - { - Assert.True(File.ReadAllText(fileLogger.FileName).Contains(expected)); - } + Assert.True(testlogger.LogMessages.Contains(expected)); } else { diff --git a/test/Shared/TestFileLogger.cs b/test/Shared/TestFileLogger.cs deleted file mode 100644 index 2124942b4c..0000000000 --- a/test/Shared/TestFileLogger.cs +++ /dev/null @@ -1,48 +0,0 @@ -// 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; -using System.IO; -using Microsoft.Framework.Logging; - -namespace Microsoft.AspNet.Identity.Test -{ - public class TestFileLogger : ILogger - { - public string FileName { get; set; } - - public static object FileLock { get; private set; } = new object(); - - public TestFileLogger(string name) - { - var directory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "IdentityTests"); - Directory.CreateDirectory(directory); - FileName = Path.Combine(directory, (name + DateTime.Now.Ticks + "log.txt")); - lock (FileLock) - { - if (!File.Exists(FileName)) - { - File.Create(FileName).Close(); - } - } - } - - public IDisposable BeginScope(object state) - { - throw new NotImplementedException(); - } - - public bool IsEnabled(LogLevel logLevel) - { - return true; - } - - public void Write(LogLevel logLevel, int eventId, object state, Exception exception, Func formatter) - { - lock (FileLock) - { - File.AppendAllLines(FileName, new string[] { state.ToString() }); - } - } - } -} \ No newline at end of file diff --git a/test/Shared/TestFileLoggerFactory.cs b/test/Shared/TestFileLoggerFactory.cs deleted file mode 100644 index 97ce20582e..0000000000 --- a/test/Shared/TestFileLoggerFactory.cs +++ /dev/null @@ -1,55 +0,0 @@ -// 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; -using System.Collections.Generic; -using System.Threading.Tasks; -using System.IO; -using Microsoft.Framework.Logging; - -namespace Microsoft.AspNet.Identity.Test -{ - public class TestFileLoggerFactory : ILoggerFactory, IDisposable - { - private static Dictionary _loggers; - - static TestFileLoggerFactory() - { - _loggers = new Dictionary(); - } - - public void AddProvider(ILoggerProvider provider) - { - - } - - public ILogger Create(string name) - { - if (!_loggers.ContainsKey(name)) - { - try - { - _loggers.Add(name, new TestFileLogger(name)); - } - catch (ArgumentException ex) - { - // Silently skip if there is already a logger with that key - } - } - - return _loggers[name]; - } - - public void Dispose() - { - Parallel.ForEach(_loggers.Values, l => - { - if(l is TestFileLogger) - { - var logger = l as TestFileLogger; - File.Delete(logger.FileName); - } - }); - } - } -} diff --git a/test/Shared/TestLogger.cs b/test/Shared/TestLogger.cs new file mode 100644 index 0000000000..7cd1db5d86 --- /dev/null +++ b/test/Shared/TestLogger.cs @@ -0,0 +1,29 @@ +// 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; +using System.Collections.Generic; +using Microsoft.Framework.Logging; + +namespace Microsoft.AspNet.Identity.Test +{ + public class TestLogger : ILogger + { + public IList LogMessages { get; private set; } = new List(); + + public IDisposable BeginScope(object state) + { + throw new NotImplementedException(); + } + + public bool IsEnabled(LogLevel logLevel) + { + return true; + } + + public void Write(LogLevel logLevel, int eventId, object state, Exception exception, Func formatter) + { + LogMessages.Add(state.ToString()); + } + } +} \ No newline at end of file diff --git a/test/Shared/TestLoggerFactory.cs b/test/Shared/TestLoggerFactory.cs new file mode 100644 index 0000000000..5d03765a57 --- /dev/null +++ b/test/Shared/TestLoggerFactory.cs @@ -0,0 +1,20 @@ +// 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 Microsoft.Framework.Logging; + +namespace Microsoft.AspNet.Identity.Test +{ + public class TestLoggerFactory : ILoggerFactory + { + public void AddProvider(ILoggerProvider provider) + { + + } + + public ILogger Create(string name) + { + return new TestLogger(); + } + } +} diff --git a/test/Shared/UserManagerTestBase.cs b/test/Shared/UserManagerTestBase.cs index 037a8b1ca9..a4d1e0b4ce 100644 --- a/test/Shared/UserManagerTestBase.cs +++ b/test/Shared/UserManagerTestBase.cs @@ -26,11 +26,11 @@ namespace Microsoft.AspNet.Identity.Test where TRole : IdentityRole, new() where TKey : IEquatable { - protected TestFileLoggerFactory loggerFactory; + protected TestLoggerFactory loggerFactory; public UserManagerTestBase() { - loggerFactory = new TestFileLoggerFactory(); + loggerFactory = new TestLoggerFactory(); } protected virtual void SetupIdentityServices(IServiceCollection services, object context = null)