diff --git a/.gitignore b/.gitignore
index 11181a0..827bbf5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -298,3 +298,4 @@ __pycache__/
*.odx.cs
*.xsd.cs
sample/MongoIdentitySample.Mvc/appsettings.local.json
+test/AspNetCore.Identity.MongoDbCore.IntegrationTests/appsettings.local.json
diff --git a/test/AspNetCore.Identity.MongoDbCore.IntegrationTests/AspNetCore.Identity.MongoDbCore.IntegrationTests.csproj b/test/AspNetCore.Identity.MongoDbCore.IntegrationTests/AspNetCore.Identity.MongoDbCore.IntegrationTests.csproj
index 44f31f6..2ab4ae9 100644
--- a/test/AspNetCore.Identity.MongoDbCore.IntegrationTests/AspNetCore.Identity.MongoDbCore.IntegrationTests.csproj
+++ b/test/AspNetCore.Identity.MongoDbCore.IntegrationTests/AspNetCore.Identity.MongoDbCore.IntegrationTests.csproj
@@ -33,4 +33,9 @@
+
+
+ Always
+
+
diff --git a/test/AspNetCore.Identity.MongoDbCore.IntegrationTests/Infrastructure/Container.cs b/test/AspNetCore.Identity.MongoDbCore.IntegrationTests/Infrastructure/Container.cs
index c2e3de0..523ec3d 100644
--- a/test/AspNetCore.Identity.MongoDbCore.IntegrationTests/Infrastructure/Container.cs
+++ b/test/AspNetCore.Identity.MongoDbCore.IntegrationTests/Infrastructure/Container.cs
@@ -1,5 +1,6 @@
using AspNetCore.Identity.MongoDbCore.Extensions;
using AspNetCore.Identity.MongoDbCore.Infrastructure;
+using Microsoft.Extensions.Configuration;
using System;
namespace AspNetCore.Identity.MongoDbCore.IntegrationTests.Infrastructure
@@ -12,22 +13,47 @@ namespace AspNetCore.Identity.MongoDbCore.IntegrationTests.Infrastructure
public static class Container
{
- public static MongoDbIdentityConfiguration MongoDbIdentityConfiguration = new MongoDbIdentityConfiguration
+ public static IConfiguration Configuration { get; set; }
+
+ static Container()
{
- MongoDbSettings = new MongoDbSettings
+ var builder = new ConfigurationBuilder()
+ .SetBasePath(System.Environment.CurrentDirectory)
+ .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
+ //per user config that is not committed to repo, use this to override settings (e.g. connection string) based on your local environment.
+ .AddJsonFile($"appsettings.local.json", optional: true);
+
+ //builder.AddEnvironmentVariables();
+
+ Configuration = builder.Build();
+
+ var databaseSettings = Configuration.Load("MongoDbSettings");
+
+ MongoDbIdentityConfiguration = new MongoDbIdentityConfiguration()
{
- ConnectionString = "mongodb://localhost:27017",
- DatabaseName = "MongoDbTests"
- },
- IdentityOptionsAction = options =>
+ MongoDbSettings = databaseSettings,
+ IdentityOptionsAction = (options) =>
+ {
+ options.Password.RequireDigit = false;
+ options.Password.RequireLowercase = false;
+ options.Password.RequireNonAlphanumeric = false;
+ options.Password.RequireUppercase = false;
+ options.User.AllowedUserNameCharacters = null;
+ }
+ };
+
+ lock (Locks.MongoInitLock)
{
- options.Password.RequireDigit = false;
- options.Password.RequireLowercase = false;
- options.Password.RequireNonAlphanumeric = false;
- options.Password.RequireUppercase = false;
- options.User.AllowedUserNameCharacters = null;
+ _mongoDbRepository = new MongoRepository(
+ databaseSettings.ConnectionString,
+ databaseSettings.DatabaseName);
+ _mongoDbRepository2 = new MongoRepository(
+ databaseSettings.ConnectionString,
+ databaseSettings.DatabaseName);
}
- };
+ }
+
+ public static MongoDbIdentityConfiguration MongoDbIdentityConfiguration { get; set; }
public static IServiceProvider Instance { get; set; }
@@ -36,19 +62,6 @@ namespace AspNetCore.Identity.MongoDbCore.IntegrationTests.Infrastructure
private static readonly IMongoRepository _mongoDbRepository2;
- static Container()
- {
- lock (Locks.MongoInitLock)
- {
- _mongoDbRepository = new MongoRepository(
- MongoDbIdentityConfiguration.MongoDbSettings.ConnectionString,
- MongoDbIdentityConfiguration.MongoDbSettings.DatabaseName);
- _mongoDbRepository2 = new MongoRepository(
- MongoDbIdentityConfiguration.MongoDbSettings.ConnectionString,
- MongoDbIdentityConfiguration.MongoDbSettings.DatabaseName);
- }
- }
-
public static IMongoRepository MongoRepository
{
get
@@ -65,4 +78,20 @@ namespace AspNetCore.Identity.MongoDbCore.IntegrationTests.Infrastructure
}
}
}
+
+ public static class ConfigurationExtensions
+ {
+ public static T Load(this IConfiguration configuration, string key) where T : new()
+ {
+ var instance = new T();
+ configuration.GetSection(key).Bind(instance);
+ return instance;
+ }
+
+ public static T Load(this IConfiguration configuration, string key, T instance) where T : new()
+ {
+ configuration.GetSection(key).Bind(instance);
+ return instance;
+ }
+ }
}
diff --git a/test/AspNetCore.Identity.MongoDbCore.IntegrationTests/appsettings.json b/test/AspNetCore.Identity.MongoDbCore.IntegrationTests/appsettings.json
new file mode 100644
index 0000000..5c53f25
--- /dev/null
+++ b/test/AspNetCore.Identity.MongoDbCore.IntegrationTests/appsettings.json
@@ -0,0 +1,12 @@
+{
+ "MongoDbSettings": {
+ "ConnectionString": "mongodb://localhost:27017",
+ "DatabaseName": "MongoDbTests"
+ },
+ "Logging": {
+ "IncludeScopes": false,
+ "LogLevel": {
+ "Default": "Warning"
+ }
+ }
+}