diff --git a/test/AgileConfig.Server.ServiceTests/sqlite/AppServiceTests.cs b/test/AgileConfig.Server.ServiceTests/sqlite/AppServiceTests.cs index e8fe000a..f7cf6e2e 100644 --- a/test/AgileConfig.Server.ServiceTests/sqlite/AppServiceTests.cs +++ b/test/AgileConfig.Server.ServiceTests/sqlite/AppServiceTests.cs @@ -10,7 +10,6 @@ using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Configuration; using Moq; -using AgileConfig.Server.Common; using AgileConfig.Server.Data.Freesql; using AgileConfig.Server.Data.Repository.Selector; @@ -19,6 +18,8 @@ namespace AgileConfig.Server.ServiceTests.sqlite [TestClass()] public class AppServiceTests : BasicTestService { + IServiceProvider _serviceProvider = null; + IServiceScope _serviceScope = null; IAppService _appservice = null; public override Task> GetConfigurationData() { @@ -30,16 +31,8 @@ public override Task> GetConfigurationData() }); } - [TestInitialize] - public async Task TestInitialize() + public virtual async Task NewGlobalSp() { - if (_appservice != null) - { - Console.WriteLine("IAppService already there."); - - return; - } - Console.WriteLine("Try get configration data"); var dict = await GetConfigurationData(); @@ -57,8 +50,6 @@ public async Task TestInitialize() Console.WriteLine($"key: {item.Key} value: {item.Value}"); } - ClearData(); - var cache = new Mock(); IServiceCollection services = new ServiceCollection(); services.AddScoped(_ => cache.Object); @@ -68,18 +59,36 @@ public async Task TestInitialize() services.AddRepositories(); services.AddBusinessServices(); - _serviceProvider = services.BuildServiceProvider(); + return services.BuildServiceProvider(); + } + + [TestInitialize] + public async Task TestInitialize() + { + this.GlobalServiceProvider = await NewGlobalSp(); + + ClearData(); + + _serviceScope = this.GlobalServiceProvider.CreateScope(); + _serviceProvider = _serviceScope.ServiceProvider; + var systeminitializationService = _serviceProvider.GetService(); systeminitializationService.TryInitDefaultEnvironment();//初始化环境 DEV TEST STAGE PROD systeminitializationService.TryInitJwtSecret();//初始化 jwt secret - _appservice = _serviceProvider.GetService(); Console.WriteLine("Run TestInitialize"); } + [TestCleanup] + public void TestCleanup() + { + _appservice.Dispose(); + _serviceScope.Dispose(); + } + [TestMethod()] public async Task AddAsyncTest() { diff --git a/test/AgileConfig.Server.ServiceTests/sqlite/BasicTestService.cs b/test/AgileConfig.Server.ServiceTests/sqlite/BasicTestService.cs index f8d0e666..6f150440 100644 --- a/test/AgileConfig.Server.ServiceTests/sqlite/BasicTestService.cs +++ b/test/AgileConfig.Server.ServiceTests/sqlite/BasicTestService.cs @@ -1,16 +1,9 @@ using AgileConfig.Server.Common; -using AgileConfig.Server.Data.Abstraction; using AgileConfig.Server.Data.Abstraction.DbProvider; using AgileConfig.Server.Data.Entity; using AgileConfig.Server.Data.Freesql; -using AgileConfig.Server.Data.Repository.Freesql; -using AgileConfig.Server.Data.Repository.Selector; -using AgileConfig.Server.IService; -using AgileConfig.Server.Service; -using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Moq; using System; using System.Collections.Generic; using System.Threading.Tasks; @@ -19,8 +12,8 @@ namespace AgileConfig.Server.ServiceTests.sqlite { public class BasicTestService { - protected ServiceProvider _serviceProvider; - + protected ServiceProvider GlobalServiceProvider { get; set; } + public virtual Task> GetConfigurationData() { return @@ -44,15 +37,6 @@ public IFreeSql GetFreeSql() public virtual void ClearData() { - var dict = new Dictionary - { - {"db:provider","sqlite" }, - {"db:conn","Data Source=agile_config.db" } - }; - var config = new ConfigurationBuilder() - .AddInMemoryCollection(dict) - .Build(); - var fsq = GetFreeSql(); fsq.Delete().Where("1=1").ExecuteAffrows(); diff --git a/test/AgileConfig.Server.ServiceTests/sqlite/ConfigServiceTests.cs b/test/AgileConfig.Server.ServiceTests/sqlite/ConfigServiceTests.cs index fcdec45f..dbe40054 100644 --- a/test/AgileConfig.Server.ServiceTests/sqlite/ConfigServiceTests.cs +++ b/test/AgileConfig.Server.ServiceTests/sqlite/ConfigServiceTests.cs @@ -12,7 +12,6 @@ using AgileConfig.Server.Data.Abstraction; using AgileConfig.Server.Service; using Microsoft.Extensions.Configuration; -using AgileConfig.Server.Common; using AgileConfig.Server.Data.Repository.Selector; namespace AgileConfig.Server.ServiceTests.sqlite @@ -20,6 +19,8 @@ namespace AgileConfig.Server.ServiceTests.sqlite [TestClass()] public class ConfigServiceTests : BasicTestService { + IServiceProvider _serviceProvider = null; + IServiceScope _serviceScope = null; IConfigService _service = null; public override Task> GetConfigurationData() { @@ -34,13 +35,24 @@ public override Task> GetConfigurationData() [TestInitialize] public async Task TestInitialize() { - if (_service != null) - { - Console.WriteLine("IConfigService already there."); + await NewGloablSp(); - return; - } + ClearData(); + _serviceScope = this.GlobalServiceProvider.CreateScope(); + _serviceProvider = this.GlobalServiceProvider.CreateScope().ServiceProvider; + + _service = this._serviceProvider.GetService(); + + var systeminitializationService = this._serviceProvider.GetService(); + systeminitializationService.TryInitDefaultEnvironment();//初始化环境 DEV TEST STAGE PROD + systeminitializationService.TryInitJwtSecret();//初始化 jwt secret + + Console.WriteLine("Run TestInitialize"); + } + + private async Task NewGloablSp() + { Console.WriteLine("Try get configration data"); var dict = await GetConfigurationData(); @@ -57,9 +69,6 @@ public async Task TestInitialize() { Console.WriteLine($"key: {item.Key} value: {item.Value}"); } - - ClearData(); - var cache = new Mock(); IServiceCollection services = new ServiceCollection(); services.AddScoped(_ => cache.Object); @@ -69,17 +78,15 @@ public async Task TestInitialize() services.AddRepositories(); services.AddBusinessServices(); - _serviceProvider = services.BuildServiceProvider(); - var systeminitializationService = _serviceProvider.GetService(); - systeminitializationService.TryInitDefaultEnvironment();//初始化环境 DEV TEST STAGE PROD - systeminitializationService.TryInitJwtSecret();//初始化 jwt secret - - - _service = _serviceProvider.GetService(); - - Console.WriteLine("Run TestInitialize"); + this.GlobalServiceProvider = services.BuildServiceProvider(); } + [TestCleanup] + public void TestCleanup() + { + _service.Dispose(); + _serviceScope.Dispose(); + } [TestMethod()] public async Task AddAsyncTest() diff --git a/test/AgileConfig.Server.ServiceTests/sqlite/ServerNodeServiceTests.cs b/test/AgileConfig.Server.ServiceTests/sqlite/ServerNodeServiceTests.cs index 7050d1a6..81f5254a 100644 --- a/test/AgileConfig.Server.ServiceTests/sqlite/ServerNodeServiceTests.cs +++ b/test/AgileConfig.Server.ServiceTests/sqlite/ServerNodeServiceTests.cs @@ -20,7 +20,10 @@ namespace AgileConfig.Server.ServiceTests.sqlite [TestClass()] public class ServerNodeServiceTests : BasicTestService { + IServiceProvider _serviceProvider = null; + IServiceScope _serviceScope = null; IServerNodeService _serverNodeService = null; + public override Task> GetConfigurationData() { return @@ -34,13 +37,24 @@ public override Task> GetConfigurationData() [TestInitialize] public async Task TestInitialize() { - if (_serverNodeService != null) - { - Console.WriteLine("IServerNodeService already there."); + await NewGlobalSp(); - return; - } + _serviceScope = GlobalServiceProvider.CreateScope(); + _serviceProvider = _serviceScope.ServiceProvider; + + var systeminitializationService = _serviceProvider.GetService(); + systeminitializationService.TryInitDefaultEnvironment();//初始化环境 DEV TEST STAGE PROD + systeminitializationService.TryInitJwtSecret();//初始化 jwt secret + + _serverNodeService = _serviceProvider.GetService(); + + Console.WriteLine($"IServerNodeService type is {_serverNodeService.GetType().FullName}"); + + Console.WriteLine("Run TestInitialize"); + } + private async Task NewGlobalSp() + { Console.WriteLine("Try get configration data"); var dict = await GetConfigurationData(); @@ -67,17 +81,14 @@ public async Task TestInitialize() services.AddRepositories(); services.AddBusinessServices(); - _serviceProvider = services.BuildServiceProvider(); - var systeminitializationService = _serviceProvider.GetService(); - systeminitializationService.TryInitDefaultEnvironment();//初始化环境 DEV TEST STAGE PROD - systeminitializationService.TryInitJwtSecret();//初始化 jwt secret - - - _serverNodeService = _serviceProvider.GetService(); - - Console.WriteLine($"IServerNodeService type is {_serverNodeService.GetType().FullName}"); + this.GlobalServiceProvider = services.BuildServiceProvider(); + } - Console.WriteLine("Run TestInitialize"); + [TestCleanup] + public void TestCleanup() + { + _serverNodeService.Dispose(); + _serviceScope.Dispose(); } [TestMethod()] diff --git a/test/AgileConfig.Server.ServiceTests/sqlite/SettingServiceTests.cs b/test/AgileConfig.Server.ServiceTests/sqlite/SettingServiceTests.cs index 03253163..42bcb693 100644 --- a/test/AgileConfig.Server.ServiceTests/sqlite/SettingServiceTests.cs +++ b/test/AgileConfig.Server.ServiceTests/sqlite/SettingServiceTests.cs @@ -19,7 +19,10 @@ namespace AgileConfig.Server.ServiceTests.sqlite [TestClass()] public class SettingServiceTests : BasicTestService { + IServiceProvider _serviceProvider = null; + IServiceScope _serviceScope = null; ISettingService _settingService = null; + public override Task> GetConfigurationData() { return @@ -34,13 +37,24 @@ public override Task> GetConfigurationData() [TestInitialize] public async Task TestInitialize() { - if (_settingService != null) - { - Console.WriteLine("ISettingService already there."); + await NewGlobalSp(); - return; - } + ClearData(); + + _serviceScope = GlobalServiceProvider.CreateScope(); + _serviceProvider = _serviceScope.ServiceProvider; + + var systeminitializationService = _serviceProvider.GetService(); + systeminitializationService.TryInitDefaultEnvironment();//初始化环境 DEV TEST STAGE PROD + systeminitializationService.TryInitJwtSecret();//初始化 jwt secret + + _settingService = _serviceProvider.GetService(); + + Console.WriteLine("Run TestInitialize"); + } + private async Task NewGlobalSp() + { Console.WriteLine("Try get configration data"); var dict = await GetConfigurationData(); @@ -58,8 +72,6 @@ public async Task TestInitialize() Console.WriteLine($"key: {item.Key} value: {item.Value}"); } - ClearData(); - var cache = new Mock(); IServiceCollection services = new ServiceCollection(); services.AddScoped(_ => cache.Object); @@ -69,17 +81,15 @@ public async Task TestInitialize() services.AddRepositories(); services.AddBusinessServices(); - _serviceProvider = services.BuildServiceProvider(); - var systeminitializationService = _serviceProvider.GetService(); - systeminitializationService.TryInitDefaultEnvironment();//初始化环境 DEV TEST STAGE PROD - systeminitializationService.TryInitJwtSecret();//初始化 jwt secret - - - _settingService = _serviceProvider.GetService(); - - Console.WriteLine("Run TestInitialize"); + this.GlobalServiceProvider = services.BuildServiceProvider(); } + [TestCleanup] + public void TestCleanup() + { + _settingService.Dispose(); + _serviceScope.Dispose(); + } [TestMethod()] public async Task AddAsyncTest() diff --git a/test/AgileConfig.Server.ServiceTests/sqlite/SysLogServiceTests.cs b/test/AgileConfig.Server.ServiceTests/sqlite/SysLogServiceTests.cs index bf4989bc..1e7cc9a9 100644 --- a/test/AgileConfig.Server.ServiceTests/sqlite/SysLogServiceTests.cs +++ b/test/AgileConfig.Server.ServiceTests/sqlite/SysLogServiceTests.cs @@ -20,7 +20,10 @@ namespace AgileConfig.Server.ServiceTests.sqlite [TestClass()] public class SysLogServiceTests: BasicTestService { + IServiceProvider _serviceProvider = null; + IServiceScope _serviceScope = null; ISysLogService _syslogservice = null; + public override Task> GetConfigurationData() { return @@ -35,13 +38,24 @@ public override Task> GetConfigurationData() [TestInitialize] public async Task TestInitialize() { - if (_syslogservice != null) - { - Console.WriteLine("ISysLogService already there."); + await NewGlobalSp(); - return; - } + ClearData(); + + _serviceScope = GlobalServiceProvider.CreateScope(); + _serviceProvider = _serviceScope.ServiceProvider; + + var systeminitializationService = _serviceProvider.GetService(); + systeminitializationService.TryInitDefaultEnvironment();//初始化环境 DEV TEST STAGE PROD + systeminitializationService.TryInitJwtSecret();//初始化 jwt secret + + _syslogservice = _serviceProvider.GetService(); + + Console.WriteLine("Run TestInitialize"); + } + private async Task NewGlobalSp() + { Console.WriteLine("Try get configration data"); var dict = await GetConfigurationData(); @@ -59,8 +73,6 @@ public async Task TestInitialize() Console.WriteLine($"key: {item.Key} value: {item.Value}"); } - ClearData(); - var cache = new Mock(); IServiceCollection services = new ServiceCollection(); services.AddLogging(); @@ -71,18 +83,15 @@ public async Task TestInitialize() services.AddRepositories(); services.AddBusinessServices(); - _serviceProvider = services.BuildServiceProvider(); - var systeminitializationService = _serviceProvider.GetService(); - systeminitializationService.TryInitDefaultEnvironment();//初始化环境 DEV TEST STAGE PROD - systeminitializationService.TryInitJwtSecret();//初始化 jwt secret - - - _syslogservice = _serviceProvider.GetService(); - - Console.WriteLine("Run TestInitialize"); + this.GlobalServiceProvider = services.BuildServiceProvider(); } - + [TestCleanup] + public void TestCleanup() + { + _syslogservice.Dispose(); + _serviceScope.Dispose(); + } [TestMethod()] public async Task AddSysLogAsyncTest()