Skip to content

Commit

Permalink
Fixes #149, by returning the parsed Guid
Browse files Browse the repository at this point in the history
  • Loading branch information
danielwertheim committed Feb 10, 2021
1 parent f1d4628 commit 5f7a832
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 9 deletions.
6 changes: 3 additions & 3 deletions src/projects/EnsureThat/Enforcers/StringArg.cs
Original file line number Diff line number Diff line change
Expand Up @@ -181,15 +181,15 @@ public string IsNotEqualTo(string value, string notExpected, StringComparison co

[NotNull]
[ContractAnnotation("value:null => halt")]
public string IsGuid([ValidatedNotNull]string value, [InvokerParameterName] string paramName = null, OptsFn optsFn = null)
public Guid IsGuid([ValidatedNotNull]string value, [InvokerParameterName] string paramName = null, OptsFn optsFn = null)
{
if (!Guid.TryParse(value, out _))
if (!Guid.TryParse(value, out var parsed))
throw Ensure.ExceptionFactory.ArgumentException(
string.Format(ExceptionMessages.Strings_IsGuid_Failed, value),
paramName,
optsFn);

return value;
return parsed;
}

[NotNull]
Expand Down
2 changes: 1 addition & 1 deletion src/projects/EnsureThat/EnsureArg.Strings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ public static string IsNotEqualTo(string value, string notExpected, StringCompar

[NotNull]
[ContractAnnotation("value:null => halt")]
public static string IsGuid([ValidatedNotNull] string value, [InvokerParameterName] string paramName = null, OptsFn optsFn = null)
public static Guid IsGuid([ValidatedNotNull] string value, [InvokerParameterName] string paramName = null, OptsFn optsFn = null)
=> Ensure.String.IsGuid(value, paramName, optsFn);

[NotNull]
Expand Down
16 changes: 11 additions & 5 deletions src/tests/UnitTests/EnsureStringParamTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -465,14 +465,20 @@ public void IsGuid_When_is_not_Guid_throws_ArgumentException()
}

[Fact]
public void IsGuid_When_valid_Guid_returns_Guid()
public void IsGuid_When_valid_Guid_It_should_not_throw_and_should_return_Guid()
{
var value = Guid.NewGuid().ToString();
var value = Guid.NewGuid();
var valueAsString = value.ToString();

ShouldNotThrow(
() => Ensure.String.IsGuid(value, ParamName),
() => EnsureArg.IsGuid(value, ParamName),
() => Ensure.That(value, ParamName).IsGuid());
() => Ensure.String.IsGuid(valueAsString, ParamName),
() => EnsureArg.IsGuid(valueAsString, ParamName),
() => Ensure.That(valueAsString, ParamName).IsGuid());

ShouldReturn(
value,
() => Ensure.String.IsGuid(valueAsString),
() => EnsureArg.IsGuid(valueAsString));
}

[Fact]
Expand Down
6 changes: 6 additions & 0 deletions src/tests/UnitTests/UnitTestBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,11 @@ protected static void ShouldThrowButNot<TEx>(params Action[] actions) where TEx
ex.Should().NotBeOfType<TEx>();
}
}

protected static void ShouldReturn<T>(T expectedResult, params Func<T>[] actions)
{
foreach (var action in actions)
action().Should().Be(expectedResult);
}
}
}

0 comments on commit 5f7a832

Please sign in to comment.