public void ShouldWrapExceptionDetailsWhenExceptionIsThrown() { ExceptionThrowingCommand innerCmd = new ExceptionThrowingCommand(); MethodInfo method = typeof(ExceptionThrowingCommand).GetMethod("Execute"); var command = new ExceptionAndOutputCaptureCommand(innerCmd, Reflector.Wrap(method)); MethodResult result = command.Execute(null); FailedResult failed = Assert.IsType<FailedResult>(result); Assert.Equal(method.Name, failed.MethodName); Assert.Equal(method.DeclaringType.FullName, failed.TypeName); Assert.Equal(typeof(TargetInvocationException).FullName, failed.ExceptionType); Assert.Contains("ExceptionThrowingCommand.Execute", failed.StackTrace); }
public void ConsoleOutAndErrorAreReplacedDuringTestExecution() { TextWriter originalOut = Console.Out; TextWriter originalError = Console.Error; try { TextWriter newOut = new StringWriter(); TextWriter newError = new StringWriter(); Console.SetOut(newOut); Console.SetError(newError); StubCommand cmd = new StubCommand(); var outputCmd = new ExceptionAndOutputCaptureCommand(cmd, null); outputCmd.Execute(null); Assert.Empty(newOut.ToString()); Assert.Empty(newError.ToString()); } finally { Console.SetOut(originalOut); Console.SetError(originalError); } }
public void ConsoleOutAndErrorAndTraceIsCapturedAndPlacedInMethodResult() { string expected = "Standard Output" + Environment.NewLine + "Standard Error" + Environment.NewLine + "Trace" + Environment.NewLine; StubCommand cmd = new StubCommand(); var outputCmd = new ExceptionAndOutputCaptureCommand(cmd, null); MethodResult result = outputCmd.Execute(null); Assert.Equal(expected, result.Output); }
public void ConsoleOutAndErrorAndTraceIsCapturedAndPlacedInMethodResult() { const string expected = @"Standard Output Standard Error Trace "; StubCommand cmd = new StubCommand(); var outputCmd = new ExceptionAndOutputCaptureCommand(cmd, null); MethodResult result = outputCmd.Execute(null); Assert.Equal(expected, result.Output); }