Exemple #1
0
        public void InProjectTest(string[] projectNamespaces, StackTraceInProjectTestCase[] testCases)
        {
            var configuration = new Configuration("123456")
            {
                ProjectNamespaces = projectNamespaces
            };
            var report = new Report(configuration, new System.Exception(), HandledState.ForHandledException(), new Breadcrumb[0], new Session());

            foreach (var exception in report.Event.Exceptions)
            {
                exception["stacktrace"] = testCases
                                          .Select(t => new StackTraceLine(null, 0, t.MethodName, false, null))
                                          .ToArray();
            }

            InternalMiddleware.DetectInProjectNamespaces(report);

            foreach (var exception in report.Event.Exceptions)
            {
                foreach (var stackTraceLine in exception.StackTrace)
                {
                    foreach (var testCase in testCases)
                    {
                        if (stackTraceLine.MethodName == testCase.MethodName)
                        {
                            Assert.Equal(testCase.ShouldBeMarkedAsInProject, stackTraceLine.InProject);
                        }
                    }
                }
            }
        }
Exemple #2
0
        public void IgnoreClassesTest(System.Exception thrownException, Type ignoreClass, bool ignored)
        {
            var configuration = new Configuration("123456")
            {
                IgnoreClasses = new[] { ignoreClass }
            };
            var report = new Report(configuration, thrownException, HandledState.ForHandledException(), new Breadcrumb[0], new Session());

            InternalMiddleware.CheckIgnoreClasses(report);

            Assert.Equal(ignored, report.Ignored);
        }
Exemple #3
0
        public void ReleaseStageFilterTests(string releaseStage, string[] notifyReleaseStages, bool validReleaseStage)
        {
            var configuration = new Configuration("123456")
            {
                ReleaseStage = releaseStage, NotifyReleaseStages = notifyReleaseStages
            };

            var report = new Report(configuration, new System.Exception(), Bugsnag.Payload.HandledState.ForHandledException(), new Breadcrumb[0], new Session());

            InternalMiddleware.ReleaseStageFilter(report);

            Assert.Equal(validReleaseStage, report.Ignored);
        }
Exemple #4
0
        public void DetermineDefaultContextTests(string requestUrl, string expectedContext)
        {
            var configuration = new Configuration("123456");
            var report        = new Report(configuration, new System.Exception(), HandledState.ForHandledException(), new Breadcrumb[0], new Session());

            report.Event.Request = new Request {
                Url = requestUrl
            };

            InternalMiddleware.DetermineDefaultContext(report);

            Assert.Equal(expectedContext, report.Event.Context);
        }
Exemple #5
0
        public void ProjectRootStrippingTests(string[] projectRoots, string fileName, string expectedFileName)
        {
            var configuration = new Configuration("123456")
            {
                ProjectRoots = projectRoots
            };
            var report = new Report(configuration, new System.Exception(), HandledState.ForHandledException(), new Breadcrumb[0], new Session());

            foreach (var exception in report.Event.Exceptions)
            {
                var stacktrace = new StackTraceLine[] { new StackTraceLine(fileName, 1, string.Empty, false, null) };
                exception["stacktrace"] = stacktrace;
            }

            InternalMiddleware.RemoveProjectRoots(report);

            foreach (var exception in report.Event.Exceptions)
            {
                foreach (var stacktraceline in exception.StackTrace)
                {
                    Assert.Equal(expectedFileName, stacktraceline.FileName);
                }
            }
        }
 protected BotBase AddInternalMiddleware(InternalMiddleware middleware)
 {
     internalMiddlewares.Add(middleware);
     return(this);
 }