Skip to content

Remove FluentAssertions entirely — CPM + dead refs (closes #159)#178

Merged
blehnen merged 1 commit into
masterfrom
phase-8-remove-fluentassertions
Jul 5, 2026
Merged

Remove FluentAssertions entirely — CPM + dead refs (closes #159)#178
blehnen merged 1 commit into
masterfrom
phase-8-remove-fluentassertions

Conversation

@blehnen

@blehnen blehnen commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

Final phase of #159. All FluentAssertions .Should() assertions were migrated to MSTest across Phases 2–7 (PRs #171#177); every remaining FA reference is now dead. This PR removes them and closes out the issue.

Removed (atomic — Central Package Management requires the PackageVersion and every PackageReference to land together, else the build fails NU1010):

  • <PackageVersion Include="FluentAssertions" Version="6.12.2" /> from Source/Directory.Packages.props
  • 17 dead <PackageReference Include="FluentAssertions" /> lines across unit / integration / LINQ test projects
  • A dead net452-era packages.config (SqlServer.Tests) still listing FluentAssertions 4.19.4 — the project is SDK-style with PackageReference, so this file was already ignored by the build

Diff shape: pure deletions, only .csproj / .props / packages.config touched. No production assembly, no <Version> change — test-only.

Verification

  • Solution-wide git grep (tracked files): 0 .Should(), 0 using FluentAssertions, 0 FA package references (PackageReference / PackageVersion / packages.config).
  • Full-solution dotnet build Source/DotNetWorkQueue.sln -c Release -p:CI=true0 errors (4 pre-existing warnings, none FA-related).
  • The only remaining FluentAssertions string in tracked source is a single XML doc comment in AssertHelper.cs documenting the migration rationale — intentional, not a dependency.

Jenkins covers the integration suites across stages.

Closes #159

Summary by CodeRabbit

  • Tests
    • Updated test project dependencies across multiple test suites.
    • Replaced or removed an assertion library in favor of an alternative comparison utility in some test projects.
    • Cleaned up legacy test package configuration in one project.

…rences (closes #159)

All FluentAssertions .Should() assertions were migrated to MSTest across Phases 2-7;
every remaining reference was dead. Removes atomically (CPM requires PackageVersion +
all PackageReference to go together, else NU1010):
- central <PackageVersion Include="FluentAssertions"> from Directory.Packages.props
- 17 dead <PackageReference Include="FluentAssertions"> lines across test projects
- dead net452-era packages.config (SqlServer.Tests) still listing FluentAssertions 4.19.4

Test-only: no production assembly touched, no <Version> change. Full-solution Release
build green (0 errors); solution-wide grep for .Should()/using FluentAssertions/FA
package refs = 0.

Closes #159

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 5, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 17674ec1-7178-445e-96ba-39772cc1ab0a

📥 Commits

Reviewing files that changed from the base of the PR and between b80eda8 and af3ec86.

📒 Files selected for processing (19)
  • Source/Directory.Packages.props
  • Source/DotNetWorkQueue.Dashboard.Ui.E2E.Tests/DotNetWorkQueue.Dashboard.Ui.E2E.Tests.csproj
  • Source/DotNetWorkQueue.Transport.LiteDB.IntegrationTests/DotNetWorkQueue.Transport.LiteDb.IntegrationTests.csproj
  • Source/DotNetWorkQueue.Transport.LiteDB.Linq.Integration.Tests/DotNetWorkQueue.Transport.LiteDb.Linq.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.Memory.Linq.Integration.Tests/DotNetWorkQueue.Transport.Memory.Linq.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.Memory.Tests/DotNetWorkQueue.Transport.Memory.Tests.csproj
  • Source/DotNetWorkQueue.Transport.PostgreSQL.Integration.Tests/DotNetWorkQueue.Transport.PostgreSQL.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.PostgreSQL.Linq.Integration.Tests/DotNetWorkQueue.Transport.PostgreSQL.Linq.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.PostgreSQL.Tests/DotNetWorkQueue.Transport.PostgreSQL.Tests.csproj
  • Source/DotNetWorkQueue.Transport.Redis.IntegrationTests/DotNetWorkQueue.Transport.Redis.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.Redis.Linq.Integration.Tests/DotNetWorkQueue.Transport.Redis.Linq.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.Redis.Tests/DotNetWorkQueue.Transport.Redis.Tests.csproj
  • Source/DotNetWorkQueue.Transport.RelationalDatabase.Tests/DotNetWorkQueue.Transport.RelationalDatabase.Tests.csproj
  • Source/DotNetWorkQueue.Transport.SQLite.Integration.Tests/DotNetWorkQueue.Transport.SQLite.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.SQLite.Linq.Integration.Tests/DotNetWorkQueue.Transport.SQLite.Linq.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.SqlServer.IntegrationTests/DotNetWorkQueue.Transport.SqlServer.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.SqlServer.Linq.Integration.Tests/DotNetWorkQueue.Transport.SqlServer.Linq.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.SqlServer.Tests/DotNetWorkQueue.Transport.SqlServer.Tests.csproj
  • Source/DotNetWorkQueue.Transport.SqlServer.Tests/packages.config
💤 Files with no reviewable changes (19)
  • Source/DotNetWorkQueue.Transport.SQLite.Integration.Tests/DotNetWorkQueue.Transport.SQLite.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.PostgreSQL.Tests/DotNetWorkQueue.Transport.PostgreSQL.Tests.csproj
  • Source/DotNetWorkQueue.Transport.Memory.Linq.Integration.Tests/DotNetWorkQueue.Transport.Memory.Linq.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.RelationalDatabase.Tests/DotNetWorkQueue.Transport.RelationalDatabase.Tests.csproj
  • Source/DotNetWorkQueue.Transport.PostgreSQL.Integration.Tests/DotNetWorkQueue.Transport.PostgreSQL.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.SqlServer.IntegrationTests/DotNetWorkQueue.Transport.SqlServer.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.LiteDB.IntegrationTests/DotNetWorkQueue.Transport.LiteDb.IntegrationTests.csproj
  • Source/Directory.Packages.props
  • Source/DotNetWorkQueue.Transport.SqlServer.Tests/packages.config
  • Source/DotNetWorkQueue.Transport.SQLite.Linq.Integration.Tests/DotNetWorkQueue.Transport.SQLite.Linq.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.PostgreSQL.Linq.Integration.Tests/DotNetWorkQueue.Transport.PostgreSQL.Linq.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.Redis.Tests/DotNetWorkQueue.Transport.Redis.Tests.csproj
  • Source/DotNetWorkQueue.Transport.Redis.IntegrationTests/DotNetWorkQueue.Transport.Redis.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.SqlServer.Linq.Integration.Tests/DotNetWorkQueue.Transport.SqlServer.Linq.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.SqlServer.Tests/DotNetWorkQueue.Transport.SqlServer.Tests.csproj
  • Source/DotNetWorkQueue.Transport.Redis.Linq.Integration.Tests/DotNetWorkQueue.Transport.Redis.Linq.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Transport.Memory.Tests/DotNetWorkQueue.Transport.Memory.Tests.csproj
  • Source/DotNetWorkQueue.Transport.LiteDB.Linq.Integration.Tests/DotNetWorkQueue.Transport.LiteDb.Linq.Integration.Tests.csproj
  • Source/DotNetWorkQueue.Dashboard.Ui.E2E.Tests/DotNetWorkQueue.Dashboard.Ui.E2E.Tests.csproj

📝 Walkthrough

Walkthrough

The FluentAssertions package version is removed from the central Directory.Packages.props file, and the FluentAssertions PackageReference is removed from 17 test/integration test project files across the solution. CompareNETObjects is added as a replacement reference in several projects, and a stale packages.config file is emptied.

Changes

FluentAssertions Removal

Layer / File(s) Summary
Central package version removal
Source/Directory.Packages.props
Removes the FluentAssertions PackageVersion entry from the shared central package management list.
Unit/dashboard test reference removal
Source/DotNetWorkQueue.Dashboard.Ui.E2E.Tests/*.csproj, Source/DotNetWorkQueue.Transport.Memory.Tests/*.csproj, Source/DotNetWorkQueue.Transport.Memory.Linq.Integration.Tests/*.csproj, Source/DotNetWorkQueue.Transport.Redis.Tests/*.csproj, Source/DotNetWorkQueue.Transport.RelationalDatabase.Tests/*.csproj, Source/DotNetWorkQueue.Transport.SqlServer.IntegrationTests/*.csproj
Removes the FluentAssertions PackageReference from these test/integration test projects without adding a replacement.
Integration test reference removal
Source/DotNetWorkQueue.Transport.LiteDB.IntegrationTests/*.csproj, Source/DotNetWorkQueue.Transport.PostgreSQL.Integration.Tests/*.csproj, Source/DotNetWorkQueue.Transport.PostgreSQL.Linq.Integration.Tests/*.csproj, Source/DotNetWorkQueue.Transport.Redis.IntegrationTests/*.csproj, Source/DotNetWorkQueue.Transport.Redis.Linq.Integration.Tests/*.csproj, Source/DotNetWorkQueue.Transport.SqlServer.Linq.Integration.Tests/*.csproj
Removes the FluentAssertions PackageReference from further integration test projects without adding a replacement.
Reference replacement with CompareNETObjects
Source/DotNetWorkQueue.Transport.LiteDB.Linq.Integration.Tests/*.csproj, Source/DotNetWorkQueue.Transport.PostgreSQL.Tests/*.csproj, Source/DotNetWorkQueue.Transport.SQLite.Integration.Tests/*.csproj, Source/DotNetWorkQueue.Transport.SQLite.Linq.Integration.Tests/*.csproj, Source/DotNetWorkQueue.Transport.SqlServer.Tests/*.csproj, Source/DotNetWorkQueue.Transport.SqlServer.Tests/packages.config
Replaces FluentAssertions with CompareNETObjects in these project files and empties the stale packages.config file.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • blehnen/DotNetWorkQueue#170: Introduces the shared AssertHelper built on MSTest and CompareNETObjects that this PR's dependency swap aligns with.
  • blehnen/DotNetWorkQueue#172: Removes FluentAssertions from a test project and rewrites its assertions to MSTest, part of the same migration.
  • blehnen/DotNetWorkQueue#173: Continues the same FluentAssertions-to-MSTest migration across overlapping test infrastructure.

Poem

A bunny hopped through csproj land,
Snipped FluentAssertions with a steady hand.
CompareNETObjects hops in its place,
No license fees to chase!
Thump-thump, the tests still pass with grace 🐇✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: removing FluentAssertions and cleaning up dead references.
Linked Issues check ✅ Passed The PR removes FluentAssertions package versions and references across test projects, matching the linked issue scope.
Out of Scope Changes check ✅ Passed The changes stay within test/project package cleanup and do not introduce unrelated production-code edits.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

sonarqubecloud Bot commented Jul 5, 2026

Copy link
Copy Markdown

@codecov

codecov Bot commented Jul 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.50%. Comparing base (eb23afd) to head (af3ec86).
⚠️ Report is 3 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #178      +/-   ##
==========================================
+ Coverage   87.45%   87.50%   +0.04%     
==========================================
  Files        1024     1024              
  Lines       33905    33905              
  Branches     2870     2870              
==========================================
+ Hits        29652    29668      +16     
+ Misses       3374     3361      -13     
+ Partials      879      876       -3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@blehnen blehnen merged commit 915f890 into master Jul 5, 2026
6 checks passed
@blehnen blehnen deleted the phase-8-remove-fluentassertions branch July 5, 2026 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace FluentAssertions with MSTest assertions (license: 6.12.2 is last MIT release)

1 participant