FluentAssertions.LanguageExt
0.5.0
dotnet add package FluentAssertions.LanguageExt --version 0.5.0
NuGet\Install-Package FluentAssertions.LanguageExt -Version 0.5.0
<PackageReference Include="FluentAssertions.LanguageExt" Version="0.5.0" />
<PackageVersion Include="FluentAssertions.LanguageExt" Version="0.5.0" />
<PackageReference Include="FluentAssertions.LanguageExt" />
paket add FluentAssertions.LanguageExt --version 0.5.0
#r "nuget: FluentAssertions.LanguageExt, 0.5.0"
#:package FluentAssertions.LanguageExt@0.5.0
#addin nuget:?package=FluentAssertions.LanguageExt&version=0.5.0
#tool nuget:?package=FluentAssertions.LanguageExt&version=0.5.0
FluentAssertions.LanguageExt
- See LanguageExt C# Functional Programming Language Extensions for more information about functional-programming 'base class library'.
- See FluentAssertions for more information about the extensive set of extension methods for unit tests.
Special thanks to @sparerd for the many new features.
Nuget
Install-Package FluentAssertions.LanguageExt
Option, OptionAsync and OptionUnsafe
Methods
BeSome()BeSome(expected)BeSome(action)BeNone()
Example Usage
using FluentAssertions;
using FluentAssertions.LanguageExt;
...
var option = Prelude.Some(123);
var optionnone = Option<int>.None;
option.Should().BeSome();
option.Should().BeSome(8);
option.Should().BeSome(s => s.Should().Be(8));
option.Should().BeSome().Which.Should().Be(8);
optionnone.Should().BeNone();
Either, EitherAsync and EitherUnsafe
Methods
Be(expected)BeLeft()BeLeft(action)BeRight()BeRight(action)BeBottom()
Example Usage
using FluentAssertions;
using FluentAssertions.LanguageExt;
...
Either<int, string> left = Prelude.Left(8);
Either<int, string> right = Prelude.Right("a");
left.Should().BeLeft();
left.Should().BeLeft(l => l.Should().Be(8));
left.Should().BeLeft().Which.Should().Be(8);
left.Should().Be(8);
right.Should().BeRight();
right.Should().BeRight(r => r.Should().Be("a"));
right.Should().BeRight().Which.Should().Be("a");
right.Should().Be("a");
Validation
Breaking Change for 0.3.1
There's a breaking change when using BeFail() with the .Which extension.
When using the BeFail() assertion on a Validation<TFail, TSucc>, the .Which extension returns only a single failure instance even though the Validation type has a Seq<TFail>. This prevents proper assertions on the failures returned from a Validation using the .Which extension.
This has now been fixed.
The return signature for BeFail() has changed from AndWhichConstraint<LanguageExtValidationAssertions<TFail, TSuccess>, TFail> to AndWhichConstraint<LanguageExtValidationAssertions<TFail, TSuccess>, Seq<TFail>>
Methods
BeFail()BeSuccess()BeSuccess(action)Be(expected)
Try and TryAsync
Methods
BeFail()BeSuccess()
TryOption and TryAsyncOption
Methods
BeFail()BeSome()BeSome(action)BeNone()BeNoneOrFail()Be(expected)
Fin
Methods
BeSuccess()BeSuccess(action)BeFail()BeBottom()Be(expected)
Example Usage
using FluentAssertions;
using FluentAssertions.LanguageExt;
...
Fin<int> successFin = Prelude.FinSucc(8);
Fin<int> failedFin = Prelude.FinFail<int>("Error message");
successFin.Should().BeSuccess();
successFin.Should().BeSuccess(v => v.Should().Be(8));
successFin.Should().BeSuccess().Which.Should().Be(8);
successFin.Should().Be(8);
failedFin.Should().BeFail();
failedFin.Should().BeFail().Which.Message.Should().Be("Error message");
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- FluentAssertions (>= 6.10.0)
- LanguageExt.Core (>= 4.4.2)
- Nito.AsyncEx.Context (>= 5.1.2)
-
net6.0
- FluentAssertions (>= 6.10.0)
- LanguageExt.Core (>= 4.4.2)
- Nito.AsyncEx.Context (>= 5.1.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Added support for asserting on Fin<T> monad.