Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add BeJsonSerializable extensions for objects #2555

Open
vbreuss opened this issue Jan 14, 2024 · 1 comment
Open

Add BeJsonSerializable extensions for objects #2555

vbreuss opened this issue Jan 14, 2024 · 1 comment
Labels
api-suggestion Early API idea and discussion, it is NOT ready for implementation

Comments

@vbreuss
Copy link
Contributor

vbreuss commented Jan 14, 2024

Background and motivation

As discussed in #2205 we want support for System.Text.Json. I would suggest to keep it as similar as possible to the existing extension package FluentAssertions.Json.

API Proposal

Add the following methods for ObjectAssertions (similar to ObjectAssertionsExtensions in FluentAssertions.Json):

    public AndConstraint<TAssertions> BeJsonSerializable(string because = "", params object[] becauseArgs);
    public AndConstraint<TAssertions> BeJsonSerializable<T>(string because = "", params object[] becauseArgs);
    public AndConstraint<TAssertions> BeJsonSerializable<T>(Func<EquivalencyOptions<T>, EquivalencyOptions<T>> options, string because = "", params object[] becauseArgs)

These methods should assert that an object can be serialized to and deserialized from JSON and retains the values of all members.

API Usage

var sut = new ClassWithProperties();
sut.Should().BeJsonSerializable();

Alternative Designs

No response

Risks

No response

Are you willing to help with a proof-of-concept (as PR in that or a separate repo) first and as pull-request later on?

Yes, please assign this issue to me.

@vbreuss vbreuss added the api-suggestion Early API idea and discussion, it is NOT ready for implementation label Jan 14, 2024
@dennisdoomen
Copy link
Member

I like that. What about you @jnyrup ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api-suggestion Early API idea and discussion, it is NOT ready for implementation
Projects
None yet
Development

No branches or pull requests

2 participants