Commit 39caac85 authored by Steve Smith's avatar Steve Smith

All but line 26 in Startup references to Infrastructure removed

parent 5f0182a0
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\CleanArchitecture.Core\CleanArchitecture.Core.csproj" /> <ProjectReference Include="..\CleanArchitecture.Core\CleanArchitecture.Core.csproj" />
<ProjectReference Include="..\CleanArchitecture.Infrastructure\CleanArchitecture.Infrastructure.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
......
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore; using Microsoft.AspNetCore;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using CleanArchitecture.Core.Interfaces;
using System;
namespace CleanArchitecture.Web namespace CleanArchitecture.Web
{ {
...@@ -7,7 +11,26 @@ namespace CleanArchitecture.Web ...@@ -7,7 +11,26 @@ namespace CleanArchitecture.Web
{ {
public static void Main(string[] args) public static void Main(string[] args)
{ {
BuildWebHost(args).Run(); var host = BuildWebHost(args);
using (var scope = host.Services.CreateScope())
{
var services = scope.ServiceProvider;
var loggerFactory = services.GetRequiredService<ILoggerFactory>();
try
{
var seedData = services.GetRequiredService<ISeedData>();
seedData.PopulateTestData();
}
catch (Exception ex)
{
var logger = loggerFactory.CreateLogger<Program>();
logger.LogError(ex, "An error occurred seeding the DB.");
}
}
host.Run();
} }
public static IWebHost BuildWebHost(string[] args) => public static IWebHost BuildWebHost(string[] args) =>
......
using System; using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.Core.SharedKernel;
using CleanArchitecture.Infrastructure.Data; using CleanArchitecture.Infrastructure.Data;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
...@@ -9,6 +7,7 @@ using Microsoft.Extensions.Configuration; ...@@ -9,6 +7,7 @@ using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using StructureMap; using StructureMap;
using System;
namespace CleanArchitecture.Web namespace CleanArchitecture.Web
{ {
...@@ -23,7 +22,6 @@ namespace CleanArchitecture.Web ...@@ -23,7 +22,6 @@ namespace CleanArchitecture.Web
public IServiceProvider ConfigureServices(IServiceCollection services) public IServiceProvider ConfigureServices(IServiceCollection services)
{ {
// TODO: Add DbContext and IOC
string dbName = Guid.NewGuid().ToString(); string dbName = Guid.NewGuid().ToString();
services.AddDbContext<AppDbContext>(options => services.AddDbContext<AppDbContext>(options =>
options.UseInMemoryDatabase(dbName)); options.UseInMemoryDatabase(dbName));
...@@ -55,16 +53,6 @@ namespace CleanArchitecture.Web ...@@ -55,16 +53,6 @@ namespace CleanArchitecture.Web
return container.GetInstance<IServiceProvider>(); return container.GetInstance<IServiceProvider>();
} }
public void ConfigureTesting(IApplicationBuilder app,
IHostingEnvironment env,
ILoggerFactory loggerFactory,
ISeedData seedData)
{
this.Configure(app, env, loggerFactory);
SeedData.PopulateTestData(app.ApplicationServices.GetService<AppDbContext>());
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{ {
loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddConsole(Configuration.GetSection("Logging"));
......
using CleanArchitecture.Web; using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.Web;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc.ApplicationParts; using Microsoft.AspNetCore.Mvc.ApplicationParts;
using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc.Controllers;
...@@ -29,13 +30,18 @@ namespace CleanArchitecture.Tests.Integration.Web ...@@ -29,13 +30,18 @@ namespace CleanArchitecture.Tests.Integration.Web
var builder = new WebHostBuilder() var builder = new WebHostBuilder()
.UseContentRoot(contentRoot) .UseContentRoot(contentRoot)
.ConfigureServices(InitializeServices) .ConfigureServices(InitializeServices)
.UseStartup<Startup>() .UseStartup<Startup>();
.UseEnvironment("Testing"); // ensure ConfigureTesting is called in Startup
var server = new TestServer(builder); var server = new TestServer(builder);
var client = server.CreateClient();
return client; using (var scope = server.Host.Services.CreateScope())
{
var services = scope.ServiceProvider;
var seedData = services.GetRequiredService<ISeedData>();
seedData.PopulateTestData();
}
return server.CreateClient();
} }
protected virtual void InitializeServices(IServiceCollection services) protected virtual void InitializeServices(IServiceCollection services)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment