Пример #1
0
        public void FailureIncludesOptionalMessageWhenProvided()
        {
            AssertionFailure failure = AssertionConditionEvaluator.Eval(() => true, false, "Expected {0}", "true");

            Assert.IsNotNull(failure);
            Assert.AreEqual("Expected true", failure.Message);
        }
Пример #2
0
        public void FailureExcludesOptionalMessageWhenOmitted()
        {
            AssertionFailure failure = AssertionConditionEvaluator.Eval(() => true, false, null);

            Assert.IsNotNull(failure);
            Assert.IsNull(failure.Message);
        }
Пример #3
0
        public void FailureIncludesStackTrace()
        {
            AssertionFailure failure = AssertionConditionEvaluator.Eval(() => true, false, null);

            Assert.IsNotNull(failure);
            Assert.Contains(failure.StackTrace.ToString(), "FailureIncludesStackTrace");
        }
Пример #4
0
        /// <summary>
        /// Verifies that a particular condition holds true.
        /// </summary>
        /// <remarks>
        /// <para>
        /// If the condition evaluates to false, the assertion failure message will
        /// describe in detail the intermediate value of relevant sub-expressions within
        /// the condition.  Consequently the assertion failure will include more diagnostic
        /// information than if <see cref="Assert.IsTrue(bool, string, object[])" /> were used instead.
        /// </para>
        /// </remarks>
        /// <param name="condition">The conditional expression to evaluate.</param>
        /// <param name="messageFormat">The custom assertion message format, or null if none.</param>
        /// <param name="messageArgs">The custom assertion message arguments, or null if none.</param>
        /// <exception cref="ArgumentNullException">Thrown if <paramref name="condition"/> is null.</exception>
        /// <exception cref="AssertionException">Thrown if the verification failed unless the current <see cref="AssertionContext.AssertionFailureBehavior" /> indicates otherwise.</exception>
        public static void That(Expression <System.Func <bool> > condition, string messageFormat, params object[] messageArgs)
        {
            if (condition == null)
            {
                throw new ArgumentNullException("condition");
            }

            AssertionFailure failure = AssertionConditionEvaluator.Eval(condition, true, messageFormat, messageArgs);

            AssertionHelper.Fail(failure);
        }
Пример #5
0
        public void FailureDescribesExpectedResultAndConditionAndParameters(bool expectedResult)
        {
            AssertionFailure failure = AssertionConditionEvaluator.Eval(() => !expectedResult, expectedResult, null);

            Assert.IsNotNull(failure);
            Assert.AreEqual(String.Format("Expected the condition to evaluate to {0}.", expectedResult.ToString().ToLowerInvariant()), failure.Description);
            Assert.AreElementsEqual(new[] {
                new AssertionFailure.LabeledValue("Condition", "! expectedResult"),
                new AssertionFailure.LabeledValue("expectedResult", Formatter.Instance.Format(expectedResult)),
            }, failure.LabeledValues);
        }
Пример #6
0
        public void FailureMessageIgnoresValueOfTopLevelNotExpression()
        {
            int x = 42;
            AssertionFailure failure = AssertionConditionEvaluator.Eval(() => !(x.ToString() == "42"), true, null);

            Assert.IsNotNull(failure);

            Assert.AreElementsEqual(new[] {
                new AssertionFailure.LabeledValue("Condition", "! (x.ToString() == \"42\")"),
                new AssertionFailure.LabeledValue("x.ToString()", "\"42\""),
                new AssertionFailure.LabeledValue("x", "42"),
            }, failure.LabeledValues);
        }
Пример #7
0
        public void FailureDescribesException()
        {
            object           x       = null;
            AssertionFailure failure = AssertionConditionEvaluator.Eval(() => x.Equals(null), true, null);

            Assert.IsNotNull(failure);
            Assert.AreEqual("Expected the condition to evaluate to true but it threw an exception.", failure.Description);
            Assert.AreElementsEqual(new[] {
                new AssertionFailure.LabeledValue("Condition", "x.Equals(null)"),
                new AssertionFailure.LabeledValue("x", "null"),
            }, failure.LabeledValues);
            Assert.Count(1, failure.Exceptions);
            Assert.Contains(failure.Exceptions[0].ToString(), "NullReferenceException");
        }
Пример #8
0
        public void FailureMessageIgnoresRepeatedOccurrencesOfAVariable()
        {
            int x = 42;
            AssertionFailure failure = AssertionConditionEvaluator.Eval(() => x * 2 == x + 1, true, null);

            Assert.IsNotNull(failure);

            Assert.AreElementsEqual(new[] {
                new AssertionFailure.LabeledValue("Condition", "x * 2 == x + 1"),
                new AssertionFailure.LabeledValue("x * 2", "84"),
                new AssertionFailure.LabeledValue("x + 1", "43"),
                new AssertionFailure.LabeledValue("x", "42")
            }, failure.LabeledValues);
        }
Пример #9
0
 public void ReturnsNullIfTheConditionEvaluatesAsExpected(bool expectedResult)
 {
     Assert.IsNull(AssertionConditionEvaluator.Eval(() => expectedResult, expectedResult, null));
 }
Пример #10
0
 public void EvalThrowsIfConditionIsNull()
 {
     AssertionConditionEvaluator.Eval(null, true, "abc");
 }