コード例 #1
0
        private static void PerformAssertWithConstraint <TActual>(IResolveConstraint constraint, object actual, Func <string> getExceptionMessage = null, string message = null, object[] args = null)
        {
            using (var messageWitter = new TextMessageWriter())
            {
                var resolveConstraint = constraint.Resolve();

                TestExecutionContext.CurrentContext.IncrementAssertCount();

                var result = actual is ActualValueDelegate <TActual>?resolveConstraint.ApplyTo <TActual>(actual as ActualValueDelegate <TActual>) : resolveConstraint.ApplyTo(actual);

                var expectedValue = result.Description;
                result.WriteActualValueTo(messageWitter);
                var actualValue = messageWitter.ToString();

                if (!result.IsSuccess)
                {
                    InconclusiveException exceptiopn = null;
                    if (getExceptionMessage != null)
                    {
                        exceptiopn = new InconclusiveException(getExceptionMessage());
                    }
                    else
                    {
                        using (var errorMessageWritter = new TextMessageWriter(message, args))
                        {
                            result.WriteMessageTo(errorMessageWritter);
                            exceptiopn = new InconclusiveException(errorMessageWritter.ToString());
                        }
                    }
                    LogHelper.LoggerForCurrentTest.Assume(FormatAssertFailMessage(getExceptionMessage, message, args), false, actual, expectedValue, actualValue, exceptiopn.ToString());
                    throw exceptiopn ?? new InconclusiveException($"Assume.That() failed.{Environment.NewLine} Expected {expectedValue}.{Environment.NewLine} Actual {actualValue}.");
                }
                LogHelper.LoggerForCurrentTest.Assume("Asserting expression -- success.", true, actual, expectedValue, actualValue);
            }
        }
コード例 #2
0
        public void TestFinished(ITestResult result)
        {
            if (!result.Test.IsSuite)
            {
                Exception exception = null;
                switch (result.ResultState.Status)
                {
                case TestStatus.Passed:
                    break;

                case TestStatus.Inconclusive:
                    exception = new InconclusiveException(result.Message);
                    break;

                case TestStatus.Skipped:
                    exception = new IgnoreException(result.Message);
                    break;

                case TestStatus.Warning:
                    break;

                case TestStatus.Failed:
                    exception = new AssertionException($"{result.Message}{Environment.NewLine}{result.StackTrace}");
                    break;
                }

                Result = new Result(result.Output, exception)
                {
                    Duration  = result.Duration,
                    StartTime = result.StartTime,
                    EndTime   = result.EndTime
                };
            }
        }
コード例 #3
0
 internal static void AssumePreviousTest(Action delegateToRun)
 {
     try
     {
         delegateToRun();
     }
     catch (AssertionException e)
     {
         var inconclusiveException = new InconclusiveException(e.Message + "Delegate stack trace:\n" + e.StackTrace, e);
         throw inconclusiveException;
     }
 }
コード例 #4
0
        public async Task Should_log_critical_when_exception_on_disconnect()
        {
            var exception = new InconclusiveException("Some test");
            await Hub.OnDisconnectedAsync(exception);

            LoggerMock.Verify(
                x => x.Log(
                    LogLevel.Warning,
                    It.IsAny <EventId>(),
                    It.Is <It.IsAnyType>((o, t) => o.ToString().StartsWith("There was an error when disconnecting from chat hub server-side")),
                    exception,
                    (Func <It.IsAnyType, Exception, string>)It.IsAny <object>()),
                Times.Once);
        }