Skip to content

Commit 1cdad4c

Browse files
csnewmanSteveSandersonMS
authored andcommitted
Add service factory autofac test
1 parent 717020c commit 1cdad4c

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

src/Components/test/Microsoft.AspNetCore.Components.Browser.Test/Hosting/WebAssemblyHostBuilderTest.cs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

44
using System;
5+
using System.Collections.Generic;
56
using System.Text;
7+
using Autofac;
8+
using Autofac.Extensions.DependencyInjection;
69
using Microsoft.Extensions.DependencyInjection;
710
using Xunit;
811

@@ -76,5 +79,44 @@ public void ConfigureServices(IServiceCollection services)
7679
services.AddSingleton<string>("foo");
7780
}
7881
}
82+
83+
[Fact]
84+
public void HostBuilder_ServiceFactory_Autofac()
85+
{
86+
// Arrange
87+
var builder = new WebAssemblyHostBuilder();
88+
builder.ConfigureServices((c, s) => s.AddSingleton<IServiceProviderFactory<IServiceCollection>>(new MyServiceProviderFactory()));
89+
90+
// Act
91+
var host = builder.Build();
92+
93+
// Assert
94+
Assert.IsType<AutofacServiceProvider>(host.Services);
95+
}
96+
97+
private class MyServiceProviderFactory : IServiceProviderFactory<IServiceCollection>
98+
{
99+
public IServiceCollection CreateBuilder(IServiceCollection services)
100+
{
101+
return new MyServiceCollection(services);
102+
}
103+
104+
public IServiceProvider CreateServiceProvider(IServiceCollection serviceCollection)
105+
{
106+
Assert.IsType<MyServiceCollection>(serviceCollection);
107+
var containerBuilder = new ContainerBuilder();
108+
containerBuilder.Populate(serviceCollection);
109+
var container = containerBuilder.Build();
110+
return new AutofacServiceProvider(container);
111+
}
112+
}
113+
114+
private class MyServiceCollection : List<ServiceDescriptor>, IServiceCollection
115+
{
116+
public MyServiceCollection(IEnumerable<ServiceDescriptor> collection) : base(collection)
117+
{
118+
}
119+
}
120+
79121
}
80122
}

src/Components/test/Microsoft.AspNetCore.Components.Browser.Test/Microsoft.AspNetCore.Components.Browser.Test.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10+
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="4.3.1" />
1011
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
1112
<PackageReference Include="xunit" Version="2.3.1" />
1213
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />

0 commit comments

Comments
 (0)