1

Closed

Support Be() on decimal and decimal?

description

Going through code we've added to our project.
public class NumericAssertionsExtended<T> : NumericAssertions<T>
{
    protected internal NumericAssertionsExtended(T value) : base(value)
    {
    }
}

public static class NumericAssertionsExtendedExtensions
{
    public static NumericAssertions<decimal> Should(this decimal actualValue)
    {
        return new NumericAssertionsExtended<decimal>(actualValue);
    }

    public static NumericAssertions<decimal?> Should(this decimal? actualValue)
    {
        return new NumericAssertionsExtended<decimal?>(actualValue);
    }

    public static AndConstraint<NumericAssertions<decimal>> Be(this NumericAssertions<decimal> parent, decimal expected)
    {
        return Be(parent, expected, string.Empty);
    }

    public static AndConstraint<NumericAssertions<decimal>> Be(this NumericAssertions<decimal> parent, decimal expected, string reason,
                                                               params object[] reasonArgs)
    {
        Execute.Verification
            .ForCondition(parent.Subject.CompareTo(expected) == 0)
            .BecauseOf(reason, reasonArgs)
            .FailWith("Expected value {0} to be exactly {1}{reason}.", parent.Subject, expected);

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

    public static AndConstraint<NumericAssertions<decimal?>> Be(this NumericAssertions<decimal?> parent, decimal? expected)
    {
        return Be(parent, expected, string.Empty);
    }

    public static AndConstraint<NumericAssertions<decimal?>> Be(this NumericAssertions<decimal?> parent, decimal? expected, string reason,
                                                                params object[] reasonArgs)
    {
        Execute.Verification
            .ForCondition(ReferenceEquals(parent.Subject, expected) || (parent.Subject.CompareTo(expected) == 0))
            .BecauseOf(reason, reasonArgs)
            .FailWith("Expected value {0} to be exactly {1}{reason}.", parent.Subject, expected);

        return new AndConstraint<NumericAssertions<decimal?>>(parent);
    }
}
Closed Aug 25, 2012 at 2:19 PM by
All done with the public beta of Fluent Assertions 2.0

comments