Skip to content

Commit ff34752

Browse files
authored
Migrate from FluentAssertions to Shouldly (#918)
* remove fluentassertions form solution add shouldly replace default asserts with shouldly assertions * remove redundant null check
1 parent 9b93751 commit ff34752

File tree

14 files changed

+26
-28
lines changed

14 files changed

+26
-28
lines changed

Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
<PackageVersion Include="FastEndpoints.ApiExplorer" Version="2.2.0" />
1616
<PackageVersion Include="FastEndpoints.Swagger" Version="5.31.0" />
1717
<PackageVersion Include="FastEndpoints.Swagger.Swashbuckle" Version="2.2.0" />
18-
<PackageVersion Include="FluentAssertions" Version="7.0.0" />
1918
<PackageVersion Include="MailKit" Version="4.9.0" />
2019
<PackageVersion Include="MediatR" Version="12.4.1" />
2120
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.0" />
@@ -33,6 +32,7 @@
3332
<PackageVersion Include="NSubstitute" Version="5.3.0" />
3433
<PackageVersion Include="ReportGenerator" Version="5.4.1" />
3534
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0" />
35+
<PackageVersion Include="Shouldly" Version="4.3.0" />
3636
<PackageVersion Include="SQLite" Version="3.13.0" />
3737
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.5.0" />
3838
<PackageVersion Include="Swashbuckle.AspNetCore.Annotations" Version="6.5.0" />

tests/Clean.Architecture.FunctionalTests/ApiEndpoints/ContributorGetById.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ public async Task ReturnsSeedContributorGivenId1()
1414
{
1515
var result = await _client.GetAndDeserializeAsync<ContributorRecord>(GetContributorByIdRequest.BuildRoute(1));
1616

17-
Assert.Equal(1, result.Id);
18-
Assert.Equal(SeedData.Contributor1.Name, result.Name);
17+
result.Id.ShouldBe(1);
18+
result.Name.ShouldBe(SeedData.Contributor1.Name);
1919
}
2020

2121
[Fact]

tests/Clean.Architecture.FunctionalTests/ApiEndpoints/ContributorList.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public async Task ReturnsTwoContributors()
1313
{
1414
var result = await _client.GetAndDeserializeAsync<ContributorListResponse>("/Contributors");
1515

16-
Assert.Equal(2, result.Contributors.Count);
17-
Assert.Contains(result.Contributors, i => i.Name == SeedData.Contributor1.Name);
18-
Assert.Contains(result.Contributors, i => i.Name == SeedData.Contributor2.Name);
16+
result.Contributors.Count.ShouldBe(2);
17+
result.Contributors.ShouldContain(contributor => contributor.Name == SeedData.Contributor1.Name);
18+
result.Contributors.ShouldContain(contributor => contributor.Name == SeedData.Contributor2.Name);
1919
}
2020
}

tests/Clean.Architecture.FunctionalTests/Clean.Architecture.FunctionalTests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Sdk Name="Microsoft.Build.CentralPackageVersions" Version="2.1.3" />
33

44
<ItemGroup>
5-
<PackageReference Include="FluentAssertions" />
5+
<PackageReference Include="Shouldly" />
66
<PackageReference Include="Microsoft.NET.Test.Sdk" />
77
<PackageReference Include="xunit" />
88
<PackageReference Include="xunit.runner.visualstudio">

tests/Clean.Architecture.FunctionalTests/GlobalUsings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
global using Microsoft.Extensions.DependencyInjection;
55
global using Microsoft.Extensions.Hosting;
66
global using Microsoft.Extensions.Logging;
7+
global using Shouldly;
78
global using Xunit;

tests/Clean.Architecture.IntegrationTests/Data/EfRepositoryAdd.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ public async Task AddsContributorAndSetsId()
1717
var newContributor = (await repository.ListAsync())
1818
.FirstOrDefault();
1919

20-
Assert.Equal(testContributorName, newContributor?.Name);
21-
Assert.Equal(testContributorStatus, newContributor?.Status);
22-
Assert.True(newContributor?.Id > 0);
20+
newContributor.ShouldNotBeNull();
21+
testContributorName.ShouldBe(newContributor.Name);
22+
testContributorStatus.ShouldBe(newContributor.Status);
23+
newContributor.Id.ShouldBeGreaterThan(0);
2324
}
2425
}

tests/Clean.Architecture.IntegrationTests/Data/EfRepositoryDelete.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ public async Task DeletesItemAfterAddingIt()
1717
await repository.DeleteAsync(Contributor);
1818

1919
// verify it's no longer there
20-
Assert.DoesNotContain(await repository.ListAsync(),
21-
Contributor => Contributor.Name == initialName);
20+
(await repository.ListAsync()).ShouldNotContain(Contributor => Contributor.Name == initialName);
2221
}
2322
}

tests/Clean.Architecture.IntegrationTests/Data/EfRepositoryUpdate.cs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using Clean.Architecture.Core.ContributorAggregate;
22

3-
43
namespace Clean.Architecture.IntegrationTests.Data;
54

65
public class EfRepositoryUpdate : BaseEfRepoTestFixture
@@ -21,12 +20,9 @@ public async Task UpdatesItemAfterAddingIt()
2120
// fetch the item and update its title
2221
var newContributor = (await repository.ListAsync())
2322
.FirstOrDefault(Contributor => Contributor.Name == initialName);
24-
if (newContributor == null)
25-
{
26-
Assert.NotNull(newContributor);
27-
return;
28-
}
29-
Assert.NotSame(Contributor, newContributor);
23+
newContributor.ShouldNotBeNull();
24+
25+
Contributor.ShouldNotBeSameAs(newContributor);
3026
var newName = Guid.NewGuid().ToString();
3127
newContributor.UpdateName(newName);
3228

@@ -37,9 +33,9 @@ public async Task UpdatesItemAfterAddingIt()
3733
var updatedItem = (await repository.ListAsync())
3834
.FirstOrDefault(Contributor => Contributor.Name == newName);
3935

40-
Assert.NotNull(updatedItem);
41-
Assert.NotEqual(Contributor.Name, updatedItem?.Name);
42-
Assert.Equal(Contributor.Status, updatedItem?.Status);
43-
Assert.Equal(newContributor.Id, updatedItem?.Id);
36+
updatedItem.ShouldNotBeNull();
37+
Contributor.Name.ShouldNotBe(updatedItem.Name);
38+
Contributor.Status.ShouldBe(updatedItem.Status);
39+
newContributor.Id.ShouldBe(updatedItem.Id);
4440
}
4541
}

tests/Clean.Architecture.IntegrationTests/GlobalUsings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
global using Microsoft.EntityFrameworkCore;
33
global using Microsoft.Extensions.DependencyInjection;
44
global using NSubstitute;
5+
global using Shouldly;
56
global using Xunit;

tests/Clean.Architecture.UnitTests/Clean.Architecture.UnitTests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
</ItemGroup>
1212

1313
<ItemGroup>
14-
<PackageReference Include="FluentAssertions" />
14+
<PackageReference Include="Shouldly" />
1515
<PackageReference Include="Microsoft.NET.Test.Sdk" />
1616
<PackageReference Include="NSubstitute" />
1717
<PackageReference Include="xunit.runner.visualstudio">

0 commit comments

Comments
 (0)