CR comments

- change order a bit and add a unit test
This commit is contained in:
Doug Bunting 2015-03-06 16:44:55 -08:00
parent 9618dfa272
commit ee55e38260
2 changed files with 29 additions and 2 deletions

View File

@ -23,13 +23,13 @@ namespace Microsoft.AspNet.Hosting
services.AddTransient(service, sp => fallbackProvider.GetService(service));
}
services.AddSingleton<IServiceManifest>(sp => new HostingManifest(services));
if (configureHostServices != null)
{
configureHostServices(services);
}
services.AddSingleton<IServiceManifest>(sp => new HostingManifest(services));
return services;
}

View File

@ -119,6 +119,33 @@ namespace Microsoft.AspNet.Hosting.Tests
Assert.Same(singleton, provider.GetRequiredService<IFakeService>());
}
[Fact]
public void CreateAdditionalServices_IncludesServicesInManifest()
{
// Arrange
var fallbackServices = new ServiceCollection();
fallbackServices.AddTransient<IFakeService, FakeService>();
fallbackServices.AddInstance<IServiceManifest>(new ServiceManifest(
new Type[] {
typeof(IFakeService),
}));
var expectedInstance = new FakeService();
var services = HostingServices.Create(
fallbackServices.BuildServiceProvider(),
additionalHostServices => additionalHostServices.AddInstance<IFakeServiceInstance>(expectedInstance));
// Act
var provider = services.BuildServiceProvider();
var instance = provider.GetRequiredService<IFakeServiceInstance>();
var anotherInstance = provider.GetRequiredService<IFakeServiceInstance>();
var manifest = provider.GetRequiredService<IServiceManifest>();
// Assert
Assert.Same(expectedInstance, instance);
Assert.Same(expectedInstance, anotherInstance);
Assert.Contains(typeof(IFakeServiceInstance), manifest.Services);
}
[Fact]
public void CanHideImportedServices()
{