public void AggregateException()
        {
            Action inner1TestCode = () => { throw new DivideByZeroException(); };
            var    inner1         = Record.Exception(inner1TestCode);
            Action inner2TestCode = () => { throw new NotImplementedException("inner #2"); };
            var    inner2         = Record.Exception(inner2TestCode);
            Action inner3TestCode = () => { throw new XunitException("this is crazy"); };
            var    inner3         = Record.Exception(inner3TestCode);
            Action outerTestCode  = () => { throw new AggregateException(inner1, inner2, inner3); };
            var    outer          = Record.Exception(outerTestCode);
            var    failureInfo    = new FailureInformation {
                { outer, -1 }, { inner1, 0 }, { inner2, 0 }, { inner3, 0 }
            };

            var result = ExceptionUtility.CombineStackTraces(failureInfo);

            Assert.Collection(result.Split(new[] { Environment.NewLine }, StringSplitOptions.None),
                              line => Assert.Contains("at ExceptionUtilityTests.CombineStackTraces", line),
                              line => Assert.Equal("----- Inner Stack Trace #1 (System.DivideByZeroException) -----", line),
                              line => Assert.Contains("at ExceptionUtilityTests.CombineStackTraces", line),
                              line => Assert.Equal("----- Inner Stack Trace #2 (System.NotImplementedException) -----", line),
                              line => Assert.Contains("at ExceptionUtilityTests.CombineStackTraces", line),
                              line => Assert.Equal("----- Inner Stack Trace #3 (Xunit.Sdk.XunitException) -----", line),
                              line => Assert.Contains("at ExceptionUtilityTests.CombineStackTraces", line)
                              );
        }
        public void NonXunitException()
        {
            Action testCode    = () => { throw new Exception(); };
            var    ex          = Record.Exception(testCode);
            var    failureInfo = new FailureInformation {
                ex
            };

            var result = ExceptionUtility.CombineStackTraces(failureInfo);

            Assert.DoesNotContain(typeof(Record).FullName, result);
            Assert.DoesNotContain(typeof(XunitException).FullName, result);
            Assert.Contains("at ExceptionUtilityTests.CombineStackTraces", result);
        }
Esempio n. 3
0
        public void XunitException()
        {
            Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;

            Action testCode    = () => { throw new XunitException(); };
            var    ex          = Record.Exception(testCode);
            var    failureInfo = new FailureInformation {
                ex
            };

            var result = ExceptionUtility.CombineStackTraces(failureInfo);

            Assert.DoesNotContain(typeof(Record).FullName, result);
            Assert.DoesNotContain(typeof(XunitException).FullName, result);
            Assert.Contains("at ExceptionUtilityTests.CombineStackTraces", result);
        }
        public void NonXunitExceptionWithInnerExceptions()
        {
            Action innerTestCode = () => { throw new DivideByZeroException(); };
            var    inner         = Record.Exception(innerTestCode);
            Action outerTestCode = () => { throw new Exception("message", inner); };
            var    outer         = Record.Exception(outerTestCode);
            var    failureInfo   = new FailureInformation {
                { outer, -1 }, { inner, 0 }
            };

            var result = ExceptionUtility.CombineStackTraces(failureInfo);

            Assert.Collection(result.Split(new[] { Environment.NewLine }, StringSplitOptions.None),
                              line => Assert.Contains("at ExceptionUtilityTests.CombineStackTraces", line),
                              line => Assert.Equal("----- Inner Stack Trace -----", line),
                              line => Assert.Contains("at ExceptionUtilityTests.CombineStackTraces", line)
                              );
        }
Esempio n. 5
0
        public void MissingStackTracesAndExceptionTypes()
        {
            var failureInfo = new FailureInformation();

            failureInfo.AddMessage("Message 1");
            failureInfo.AddMessage("Message 2");
            failureInfo.AddMessage("Message 3");
            failureInfo.AddIndex(-1);
            failureInfo.AddIndex(0);
            failureInfo.AddIndex(0);
            failureInfo.AddExceptionType("ExceptionType1");
            failureInfo.AddExceptionType("Xunit.Sdk.ExceptionType2");
            failureInfo.AddStackTrace("Stack Trace 1");
            failureInfo.AddStackTrace("Stack Trace 2");

            var result = ExceptionUtility.CombineStackTraces(failureInfo);

            Assert.Equal("Stack Trace 1" + Environment.NewLine +
                         "----- Inner Stack Trace #1 (Xunit.Sdk.ExceptionType2) -----" + Environment.NewLine +
                         "Stack Trace 2" + Environment.NewLine +
                         "----- Inner Stack Trace #2 () -----" + Environment.NewLine, result);
        }