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); } }
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 }; } }
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; } }
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); }