Added empty module runner.

pull/81/head
Halil İbrahim Kalkan 9 years ago
parent 525f40970f
commit 23d4f718c7

@ -0,0 +1,47 @@
using System;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Volo.Abp.Modularity;
namespace Volo.Abp
{
public class AbpApplication : IDisposable
{
public Type StartupModuleType { get; }
private readonly IServiceCollection _services;
private IServiceProvider _serviceProvider;
private AbpApplication(Type startupModuleType, IServiceCollection services)
{
StartupModuleType = startupModuleType;
_services = services;
_services.AddCoreAbp();
}
public static AbpApplication Create<TStartupModule>(IServiceCollection services)
where TStartupModule : IAbpModule
{
return new AbpApplication(typeof(TStartupModule), services);
}
public void Start(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
_serviceProvider.GetRequiredService<IModuleRunner>().Start();
}
public void Dispose()
{
_serviceProvider.GetRequiredService<IModuleRunner>().Stop();
}
}
internal static class AbpServiceCollectionExtensions
{
public static void AddCoreAbp(this IServiceCollection services)
{
services.TryAddSingleton<IModuleRunner, ModuleRunner>();
}
}
}

@ -0,0 +1,9 @@
namespace Volo.Abp.Modularity
{
public interface IModuleRunner
{
void Start();
void Stop();
}
}

@ -0,0 +1,15 @@
namespace Volo.Abp.Modularity
{
public class ModuleRunner : IModuleRunner
{
public void Start()
{
}
public void Stop()
{
}
}
}

@ -2,7 +2,6 @@
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.1",
"dotnet-test-xunit": "2.2.0-preview2-build1029",
"NSubstitute": "2.0.0-rc",
"Shouldly": "2.8.2",

@ -0,0 +1,20 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Tests.Modularity;
using Xunit;
namespace Volo.Abp.Tests
{
public class AbpApplication_Tests
{
[Fact]
public void Should_Start_And_Stop_Empty_AbpApplication()
{
var services = new ServiceCollection();
using (var application = AbpApplication.Create<IndependentEmptyModule>(services))
{
application.Start(services.BuildServiceProvider());
}
}
}
}

@ -0,0 +1,13 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity;
namespace Volo.Abp.Tests.Modularity
{
public class IndependentEmptyModule : IAbpModule
{
public void ConfigureServices(IServiceCollection services)
{
}
}
}

@ -1,15 +0,0 @@
using System.Reflection;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity;
using Volo.DependencyInjection;
namespace Volo.Abp.Tests.Modularity
{
public class TestModule : IAbpModule
{
public void ConfigureServices(IServiceCollection services)
{
services.AddAssembly(typeof(TestModule).GetTypeInfo().Assembly);
}
}
}

@ -4,7 +4,6 @@
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
<PropertyGroup Label="Globals">
<ProjectGuid>e9a85f1b-a5cb-4e19-b2bb-a7f97bb25ee1</ProjectGuid>
@ -13,9 +12,11 @@
<OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
</PropertyGroup>
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
</Project>
</Project>

@ -1,14 +1,21 @@
{
"version": "1.0.0-*",
"testRunner": "xunit",
"dependencies": {
"NETStandard.Library": "1.6.1",
"AbpTestBase": "1.0.0-*",
"Volo.Abp": "1.0.0-*"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
}
}
}
}

@ -5,7 +5,6 @@
"dependencies": {
"AbpTestBase": "1.0.0-*",
"NETStandard.Library": "1.6.1",
"Volo.DependencyInjection": "1.0.0-*"
},

Loading…
Cancel
Save