{"id":37206495,"url":"https://github.com/nitrodevs/csharpfunctionalextensions.fluentassertions","last_synced_at":"2026-01-14T23:46:11.956Z","repository":{"id":41764298,"uuid":"443130670","full_name":"NitroDevs/CSharpFunctionalExtensions.FluentAssertions","owner":"NitroDevs","description":"A small set of extensions to make test assertions more fluent when using CSharpFunctionalExtensions! Wow!","archived":false,"fork":false,"pushed_at":"2025-12-01T10:33:19.000Z","size":176,"stargazers_count":24,"open_issues_count":5,"forks_count":6,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-01-09T07:50:45.853Z","etag":null,"topics":["functional-programming","hacktoberfest","monad","tdd","testing"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NitroDevs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["KyleMcMaster"]}},"created_at":"2021-12-30T16:40:07.000Z","updated_at":"2025-10-29T08:42:15.000Z","dependencies_parsed_at":"2024-01-02T03:23:38.240Z","dependency_job_id":"8b25fc95-730e-4263-a9fb-18aea2591c76","html_url":"https://github.com/NitroDevs/CSharpFunctionalExtensions.FluentAssertions","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/NitroDevs/CSharpFunctionalExtensions.FluentAssertions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitroDevs%2FCSharpFunctionalExtensions.FluentAssertions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitroDevs%2FCSharpFunctionalExtensions.FluentAssertions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitroDevs%2FCSharpFunctionalExtensions.FluentAssertions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitroDevs%2FCSharpFunctionalExtensions.FluentAssertions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NitroDevs","download_url":"https://codeload.github.com/NitroDevs/CSharpFunctionalExtensions.FluentAssertions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NitroDevs%2FCSharpFunctionalExtensions.FluentAssertions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28439537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T22:37:52.437Z","status":"ssl_error","status_checked_at":"2026-01-14T22:37:31.496Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["functional-programming","hacktoberfest","monad","tdd","testing"],"created_at":"2026-01-14T23:46:11.290Z","updated_at":"2026-01-14T23:46:11.942Z","avatar_url":"https://github.com/NitroDevs.png","language":"C#","funding_links":["https://github.com/sponsors/KyleMcMaster"],"categories":[],"sub_categories":[],"readme":"# CSharpFunctionalExtensions.FluentAssertions\n\n- [![NuGet Package](https://img.shields.io/nuget/v/CSharpFunctionalExtensions.FluentAssertions.svg)](https://www.nuget.org/packages/CSharpFunctionalExtensions.FluentAssertions) **CSharpFunctionalExtensions.FluentAssertions**\n\nA small set of extensions to make test assertions more fluent when using CSharpFunctionalExtensions! Wow!\n\n## Star History\n\n\u003ca href=\"https://star-history.com/#NitroDevs/CSharpFunctionalExtensions.FluentAssertions\u0026Date\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=NitroDevs/CSharpFunctionalExtensions.FluentAssertions\u0026type=Date\u0026theme=dark\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=NitroDevs/CSharpFunctionalExtensions.FluentAssertions\u0026type=Date\" /\u003e\n    \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=NitroDevs/CSharpFunctionalExtensions.FluentAssertions\u0026type=Date\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\n## Learn More\n\n* [Announcing CSharpFunctionalExtensions.FluentAssertions](https://www.kylemcmaster.com/blog/announcing-csharpfunctionalextensions-fluentassertions)\n\n## Dependencies\n\nThis library is compatible with .NET 6+. It requires the following minimum package versions:\n\nCSharpFunctionalExtensons \u003e= 3.0.0\n\nFluentAssertions \u003e= 7.2.0\n\n## Installation\n\nThis library is available on Nuget and can be installed with the .NET CLI using the following command:\n\n```bash\ndotnet add package CSharpFunctionalExtensions.FluentAssertions\n```\n\n## Usage\n\n### Maybe Assertions\n\n```csharp\nvar maybe = Maybe.From(\"foo\");\n\nmaybe.Should().HaveSomeValue(); // passes\nmaybe.Should().HaveValue(\"foo\"); // passes\nmaybe.Should().HaveValue(\"bar\"); // throws\nmaybe.Should().HaveNoValue(); // throws\n```\n\n```csharp\nMaybe\u003cstring\u003e maybe = null;\n\nmaybe.Should().HaveNoValue(); // passes\nmaybe.Should().HaveValue(\"foo\"); // throws\n```\n\n### Result Assertions \n\n```csharp\nvar result = Result.Success();\n\nresult.Should().Succeed(); // passes\nresult.Should().Fail() // throws\n```\n\n```csharp\nvar result = Result.Failure(\"error\");\n\nresult.Should().Fail() // passes\nresult.Should().FailWith(\"error\"); // passes\nresult.Should().FailWith(\"some other error\"); // throws\nresult.Should().Succeed(); // throws\n```\n\n### Generic Result of T Assertions\n\n```csharp\nvar result = Result.Success(420);\n\nresult.Should().Succeed(); // passes\nresult.Should().SucceedWith(420); // passes\nresult.Should().SucceedWith(69); // throws\nresult.Should().Fail(); // throws\n```\n\n```csharp\nvar result = Result.Failure\u003cstring\u003e(\"error\");\n\nresult.Should().Fail() // passes\nresult.Should().FailWith(\"error\"); // passes\nresult.Should().FailWith(\"some other error\"); // throws\nresult.Should().Succeed(); // throws\n```\n\n### Generic Result of T:Value and E:Error Assertions\n\n```csharp\nvar result = Result.Success\u003cint, Exception\u003e(420);\n\nresult.Should().Succeed(); // passes\nresult.Should().SucceedWith(420); // passes\nresult.Should().SucceedWith(69); // throws\nresult.Should().Fail(); // throws\nresult.Should().FailWith(new Exception(\"error\")); // throws\n```\n\n```csharp\nvar result = Result.Failure\u003cint, Exception\u003e(new Exception(\"error\"));\n\nresult.Should().Fail(); // passes\nresult.Should().FailWith(new Exception(\"error\")); // passes\nresult.Should().FailWith(new Exception(\"some other error\")); // throws\nresult.Should().Succeed(); // throws\nresult.Should().SucceedWith(4680); // throws\n```\n\n### UnitResult Assertions\n\n```csharp\nvar result = UnitResult.Success\u003cstring\u003e();\n\nresult.Should().Succeed(); // passes\nresult.Should().Fail(); // throws\nresult.Should().FailWith(\"error\"); // throws\n```\n\n```csharp\nvar result = UnitResult.Failure(\"error\");\n\nresult.Should().Fail(); // passes\nresult.Should().FailWith(\"error\"); // passes\nresult.Should().Succeed(); // throws\n```\n\n## Related Projects\n\n* [CSharpFunctionalExtensions](https://github.com/vkhorikov/CSharpFunctionalExtensions)\n* [FluentAssertions.CSharpFunctionalExtensions](https://github.com/pedromtcosta/FluentAssertions.CSharpFunctionalExtensions)\n* [Typescript Functional Extensions](https://github.com/seangwright/typescript-functional-extensions)\n\n## Acknowledgements\n\nSpecial thanks to [Sean Wright](https://github.com/seangwright) for all his guidance and contributions over the design, development, and release of this project. His insights are invaluable! :smile: \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitrodevs%2Fcsharpfunctionalextensions.fluentassertions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnitrodevs%2Fcsharpfunctionalextensions.fluentassertions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitrodevs%2Fcsharpfunctionalextensions.fluentassertions/lists"}