dennisdoomen / dennisdoomen/fluentassertions.mockly

Ship an AwesomeAssertions.Mockly flavour alongside the v7/v8 packages

Open
#73 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Motivation

FluentAssertions 8 changed its licensing model, and a large part of the .NET community moved to [AwesomeAssertions](https://github.com/AwesomeAssertions/AwesomeAssertions), an API-compatible fork. Those users can use Mockly, but they cannot use any of its assertions — they would have to pull in FluentAssertions purely for this package, which is exactly what they moved away from.

## Proposal

Ship a third flavour, e.g. `AwesomeAssertions.Mockly`.

The repository is already structured for this. There is one shared implementation file (`Shared/HttpMockAssertionExtensions.cs`), a `#if FA8` conditional for the API differences, and two near-identical csproj files that differ only in `DefineConstants` and the package reference. Adding a third target is mostly build plumbing plus a specs project and an approved-API file.

## Scope

- New `AwesomeAssertions.Mockly` project referencing `AwesomeAssertions` instead of `FluentAssertions`
- Reuse `Shared/HttpMockAssertionExtensions.cs` unchanged if possible; add a define if the API differs
- New specs project mirroring the existing v7/v8 specs
- New approved-API file, plus packaging and CI wiring

## Notes

- AwesomeAssertions tracks the FluentAssertions 7/8 API closely, so the existing `FA8`-style conditionals may already cover it.
- Worth deciding whether the shared file grows a second define or whether the flavours diverge.
- This is probably the largest reach-per-effort item in the repo: it unlocks the package for an entire user base at low marginal cost.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by comparing the existing v7/v8 project files, specs projects, approved-API files, and packaging or CI wiring. Read Shared/HttpMockAssertionExtensions.cs and run the existing specs to understand the shared assertions and API differences. Done means an AwesomeAssertions.Mockly package, matching specs and approved API, with packaging and CI coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system, ci-cd, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.