Skip to content

Commit 6ccc729

Browse files
authored
Merge pull request #171 from valit-stack/develop
v2.0.0
2 parents a522175 + 11f1f91 commit 6ccc729

11 files changed

Lines changed: 29 additions & 27 deletions

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ Valit is available on [NuGet](https://www.nuget.org/packages/Valit/).
1515

1616
### Package manager
1717
```bash
18-
Install-Package Valit -Version 1.0.0
18+
Install-Package Valit -Version 2.0.0
1919
```
2020

2121
### .NET CLI
2222
```bash
23-
dotnet add package Valit --version 1.0.0
23+
dotnet add package Valit --version 2.0.0
2424
```
2525

2626
# Getting started

src/Valit/Rules/ValitRule.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,18 @@ public IValitResult Validate(TObject @object)
8181
var property = _propertySelector.Compile().Invoke(@object);
8282
var hasAllConditionsFulfilled = true;
8383

84-
foreach(var condition in _conditions)
84+
foreach (var condition in _conditions)
8585
hasAllConditionsFulfilled &= condition(@object);
8686

87-
var isSatisfied = _predicate?.Invoke(property) != false;
88-
var errors = _errors.Where(e => !e.IsDefault).Any() ? _errors.Where(e => !e.IsDefault) : _errors;
87+
if (!hasAllConditionsFulfilled)
88+
{
89+
return ValitResult.Success;
90+
}
91+
92+
var isSatisfied = _predicate?.Invoke(property) ?? false;
93+
var errors = _errors.Any(e => !e.IsDefault) ? _errors.Where(e => !e.IsDefault) : _errors;
8994

90-
return !hasAllConditionsFulfilled || isSatisfied ? ValitResult.Success : ValitResult.Fail(errors.ToArray());
95+
return isSatisfied ? ValitResult.Success : ValitResult.Fail(errors.ToArray());
9196
}
9297
}
9398
}

src/Valit/Valit.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<PackageProjectUrl>https://github.com/valit-stack/Valit</PackageProjectUrl>
1111
<PackageLicenseUrl>https://github.com/valit-stack/Valit/blob/master/LICENSE</PackageLicenseUrl>
1212
<PackageIconUrl>https://user-images.githubusercontent.com/7096476/32700023-298ffb9e-c7bf-11e7-9d83-82690b7e260b.png</PackageIconUrl>
13-
<VersionPrefix>1.0.0</VersionPrefix>
13+
<VersionPrefix>2.0.0</VersionPrefix>
1414
<TargetFramework>netstandard2.0</TargetFramework>
1515
</PropertyGroup>
1616

src/Valit/ValitRuleStringExtensions.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,21 @@ public static class ValitRuleStringExtensions
88
{
99
private static string _emailRegularExpression => @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z";
1010
public static IValitRule<TObject, string> IsEqualTo<TObject>(this IValitRule<TObject, string> rule, string value) where TObject : class
11-
=> rule.Satisfies(p => !String.IsNullOrEmpty(p) && !String.IsNullOrEmpty(value) && p == value).WithDefaultMessage(ErrorMessages.IsEqualTo, value);
11+
=> rule.Satisfies(p => p != null && value != null && p == value).WithDefaultMessage(ErrorMessages.IsEqualTo, value);
1212

1313
public static IValitRule<TObject, string> MinLength<TObject>(this IValitRule<TObject, string> rule, int length) where TObject : class
14-
=> rule.Satisfies(p => !String.IsNullOrEmpty(p) && p.Length >= length).WithDefaultMessage(ErrorMessages.MinLength, length);
14+
=> rule.Satisfies(p => p != null && p.Length >= length).WithDefaultMessage(ErrorMessages.MinLength, length);
1515

1616
public static IValitRule<TObject, string> MaxLength<TObject>(this IValitRule<TObject, string> rule, int length) where TObject : class
17-
=> rule.Satisfies(p => !String.IsNullOrEmpty(p) && p.Length <= length).WithDefaultMessage(ErrorMessages.MaxLength, length);
17+
=> rule.Satisfies(p => p != null && p.Length <= length).WithDefaultMessage(ErrorMessages.MaxLength, length);
1818

1919
public static IValitRule<TObject, string> Matches<TObject>(this IValitRule<TObject, string> rule, string regularExpression) where TObject : class
20-
=> rule.Satisfies(p => !String.IsNullOrEmpty(p) && !String.IsNullOrEmpty(regularExpression) && Regex.IsMatch(p, regularExpression)).WithDefaultMessage(ErrorMessages.Matches, regularExpression);
20+
=> rule.Satisfies(p => p != null && !String.IsNullOrEmpty(regularExpression) && Regex.IsMatch(p, regularExpression)).WithDefaultMessage(ErrorMessages.Matches, regularExpression);
2121

2222
public static IValitRule<TObject, string> Email<TObject>(this IValitRule<TObject, string> rule) where TObject : class
23-
=> rule.Satisfies(p => !String.IsNullOrEmpty(p) && !String.IsNullOrEmpty(_emailRegularExpression) && Regex.IsMatch(p, _emailRegularExpression)).WithDefaultMessage(ErrorMessages.Email);
23+
=> rule.Satisfies(p => p != null && !String.IsNullOrEmpty(_emailRegularExpression) && Regex.IsMatch(p, _emailRegularExpression)).WithDefaultMessage(ErrorMessages.Email);
2424

2525
public static IValitRule<TObject, string> Required<TObject>(this IValitRule<TObject, string> rule) where TObject : class
26-
=> rule.Satisfies(p => !string.IsNullOrEmpty(p)).WithDefaultMessage(ErrorMessages.Required);
26+
=> rule.Satisfies(p => p != null).WithDefaultMessage(ErrorMessages.Required);
2727
}
2828
}

tests/Valit.Tests/Strategies/Complete.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void Complete_Strategy_Checks_All_Ensure()
3636
.Validate();
3737

3838
result.Succeeded.ShouldBe(false);
39-
result.ErrorMessages.Count().ShouldBe(6);
39+
result.ErrorMessages.Count().ShouldBe(5);
4040
result.ErrorMessages.ShouldContain(M1);
4141
result.ErrorMessages.ShouldContain(M3);
4242
result.ErrorMessages.ShouldContain(M4);

tests/Valit.Tests/Strategies/FailFast.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public void FailFast_Strategy_Checks_Until_First_Error_While_Error_Is_Not_First(
6868

6969
result.Succeeded.ShouldBe(false);
7070
result.ErrorMessages.Count().ShouldBe(1);
71-
result.ErrorMessages.ShouldContain(M2);
71+
result.ErrorMessages.ShouldContain(M3);
7272
}
7373

7474
#region ARRANGE

tests/Valit.Tests/String/String_IsEqualTo_Tests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void String_IsEqualTo_Returns_Proper_Result_For_Left_Value(string value,
3636
[Theory]
3737
[InlineData("text", false)]
3838
[InlineData("other", false)]
39-
[InlineData("", false)]
39+
[InlineData("", true)]
4040
[InlineData(null, false)]
4141
public void String_IsEqualTo_Returns_Proper_Result_For_Left_Empty_Value(string value, bool expected)
4242
{

tests/Valit.Tests/String/String_MaxLength_Tests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ public void String_MaxLength_Returns_Proper_Result_For_Left_Value(int value, boo
3333
}
3434

3535
[Theory]
36-
[InlineData(0, false)]
37-
[InlineData(4, false)]
38-
[InlineData(8, false)]
36+
[InlineData(0, true)]
37+
[InlineData(4, true)]
38+
[InlineData(8, true)]
3939
public void String_MaxLength_Returns_Proper_Result_For_Left_Empty_Value(int value, bool expected)
4040
{
4141
IValitResult result = ValitRules<Model>

tests/Valit.Tests/String/String_MinLength_Tests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public void String_MinLength_Returns_Proper_Result_For_Left_Value(int value, boo
3333
}
3434

3535
[Theory]
36-
[InlineData(0, false)]
36+
[InlineData(0, true)]
3737
[InlineData(4, false)]
3838
[InlineData(8, false)]
3939
public void String_MinLength_Returns_Proper_Result_For_Left_Empty_Value(int value, bool expected)

tests/Valit.Tests/String/String_Required_Tests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public void String_Required_Fails_For_Null_Value()
3333
}
3434

3535
[Fact]
36-
public void String_Required_Fails_For_Empty_Value()
36+
public void String_Required_Succeeds_For_Empty_Value()
3737
{
3838
IValitResult result = ValitRules<Model>
3939
.Create()
@@ -42,7 +42,7 @@ public void String_Required_Fails_For_Empty_Value()
4242
.For(_model)
4343
.Validate();
4444

45-
result.Succeeded.ShouldBeFalse();
45+
result.Succeeded.ShouldBeTrue();
4646
}
4747

4848
[Fact]

0 commit comments

Comments
 (0)