Skip to content

Commit cb0b6ae

Browse files
Merge pull request #1712 from RocketSurgeonsGuild/feature/shouldly
Updated to shouldly
2 parents d35df7c + c29f42d commit cb0b6ae

15 files changed

+344
-245
lines changed

Directory.Packages.props

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
<GlobalPackageReference Include="Roslynator.CodeFixes" Version="4.13.1" />
1818
<GlobalPackageReference Include="Roslynator.Refactorings" Version="4.13.1" />
1919
<GlobalPackageReference Include="FakeItEasy.Analyzer.CSharp" Version="6.1.1" />
20-
<GlobalPackageReference Include="FluentAssertions.Analyzers" Version="0.34.1" />
2120
<PackageVersion Include="xunit.analyzers" Version="1.20.0" />
2221
<GlobalPackageReference Include="NSubstitute.Analyzers.CSharp" Version="1.0.17" />
2322
</ItemGroup>
@@ -60,7 +59,7 @@
6059
<PackageVersion Include="Microsoft.CodeCoverage" Version="17.13.0" />
6160
<PackageVersion Include="FakeItEasy" Version="8.3.0" />
6261
<PackageVersion Include="Autofac.Extras.FakeItEasy" Version="7.0.0" />
63-
<PackageVersion Include="FluentAssertions" Version="7.0.0" />
62+
<PackageVersion Include="Shouldly" Version="4.3.0" />
6463
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
6564
<PackageVersion Include="Moq" Version="4.20.72" />
6665
<PackageVersion Include="NSubstitute" Version="5.3.0" />

test/Directory.Build.targets

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
<ItemGroup>
33
<PackageReference Include="Microsoft.CodeCoverage" />
44
<PackageReference Include="FakeItEasy" />
5-
<PackageReference Include="FluentAssertions" />
5+
<PackageReference Include="Shouldly" />
6+
<Using Include="Shouldly" />
67
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" />
78
</ItemGroup>
89
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />

test/Testing.AutoFixtures.Tests/AutoFixtureGeneratorTests.cs

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
1-
using FluentAssertions;
21
using Rocket.Surgery.Extensions.Testing.SourceGenerators;
32

43
namespace Rocket.Surgery.Extensions.Testing.AutoFixtures.Tests;
54

5+
[System.Diagnostics.DebuggerDisplay("{DebuggerDisplay,nq}")]
66
public class AutoFixtureGeneratorTests
77
{
8+
[System.Diagnostics.DebuggerBrowsable(System.Diagnostics.DebuggerBrowsableState.Never)]
9+
private string DebuggerDisplay
10+
{
11+
get
12+
{
13+
return ToString();
14+
}
15+
}
16+
817
[Fact]
918
public async Task GivenAutoFixture_WhenGenerate_ThenShouldGenerateAutoFixtureAttribute()
1019
{
@@ -21,7 +30,7 @@ public async Task GivenAutoFixture_WhenGenerate_ThenShouldGenerateAutoFixtureAtt
2130
var result = await generatorInstance.GenerateAsync();
2231

2332
// Then
24-
await Verify(result).ScrubLines(text => text.Contains("System.CodeDom.Compiler.GeneratedCode"));
33+
_ = await Verify(result).ScrubLines(text => text.Contains("System.CodeDom.Compiler.GeneratedCode"));
2534
}
2635

2736
[Fact]
@@ -40,7 +49,7 @@ public async Task GivenAutoFixture_WhenGenerate_ThenShouldGenerateAutoFixtureBas
4049
var result = await generatorInstance.GenerateAsync();
4150

4251
// Then
43-
await Verify(result);
52+
_ = await Verify(result);
4453
}
4554

4655
[Theory]
@@ -62,7 +71,7 @@ await context
6271
.GenerateAsync();
6372

6473
// Then
65-
await Verify(result).HashParameters().UseParameters(context.Id);
74+
_ = await Verify(result).HashParameters().UseParameters(context.Id);
6675
}
6776

6877
[Theory]
@@ -75,8 +84,7 @@ public async Task GivenNoConstructor_WhenGenerate_ThenReportsDiagnostic(Generato
7584
// Then
7685
result
7786
.Results
78-
.Should()
79-
.Contain(pair => pair.Value.Diagnostics.All(diagnostic => diagnostic.Id == Diagnostics.AutoFixture0001.Id));
87+
.ShouldContain(pair => pair.Value.Diagnostics.All(diagnostic => diagnostic.Id == Diagnostics.AutoFixture0001.Id));
8088
}
8189

8290
[Theory]
@@ -89,7 +97,6 @@ public async Task GivenConstructorWithParameterArray_WhenGenerate_ThenReportsDia
8997
// Then
9098
result
9199
.Results
92-
.Should()
93-
.Contain(pair => pair.Value.Diagnostics.Any(diagnostic => diagnostic.Id == Diagnostics.AutoFixture0002.Id));
100+
.ShouldContain(pair => pair.Value.Diagnostics.Any(diagnostic => diagnostic.Id == Diagnostics.AutoFixture0002.Id));
94101
}
95102
}
Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,40 @@
1-
using FluentAssertions;
21
using Xunit.Abstractions;
32
using ILogger = Serilog.ILogger;
43

54
namespace Rocket.Surgery.Extensions.Testing.XUnit.Tests.Fake;
65

7-
public class AutoFakeEnumerableTests(ITestOutputHelper outputHelper) : AutoFakeTest<XUnitTestContext>(XUnitDefaults.CreateTestContext(outputHelper))
6+
[System.Diagnostics.DebuggerDisplay("{DebuggerDisplay,nq}")]
7+
public class AutoFakeEnumerableTests(ITestOutputHelper outputHelper) : AutoFakeTest<XUnitTestContext>(XUnitDefaults.CreateTestContext(outputHelper))
88
{
9+
[System.Diagnostics.DebuggerBrowsable(System.Diagnostics.DebuggerBrowsableState.Never)]
10+
private string DebuggerDisplay
11+
{
12+
get
13+
{
14+
return ToString();
15+
}
16+
}
17+
918
[Fact]
1019
public void Does_Not_Auto_Fake_Enumerable()
1120
{
12-
AutoFake.Provide<Item>(new A());
13-
AutoFake.Provide<Item>(new B());
21+
_ = AutoFake.Provide<Item>(new A());
22+
_ = AutoFake.Provide<Item>(new B());
1423

15-
AutoFake.Resolve<IEnumerable<Item>>().Should().HaveCount(2);
24+
AutoFake.Resolve<IEnumerable<Item>>().Count().ShouldBe(2);
1625
}
1726

1827
[Fact]
19-
public void Handle_Zero_Items()
20-
{
21-
AutoFake.Resolve<IEnumerable<Item>>().Should().HaveCount(0);
22-
}
28+
public void Handle_Zero_Items() => AutoFake.Resolve<IEnumerable<Item>>().Count().ShouldBe(0);
2329

2430
[Fact]
2531
public void Handle_One_Fake_Item()
2632
{
2733
var fake1 = AutoFake.Provide(FakeItEasy.A.Fake<Item>());
2834

2935
var result = AutoFake.Resolve<IEnumerable<Item>>().ToArray();
30-
result.Should().HaveCount(1);
31-
result.Should().Contain(fake1);
36+
result.Count().ShouldBe(1);
37+
result.ShouldContain(fake1);
3238
}
3339

3440
[Fact]
@@ -38,9 +44,9 @@ public void Handle_Two_Fake_Item()
3844
var fake2 = AutoFake.Provide(FakeItEasy.A.Fake<Item>());
3945

4046
var result = AutoFake.Resolve<IEnumerable<Item>>().ToArray();
41-
result.Should().HaveCount(2);
42-
result.Should().Contain(fake1);
43-
result.Should().Contain(fake2);
47+
result.Count().ShouldBe(2);
48+
result.ShouldContain(fake1);
49+
result.ShouldContain(fake2);
4450
}
4551

4652
[Fact]
@@ -51,10 +57,10 @@ public void Handle_Three_Fake_Item()
5157
var fake3 = AutoFake.Provide(FakeItEasy.A.Fake<Item>());
5258

5359
var result = AutoFake.Resolve<IEnumerable<Item>>().ToArray();
54-
result.Should().HaveCount(3);
55-
result.Should().Contain(fake1);
56-
result.Should().Contain(fake2);
57-
result.Should().Contain(fake3);
60+
result.Count().ShouldBe(3);
61+
result.ShouldContain(fake1);
62+
result.ShouldContain(fake2);
63+
result.ShouldContain(fake3);
5864
}
5965

6066
[Fact]
@@ -66,11 +72,11 @@ public void Handle_Four_Fake_Item()
6672
var fake4 = AutoFake.Provide(FakeItEasy.A.Fake<Item>());
6773

6874
var result = AutoFake.Resolve<IEnumerable<Item>>().ToArray();
69-
result.Should().HaveCount(4);
70-
result.Should().Contain(fake1);
71-
result.Should().Contain(fake2);
72-
result.Should().Contain(fake3);
73-
result.Should().Contain(fake4);
75+
result.Count().ShouldBe(4);
76+
result.ShouldContain(fake1);
77+
result.ShouldContain(fake2);
78+
result.ShouldContain(fake3);
79+
result.ShouldContain(fake4);
7480
}
7581

7682
[Fact]
@@ -80,22 +86,19 @@ public void Should_Handle_Creating_A_Mock_With_Logger()
8086
var a = () =>
8187
{
8288
var lt = AutoFake.Resolve<LoggerTest>();
83-
AutoFake.Provide<Item>(lt);
89+
_ = AutoFake.Provide<Item>(lt);
8490
};
85-
a.Should().NotThrow();
91+
a.ShouldNotThrow();
8692
}
8793

88-
public interface Item;
94+
internal interface Item;
8995

9096
private class A : Item;
9197

9298
private class B : Item;
9399

94100
private class LoggerTest : Item
95101
{
96-
public LoggerTest(ILogger logger)
97-
{
98-
ArgumentNullException.ThrowIfNull(logger);
99-
}
102+
public LoggerTest(ILogger logger) => ArgumentNullException.ThrowIfNull(logger);
100103
}
101104
}

test/Testing.XUnit.Tests/Fake/AutoFakePopulateTests.cs

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,30 @@
1-
using DryIoc;
1+
using DryIoc;
22
using DryIoc.Microsoft.DependencyInjection;
3-
using FluentAssertions;
43
using Microsoft.Extensions.Configuration;
54
using Microsoft.Extensions.DependencyInjection;
65
using Xunit.Abstractions;
76

87
namespace Rocket.Surgery.Extensions.Testing.XUnit.Tests.Fake;
98

9+
[System.Diagnostics.DebuggerDisplay("{DebuggerDisplay,nq}")]
1010
public class AutoFakePopulateTests(ITestOutputHelper outputHelper) : AutoFakeTest<XUnitTestContext>(XUnitDefaults.CreateTestContext(outputHelper))
1111
{
12+
[System.Diagnostics.DebuggerBrowsable(System.Diagnostics.DebuggerBrowsableState.Never)]
13+
private string DebuggerDisplay
14+
{
15+
get
16+
{
17+
return ToString();
18+
}
19+
}
20+
1221
[Fact]
1322
public void Should_Populate_Configuration_And_Services()
1423
{
1524
Container.Populate(new ServiceCollection().AddSingleton(new A()));
1625
Container.RegisterInstance<IConfiguration>(new ConfigurationBuilder().AddInMemoryCollection(new Dictionary<string, string?> { ["a"] = "1" }).Build());
17-
Configuration.GetValue<string>("a").Should().Be("1");
18-
ServiceProvider.GetRequiredService<A>().Should().BeSameAs(ServiceProvider.GetService<A>());
26+
Configuration.GetValue<string>("a").ShouldBe("1");
27+
ServiceProvider.GetRequiredService<A>().ShouldBeSameAs(ServiceProvider.GetService<A>());
1928
}
2029

2130
[Fact]
@@ -26,16 +35,16 @@ public void Should_Populate_Services()
2635
.AddSingleton(new A())
2736
.AddSingleton<IConfiguration>(new ConfigurationBuilder().AddInMemoryCollection(new Dictionary<string, string?> { ["a"] = "1" }).Build())
2837
);
29-
Configuration.GetValue<string>("a").Should().Be("1");
30-
ServiceProvider.GetRequiredService<A>().Should().BeSameAs(ServiceProvider.GetService<A>());
38+
Configuration.GetValue<string>("a").ShouldBe("1");
39+
ServiceProvider.GetRequiredService<A>().ShouldBeSameAs(ServiceProvider.GetService<A>());
3140
}
3241

3342
[Fact]
3443
public void Should_Populate_Container()
3544
{
3645
Populate(new Container());
37-
Configuration.GetValue<string>("a").Should().BeNullOrEmpty();
38-
Container.IsRegistered<A>().Should().BeFalse();
46+
Configuration.GetValue<string>("a").ShouldBeNullOrEmpty();
47+
Container.IsRegistered<A>().ShouldBeFalse();
3948
}
4049

4150
private class A;

0 commit comments

Comments
 (0)