Skip to content

Commit

Permalink
Extract method for failing of BeCloseTo and NotBeCloseTo
Browse files Browse the repository at this point in the history
  • Loading branch information
krajek committed Oct 4, 2018
1 parent 21703f7 commit bf045c1
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 77 deletions.
111 changes: 35 additions & 76 deletions Src/FluentAssertions/NumericAssertionsExtensions.cs
Expand Up @@ -45,11 +45,7 @@ public static class NumericAssertionsExtensions
maxValue = sbyte.MaxValue;
}

Execute.Assertion
.ForCondition(minValue <= actualValue && actualValue <= maxValue)
.BecauseOf(because, becauseArgs)
.FailWith("Expected {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, nearbyValue, actualValue);
FailIfValueOutsideBounds(minValue <= actualValue && actualValue <= maxValue, nearbyValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<sbyte>>(parent);
}
Expand Down Expand Up @@ -88,11 +84,7 @@ public static class NumericAssertionsExtensions
maxValue = byte.MaxValue;
}

Execute.Assertion
.ForCondition(minValue <= actualValue && actualValue <= maxValue)
.BecauseOf(because, becauseArgs)
.FailWith("Expected {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, nearbyValue, actualValue);
FailIfValueOutsideBounds(minValue <= actualValue && actualValue <= maxValue, nearbyValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<byte>>(parent);
}
Expand Down Expand Up @@ -131,11 +123,7 @@ public static class NumericAssertionsExtensions
maxValue = short.MaxValue;
}

Execute.Assertion
.ForCondition(minValue <= actualValue && actualValue <= maxValue)
.BecauseOf(because, becauseArgs)
.FailWith("Expected {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, nearbyValue, actualValue);
FailIfValueOutsideBounds(minValue <= actualValue && actualValue <= maxValue, nearbyValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<short>>(parent);
}
Expand Down Expand Up @@ -174,11 +162,7 @@ public static class NumericAssertionsExtensions
maxValue = ushort.MaxValue;
}

Execute.Assertion
.ForCondition(minValue <= actualValue && actualValue <= maxValue)
.BecauseOf(because, becauseArgs)
.FailWith("Expected {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, nearbyValue, actualValue);
FailIfValueOutsideBounds(minValue <= actualValue && actualValue <= maxValue, nearbyValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<ushort>>(parent);
}
Expand Down Expand Up @@ -217,11 +201,7 @@ public static class NumericAssertionsExtensions
maxValue = int.MaxValue;
}

Execute.Assertion
.ForCondition(minValue <= actualValue && actualValue <= maxValue)
.BecauseOf(because, becauseArgs)
.FailWith("Expected {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, nearbyValue, actualValue);
FailIfValueOutsideBounds(minValue <= actualValue && actualValue <= maxValue, nearbyValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<int>>(parent);
}
Expand Down Expand Up @@ -260,11 +240,7 @@ public static class NumericAssertionsExtensions
maxValue = uint.MaxValue;
}

Execute.Assertion
.ForCondition(minValue <= actualValue && actualValue <= maxValue)
.BecauseOf(because, becauseArgs)
.FailWith("Expected {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, nearbyValue, actualValue);
FailIfValueOutsideBounds(minValue <= actualValue && actualValue <= maxValue, nearbyValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<uint>>(parent);
}
Expand Down Expand Up @@ -294,11 +270,7 @@ public static class NumericAssertionsExtensions
long minValue = GetMinValue(nearbyValue, delta);
long maxValue = GetMaxValue(nearbyValue, delta);

Execute.Assertion
.ForCondition(minValue <= actualValue && actualValue <= maxValue)
.BecauseOf(because, becauseArgs)
.FailWith("Expected {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, nearbyValue, actualValue);
FailIfValueOutsideBounds(minValue <= actualValue && actualValue <= maxValue, nearbyValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<long>>(parent);
}
Expand Down Expand Up @@ -337,13 +309,20 @@ public static class NumericAssertionsExtensions
maxValue = ulong.MaxValue;
}

FailIfValueOutsideBounds(minValue <= actualValue && actualValue <= maxValue, nearbyValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<ulong>>(parent);
}

private static void FailIfValueOutsideBounds<TValue, TDelta>(bool valueWithinBounds,
TValue nearbyValue, TDelta delta, TValue actualValue,
string because, object[] becauseArgs)
{
Execute.Assertion
.ForCondition(minValue <= actualValue && actualValue <= maxValue)
.ForCondition(valueWithinBounds)
.BecauseOf(because, becauseArgs)
.FailWith("Expected {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, nearbyValue, actualValue);

return new AndConstraint<NumericAssertions<ulong>>(parent);
}

#endregion
Expand Down Expand Up @@ -384,11 +363,7 @@ public static class NumericAssertionsExtensions
maxValue = sbyte.MaxValue;
}

Execute.Assertion
.ForCondition(!(minValue <= actualValue && actualValue <= maxValue))
.BecauseOf(because, becauseArgs)
.FailWith("Did not expect {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, distantValue, actualValue);
FailIfValueInsideBounds(!(minValue <= actualValue && actualValue <= maxValue), distantValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<sbyte>>(parent);
}
Expand Down Expand Up @@ -427,11 +402,7 @@ public static class NumericAssertionsExtensions
maxValue = byte.MaxValue;
}

Execute.Assertion
.ForCondition(!(minValue <= actualValue && actualValue <= maxValue))
.BecauseOf(because, becauseArgs)
.FailWith("Did not expect {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, distantValue, actualValue);
FailIfValueInsideBounds(!(minValue <= actualValue && actualValue <= maxValue), distantValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<byte>>(parent);
}
Expand Down Expand Up @@ -470,11 +441,7 @@ public static class NumericAssertionsExtensions
maxValue = short.MaxValue;
}

Execute.Assertion
.ForCondition(!(minValue <= actualValue && actualValue <= maxValue))
.BecauseOf(because, becauseArgs)
.FailWith("Did not expect {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, distantValue, actualValue);
FailIfValueInsideBounds(!(minValue <= actualValue && actualValue <= maxValue), distantValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<short>>(parent);
}
Expand Down Expand Up @@ -513,11 +480,7 @@ public static class NumericAssertionsExtensions
maxValue = ushort.MaxValue;
}

Execute.Assertion
.ForCondition(!(minValue <= actualValue && actualValue <= maxValue))
.BecauseOf(because, becauseArgs)
.FailWith("Did not expect {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, distantValue, actualValue);
FailIfValueInsideBounds(!(minValue <= actualValue && actualValue <= maxValue), distantValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<ushort>>(parent);
}
Expand Down Expand Up @@ -556,11 +519,7 @@ public static class NumericAssertionsExtensions
maxValue = int.MaxValue;
}

Execute.Assertion
.ForCondition(!(minValue <= actualValue && actualValue <= maxValue))
.BecauseOf(because, becauseArgs)
.FailWith("Did not expect {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, distantValue, actualValue);
FailIfValueInsideBounds(!(minValue <= actualValue && actualValue <= maxValue), distantValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<int>>(parent);
}
Expand Down Expand Up @@ -599,11 +558,7 @@ public static class NumericAssertionsExtensions
maxValue = uint.MaxValue;
}

Execute.Assertion
.ForCondition(!(minValue <= actualValue && actualValue <= maxValue))
.BecauseOf(because, becauseArgs)
.FailWith("Did not expect {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, distantValue, actualValue);
FailIfValueInsideBounds(!(minValue <= actualValue && actualValue <= maxValue), distantValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<uint>>(parent);
}
Expand Down Expand Up @@ -633,11 +588,7 @@ public static class NumericAssertionsExtensions
long minValue = GetMinValue(distantValue, delta);
long maxValue = GetMaxValue(distantValue, delta);

Execute.Assertion
.ForCondition(!(minValue <= actualValue && actualValue <= maxValue))
.BecauseOf(because, becauseArgs)
.FailWith("Did not expect {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, distantValue, actualValue);
FailIfValueInsideBounds(!(minValue <= actualValue && actualValue <= maxValue), distantValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<long>>(parent);
}
Expand Down Expand Up @@ -676,13 +627,21 @@ public static class NumericAssertionsExtensions
maxValue = ulong.MaxValue;
}

FailIfValueInsideBounds(!(minValue <= actualValue && actualValue <= maxValue), distantValue, delta, actualValue, because, becauseArgs);

return new AndConstraint<NumericAssertions<ulong>>(parent);
}

private static void FailIfValueInsideBounds<TValue, TDelta>(
bool valueOutsideBounds,
TValue distantValue, TDelta delta, TValue actualValue,
string because, object[] becauseArgs)
{
Execute.Assertion
.ForCondition(!(minValue <= actualValue && actualValue <= maxValue))
.ForCondition(valueOutsideBounds)
.BecauseOf(because, becauseArgs)
.FailWith("Did not expect {context:value} to be within {0} from {1}{reason}, but found {2}.",
delta, distantValue, actualValue);

return new AndConstraint<NumericAssertions<ulong>>(parent);
}

#endregion
Expand Down
1 change: 0 additions & 1 deletion Tests/Shared.Specs/NullableNumericAssertionSpecs.cs
@@ -1,5 +1,4 @@
using System;
using FluentAssertions.Primitives;
using Xunit;
using Xunit.Sdk;

Expand Down

0 comments on commit bf045c1

Please sign in to comment.