Skip to content

Commit a781bde

Browse files
committed
Update to Autofac 5.2.0
1 parent a00e862 commit a781bde

10 files changed

+251
-119
lines changed

AutofacContrib.NSubstitute.Tests/AutoSubstituteCollectionFixture.cs

+36-15
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Collections.Generic;
22
using System.Linq;
33
using System.Security.Cryptography.X509Certificates;
4+
using Autofac;
45
using NSubstitute;
56
using NUnit.Framework;
67

@@ -78,10 +79,14 @@ public TestIReadOnlyListComponent(IReadOnlyList<IServiceItem> serviceItems)
7879
[Test]
7980
public void TestIEnumerableCorrectlyResolves()
8081
{
81-
using(var autosub = new AutoSubstitute())
82+
using (var autosub = new AutoSubstitute(b =>
83+
{
84+
b.Provide<IServiceItem, ServiceItemA>();
85+
b.Provide<IServiceItem, ServiceItemB>();
86+
}))
8287
{
83-
var mockA = autosub.Provide<IServiceItem, ServiceItemA>();
84-
var mockB = autosub.Provide<IServiceItem, ServiceItemB>();
88+
var mockA = autosub.Resolve<ServiceItemA>();
89+
var mockB = autosub.Resolve<ServiceItemB>();
8590
var component = autosub.Resolve<TestIEnumerableComponent>();
8691

8792
Assert.That(component.ServiceItems, Is.Not.Empty);
@@ -93,10 +98,14 @@ public void TestIEnumerableCorrectlyResolves()
9398
[Test]
9499
public void TestIListCorrectlyResolves()
95100
{
96-
using(var autosub = new AutoSubstitute())
101+
using (var autosub = new AutoSubstitute(b =>
97102
{
98-
var mockA = autosub.Provide<IServiceItem, ServiceItemA>();
99-
var mockB = autosub.Provide<IServiceItem, ServiceItemB>();
103+
b.Provide<IServiceItem, ServiceItemA>();
104+
b.Provide<IServiceItem, ServiceItemB>();
105+
}))
106+
{
107+
var mockA = autosub.Resolve<ServiceItemA>();
108+
var mockB = autosub.Resolve<ServiceItemB>();
100109
var component = autosub.Resolve<TestIListComponent>();
101110

102111
Assert.That(component.ServiceItems, Is.Not.Empty);
@@ -108,10 +117,14 @@ public void TestIListCorrectlyResolves()
108117
[Test]
109118
public void TestIReadOnlyCollectionCorrectlyResolves()
110119
{
111-
using(var autosub = new AutoSubstitute())
120+
using (var autosub = new AutoSubstitute(b =>
121+
{
122+
b.Provide<IServiceItem, ServiceItemA>();
123+
b.Provide<IServiceItem, ServiceItemB>();
124+
}))
112125
{
113-
var mockA = autosub.Provide<IServiceItem, ServiceItemA>();
114-
var mockB = autosub.Provide<IServiceItem, ServiceItemB>();
126+
var mockA = autosub.Resolve<ServiceItemA>();
127+
var mockB = autosub.Resolve<ServiceItemB>();
115128
var component = autosub.Resolve<TestIReadOnlyCollectionComponent>();
116129

117130
Assert.That(component.ServiceItems, Is.Not.Empty);
@@ -123,10 +136,14 @@ public void TestIReadOnlyCollectionCorrectlyResolves()
123136
[Test]
124137
public void TestICollectionCorrectlyResolves()
125138
{
126-
using(var autosub = new AutoSubstitute())
139+
using (var autosub = new AutoSubstitute(b =>
127140
{
128-
var mockA = autosub.Provide<IServiceItem, ServiceItemA>();
129-
var mockB = autosub.Provide<IServiceItem, ServiceItemB>();
141+
b.Provide<IServiceItem, ServiceItemA>();
142+
b.Provide<IServiceItem, ServiceItemB>();
143+
}))
144+
{
145+
var mockA = autosub.Resolve<ServiceItemA>();
146+
var mockB = autosub.Resolve<ServiceItemB>();
130147
var component = autosub.Resolve<TestICollectionComponent>();
131148

132149
Assert.That(component.ServiceItems, Is.Not.Empty);
@@ -138,10 +155,14 @@ public void TestICollectionCorrectlyResolves()
138155
[Test]
139156
public void TestIReadOnlyListCorrectlyResolves()
140157
{
141-
using(var autosub = new AutoSubstitute())
158+
using (var autosub = new AutoSubstitute(b =>
159+
{
160+
b.Provide<IServiceItem, ServiceItemA>();
161+
b.Provide<IServiceItem, ServiceItemB>();
162+
}))
142163
{
143-
var mockA = autosub.Provide<IServiceItem, ServiceItemA>();
144-
var mockB = autosub.Provide<IServiceItem, ServiceItemB>();
164+
var mockA = autosub.Resolve<ServiceItemA>();
165+
var mockB = autosub.Resolve<ServiceItemB>();
145166
var component = autosub.Resolve<TestIReadOnlyListComponent>();
146167

147168
Assert.That(component.ServiceItems, Is.Not.Empty);

AutofacContrib.NSubstitute.Tests/AutoSubstituteFixture.cs

+11-6
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,13 @@ public void DefaultConstructorIsLoose()
5858
[Test]
5959
public void ProvideMock()
6060
{
61-
using (var autoSubstitute = new AutoSubstitute())
62-
{
63-
var mockA = Substitute.For<IServiceA>();
64-
autoSubstitute.Provide(mockA);
61+
var mockA = Substitute.For<IServiceA>();
6562

63+
using (var autoSubstitute = new AutoSubstitute(b =>
64+
{
65+
b.Provide(mockA);
66+
}))
67+
{
6668
var component = autoSubstitute.Resolve<TestComponent>();
6769
component.RunAll();
6870

@@ -73,9 +75,12 @@ public void ProvideMock()
7375
[Test]
7476
public void ProvideImplementation()
7577
{
76-
using (var mock = new AutoSubstitute())
78+
using (var mock = new AutoSubstitute(b =>
79+
{
80+
b.Provide<IServiceA, ServiceA>();
81+
}))
7782
{
78-
var serviceA = mock.Provide<IServiceA, ServiceA>();
83+
var serviceA = mock.Resolve<ServiceA>();
7984

8085
Assert.IsNotNull(serviceA);
8186
Assert.IsFalse(serviceA is ICallRouter);

AutofacContrib.NSubstitute.Tests/AutofacContrib.NSubstitute.Tests.csproj

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netcoreapp2.2</TargetFramework>
4+
<TargetFramework>netcoreapp3.1</TargetFramework>
55

66
<IsPackable>false</IsPackable>
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Autofac" Version="4.9.4" />
11-
<PackageReference Include="NSubstitute" Version="4.2.1" />
10+
<PackageReference Include="Autofac" Version="5.2.0" />
11+
<PackageReference Include="NSubstitute" Version="4.2.2" />
1212
<PackageReference Include="nunit" Version="3.12.0" />
13-
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
14-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.2.0" />
13+
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />
14+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.0" />
1515
</ItemGroup>
1616

1717
<ItemGroup>

AutofacContrib.NSubstitute.Tests/ExampleFixture.cs

+21-10
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public ConcreteClassWithDependency(IDependency1 dependency, int i)
6969

7070
public int Double()
7171
{
72-
return _dependency.SomeMethod(_i)*2;
72+
return _dependency.SomeMethod(_i) * 2;
7373
}
7474
}
7575

@@ -127,9 +127,11 @@ public void Example_test_with_standard_resolve()
127127
public void Example_test_with_concrete_type_provided()
128128
{
129129
const int val = 3;
130-
var AutoSubstitute = new AutoSubstitute();
130+
var AutoSubstitute = new AutoSubstitute(b =>
131+
{
132+
b.Provide<IDependency2, Dependency2>();
133+
});
131134
AutoSubstitute.Resolve<IDependency2>().SomeOtherMethod().Returns(val); // This shouldn't do anything because of the next line
132-
AutoSubstitute.Provide<IDependency2, Dependency2>();
133135
AutoSubstitute.Resolve<IDependency1>().SomeMethod(Arg.Any<int>()).Returns(c => c.Arg<int>());
134136

135137
var result = AutoSubstitute.Resolve<MyClass>().AMethod();
@@ -142,9 +144,13 @@ public void Example_test_with_concrete_object_provided()
142144
{
143145
const int val1 = 3;
144146
const int val2 = 2;
145-
var AutoSubstitute = new AutoSubstitute();
147+
148+
var AutoSubstitute = new AutoSubstitute(b =>
149+
{
150+
b.Provide(new ConcreteClass(val2));
151+
});
152+
146153
AutoSubstitute.Resolve<IDependency2>().SomeOtherMethod().Returns(val1);
147-
AutoSubstitute.Provide(new ConcreteClass(val2));
148154

149155
var result = AutoSubstitute.Resolve<MyClassWithConcreteDependency>().AMethod();
150156

@@ -157,9 +163,12 @@ public void Example_test_with_substitute_for_concrete()
157163
const int val1 = 3;
158164
const int val2 = 2;
159165
const int val3 = 10;
160-
var AutoSubstitute = new AutoSubstitute();
166+
var AutoSubstitute = new AutoSubstitute(b =>
167+
{
168+
b.SubstituteFor<ConcreteClass>(val2).Add(Arg.Any<int>()).Returns(val3);
169+
});
170+
161171
AutoSubstitute.Resolve<IDependency2>().SomeOtherMethod().Returns(val1);
162-
AutoSubstitute.SubstituteFor<ConcreteClass>(val2).Add(Arg.Any<int>()).Returns(val3);
163172

164173
var result = AutoSubstitute.Resolve<MyClassWithConcreteDependency>().AMethod();
165174

@@ -172,16 +181,18 @@ public void Example_test_with_substitute_for_concrete_resolved_from_autofac()
172181
const int val1 = 2;
173182
const int val2 = 3;
174183
const int val3 = 4;
175-
var AutoSubstitute = new AutoSubstitute();
184+
var AutoSubstitute = new AutoSubstitute(b =>
185+
{
186+
b.ResolveAndSubstituteFor<ConcreteClassWithDependency>(new TypedParameter(typeof(int), val1));
187+
});
176188
// Much better / more maintainable than:
177189
//AutoSubstitute.SubstituteFor<ConcreteClassWithDependency>(AutoSubstitute.Resolve<IDependency1>(), val1);
178-
AutoSubstitute.ResolveAndSubstituteFor<ConcreteClassWithDependency>(new TypedParameter(typeof(int), val1));
179190
AutoSubstitute.Resolve<IDependency2>().SomeOtherMethod().Returns(val2);
180191
AutoSubstitute.Resolve<IDependency1>().SomeMethod(val1).Returns(val3);
181192

182193
var result = AutoSubstitute.Resolve<MyClassWithConcreteDependencyThatHasDependencies>().AMethod();
183194

184-
Assert.That(result, Is.EqualTo(val2*val3*2));
195+
Assert.That(result, Is.EqualTo(val2 * val3 * 2));
185196
}
186197
}
187198
}

AutofacContrib.NSubstitute.Tests/KeyedRegistrationFixture.cs

+5-3
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,13 @@ public static void ShouldResolveASubstituteForIndexedDependency()
5050
[Test]
5151
public static void ShouldAcceptProvidedIndexedDependency()
5252
{
53-
var autoSubstitute = new AutoSubstitute();
5453
var substitute = Substitute.For<IDependency2>();
54+
var autoSubstitute = new AutoSubstitute(b =>
55+
{
56+
b.Provide(substitute, Switch.On);
57+
});
5558
substitute.SomeOtherMethod().Returns(5);
56-
autoSubstitute.Provide(substitute, Switch.On);
57-
59+
5860
var target = autoSubstitute.Resolve<ClassWithKeyedDependencies>();
5961

6062
Assert.That(target.OnDependency.SomeOtherMethod(), Is.EqualTo(5));

AutofacContrib.NSubstitute.sln

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ VisualStudioVersion = 16.0.29409.12
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutofacContrib.NSubstitute", "AutofacContrib.NSubstitute\AutofacContrib.NSubstitute.csproj", "{7E69ECB4-84A5-41F0-8497-D94A3A45757F}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutofacContrib.NSubstitute.Tests", "AutofacContrib.NSubstitute.Tests\AutofacContrib.NSubstitute.Tests.csproj", "{56FF83E0-BCB9-4391-9BCC-912347C84398}"
8+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutofacContrib.NSubstitute.Tests", "AutofacContrib.NSubstitute.Tests\AutofacContrib.NSubstitute.Tests.csproj", "{56FF83E0-BCB9-4391-9BCC-912347C84398}"
99
EndProject
1010
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A5ECD18F-1D42-444E-BB3A-6062D8B0E256}"
1111
ProjectSection(SolutionItems) = preProject
1212
BREAKING_CHANGES.md = BREAKING_CHANGES.md
13+
global.json = global.json
1314
LICENSE = LICENSE
1415
logo.png = logo.png
1516
README.md = README.md

0 commit comments

Comments
 (0)