-
Notifications
You must be signed in to change notification settings - Fork 14
/
FluentAssertionExtensions.cs
39 lines (31 loc) · 1.25 KB
/
FluentAssertionExtensions.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using FluentAssertions.Execution;
using FluentAssertions.Primitives;
namespace Qowaiv.TestTools.Generation;
public static class FluentAssertionExtensions
{
public static AndConstraint<StringAssertions> MatchWikipedia(this StringAssertions assertions, string? wikipedia)
{
var display = assertions.Subject;
Execute.Assertion
.ForCondition(display == wikipedia)
.FailWith($"DisplayName: '{display}', Wiki: {wikipedia ?? "<Not found>"}.");
return new(assertions);
}
public static AndConstraint<StringAssertions> BeTrimmed(this StringAssertions assertions)
{
var display = assertions.Subject;
Execute.Assertion
.ForCondition(display.Trim() == display)
.FailWith($"DisplayName '{display}' is not trimmed.");
return new(assertions);
}
public static AndConstraint<StringAssertions> BeArabic(this StringAssertions assertions)
{
var display = assertions.Subject;
var nonArabic = Regex.Match(display, @"[^\p{IsArabic} _]+");
Execute.Assertion
.ForCondition(!nonArabic.Success)
.FailWith($"DisplayName '{display}' contains non-arabic characters: {nonArabic.Value}.");
return new(assertions);
}
}