Skip to content

Commit a81e910

Browse files
committed
Fixed #2: Service registrations do not work when made inside Module.
1 parent 1de5b64 commit a81e910

8 files changed

+77
-9
lines changed

src/Autofac.Integration.ServiceFabric/Autofac.Integration.ServiceFabric.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@
4444
<AssemblyOriginatorKeyFile>..\..\Autofac.snk</AssemblyOriginatorKeyFile>
4545
</PropertyGroup>
4646
<ItemGroup>
47-
<Reference Include="Autofac, Version=4.5.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
48-
<HintPath>..\..\packages\Autofac.4.5.0\lib\net45\Autofac.dll</HintPath>
47+
<Reference Include="Autofac, Version=4.6.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
48+
<HintPath>..\..\packages\Autofac.4.6.0\lib\net45\Autofac.dll</HintPath>
4949
</Reference>
5050
<Reference Include="Autofac.Extras.DynamicProxy, Version=4.2.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
5151
<HintPath>..\..\packages\Autofac.Extras.DynamicProxy.4.2.1\lib\net45\Autofac.Extras.DynamicProxy.dll</HintPath>

src/Autofac.Integration.ServiceFabric/app.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
55
<dependentAssembly>
66
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
7-
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" />
7+
<bindingRedirect oldVersion="0.0.0.0-4.6.0.0" newVersion="4.6.0.0" />
88
</dependentAssembly>
99
</assemblyBinding>
1010
</runtime>

src/Autofac.Integration.ServiceFabric/packages.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="Autofac" version="4.5.0" targetFramework="net452" />
3+
<package id="Autofac" version="4.6.0" targetFramework="net452" />
44
<package id="Autofac.Extras.DynamicProxy" version="4.2.1" targetFramework="net452" />
55
<package id="Castle.Core" version="4.0.0" targetFramework="net452" />
66
<package id="Microsoft.ServiceFabric" version="5.4.164" targetFramework="net452" />

test/Autofac.Integration.ServiceFabric.Test/Autofac.Integration.ServiceFabric.Test.csproj

+5-3
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040
<AssemblyOriginatorKeyFile>..\..\Autofac.snk</AssemblyOriginatorKeyFile>
4141
</PropertyGroup>
4242
<ItemGroup>
43-
<Reference Include="Autofac, Version=4.5.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
44-
<HintPath>..\..\packages\Autofac.4.5.0\lib\net45\Autofac.dll</HintPath>
43+
<Reference Include="Autofac, Version=4.6.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
44+
<HintPath>..\..\packages\Autofac.4.6.0\lib\net45\Autofac.dll</HintPath>
4545
</Reference>
4646
<Reference Include="Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
4747
<HintPath>..\..\packages\Castle.Core.4.0.0\lib\net45\Castle.Core.dll</HintPath>
@@ -137,7 +137,9 @@
137137
<None Include="app.config">
138138
<SubType>Designer</SubType>
139139
</None>
140-
<None Include="packages.config" />
140+
<None Include="packages.config">
141+
<SubType>Designer</SubType>
142+
</None>
141143
</ItemGroup>
142144
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
143145
<Import Project="..\..\packages\Microsoft.ServiceFabric.Actors.2.4.164\build\Microsoft.ServiceFabric.Actors.targets" Condition="Exists('..\..\packages\Microsoft.ServiceFabric.Actors.2.4.164\build\Microsoft.ServiceFabric.Actors.targets')" />

test/Autofac.Integration.ServiceFabric.Test/AutofacActorExtensionsTests.cs

+22
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,20 @@ public void RegisterActorSupportsInternalsVisibleToDynamicProxyGenAssembly2()
7979
container.AssertRegistered<InternalsVisibleActor>();
8080
}
8181

82+
[Fact]
83+
public void RegisterActorCanBeCalledFromModuleLoad()
84+
{
85+
var builder = new ContainerBuilder();
86+
builder.RegisterModule(new ActorModule());
87+
var factoryMock = new Mock<IActorFactoryRegistration>();
88+
builder.RegisterInstance(factoryMock.Object);
89+
90+
var container = builder.Build();
91+
92+
container.AssertRegistered<Actor1>();
93+
factoryMock.Verify(x => x.RegisterActorFactory<Actor1>(container), Times.Once);
94+
}
95+
8296
[Fact]
8397
public void RegisterActorThrowsIfProvidedBuilderIsNull()
8498
{
@@ -108,6 +122,14 @@ public void RegisterActorThrowsIfProvidedTypeIsNotPublic()
108122
}
109123
}
110124

125+
public class ActorModule : Module
126+
{
127+
protected override void Load(ContainerBuilder builder)
128+
{
129+
builder.RegisterActor<Actor1>();
130+
}
131+
}
132+
111133
public class Actor1 : Actor
112134
{
113135
public Actor1(ActorService actorService, ActorId actorId) : base(actorService, actorId)

test/Autofac.Integration.ServiceFabric.Test/AutofacServiceExtensionsTests.cs

+44
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,34 @@ public void RegisterStatelessServiceSupportsInternalsVisibleToDynamicProxyGenAss
147147
container.AssertRegistered<InternalsVisibleStatelessService>();
148148
}
149149

150+
[Fact]
151+
public void RegisterStatefulServiceCanBeCalledFromModuleLoad()
152+
{
153+
var builder = new ContainerBuilder();
154+
builder.RegisterModule(new StatefulServiceModule());
155+
var factoryMock = new Mock<IStatefulServiceFactoryRegistration>();
156+
builder.RegisterInstance(factoryMock.Object);
157+
158+
var container = builder.Build();
159+
160+
container.AssertRegistered<StatefulService1>();
161+
factoryMock.Verify(x => x.RegisterStatefulServiceFactory<StatefulService1>(container, "serviceTypeName"), Times.Once);
162+
}
163+
164+
[Fact]
165+
public void RegisterStatelessServiceCanBeCalledFromModuleLoad()
166+
{
167+
var builder = new ContainerBuilder();
168+
builder.RegisterModule(new StatelessServiceModule());
169+
var factoryMock = new Mock<IStatelessServiceFactoryRegistration>();
170+
builder.RegisterInstance(factoryMock.Object);
171+
172+
var container = builder.Build();
173+
174+
container.AssertRegistered<StatelessService1>();
175+
factoryMock.Verify(x => x.RegisterStatelessServiceFactory<StatelessService1>(container, "serviceTypeName"), Times.Once);
176+
}
177+
150178
[Fact]
151179
public void RegisterStatefulServiceThrowsIfProvidedTypeIsNotPublic()
152180
{
@@ -254,6 +282,22 @@ public void RegisterStatelessServiceThrowsIfProvidedServiceTypeNameIsEmpty()
254282
}
255283
}
256284

285+
public class StatefulServiceModule : Module
286+
{
287+
protected override void Load(ContainerBuilder builder)
288+
{
289+
builder.RegisterStatefulService<StatefulService1>("serviceTypeName");
290+
}
291+
}
292+
293+
public class StatelessServiceModule : Module
294+
{
295+
protected override void Load(ContainerBuilder builder)
296+
{
297+
builder.RegisterStatelessService<StatelessService1>("serviceTypeName");
298+
}
299+
}
300+
257301
public class StatefulService1 : StatefulServiceBase
258302
{
259303
public StatefulService1(StatefulServiceContext serviceContext, IStateProviderReplica stateProviderReplica) : base(serviceContext, stateProviderReplica)

test/Autofac.Integration.ServiceFabric.Test/app.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
55
<dependentAssembly>
66
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
7-
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" />
7+
<bindingRedirect oldVersion="0.0.0.0-4.6.0.0" newVersion="4.6.0.0" />
88
</dependentAssembly>
99
</assemblyBinding>
1010
</runtime>

test/Autofac.Integration.ServiceFabric.Test/packages.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="Autofac" version="4.5.0" targetFramework="net452" />
3+
<package id="Autofac" version="4.6.0" targetFramework="net452" />
44
<package id="Castle.Core" version="4.0.0" targetFramework="net452" />
55
<package id="Microsoft.ServiceFabric" version="5.4.164" targetFramework="net452" />
66
<package id="Microsoft.ServiceFabric.Actors" version="2.4.164" targetFramework="net452" />

0 commit comments

Comments
 (0)