Beispiel #1
0
        public async Task LogsMultipleExceptions()
        {
            var requestTask1 = _client.GetAsync($"api/ErrorReporting/{nameof(ErrorReportingController.ThrowsException)}/{_testId}");
            var requestTask2 = _client.GetAsync($"api/ErrorReporting/{nameof(ErrorReportingController.ThrowsArgumentException)}/{_testId}");
            var requestTask3 = _client.GetAsync($"api/ErrorReporting/{nameof(ErrorReportingController.ThrowsException)}/{_testId}");
            var requestTask4 = _client.GetAsync($"api/ErrorReporting/{nameof(ErrorReportingController.ThrowsException)}/{_testId}");

            var response = await requestTask1;

            Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
            response = await requestTask2;
            Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
            response = await requestTask3;
            Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);
            response = await requestTask4;
            Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode);

            var errorEvents = ErrorEventEntryVerifiers.VerifyMany(s_polling, _testId, 4);

            var exceptionEvents = errorEvents
                                  .Where(e => e.Message.Contains(nameof(ErrorReportingController.ThrowsException)));

            Assert.Equal(3, exceptionEvents.Count());
            foreach (var errorEvent in exceptionEvents)
            {
                ErrorEventEntryVerifiers.VerifyFullErrorEventLogged(errorEvent, _testId, nameof(ErrorReportingController.ThrowsException));
            }

            var argumentExceptionEvent = errorEvents
                                         .Where(e => e.Message.Contains(nameof(ErrorReportingController.ThrowsArgumentException)))
                                         .Single();

            ErrorEventEntryVerifiers.VerifyFullErrorEventLogged(argumentExceptionEvent, _testId, nameof(ErrorReportingController.ThrowsArgumentException));
        }
Beispiel #2
0
        public async Task LogsMultipleExceptions()
        {
            await Assert.ThrowsAsync <Exception>(() =>
                                                 _client.GetAsync($"/ErrorReporting/{nameof(ErrorReportingController.ThrowsException)}/{_testId}"));

            await Assert.ThrowsAsync <ArgumentException>(() =>
                                                         _client.GetAsync($"/ErrorReporting/{nameof(ErrorReportingController.ThrowsArgumentException)}/{_testId}"));

            await Assert.ThrowsAsync <Exception>(() =>
                                                 _client.GetAsync($"/ErrorReporting/{nameof(ErrorReportingController.ThrowsException)}/{_testId}"));

            await Assert.ThrowsAsync <Exception>(() =>
                                                 _client.GetAsync($"/ErrorReporting/{nameof(ErrorReportingController.ThrowsException)}/{_testId}"));

            var errorEvents = ErrorEventEntryVerifiers.VerifyMany(s_polling, _testId, 4);

            var exceptionEvents = errorEvents.Where(e => e.Message.Contains(nameof(ErrorReportingController.ThrowsException)));

            Assert.Equal(3, exceptionEvents.Count());
            foreach (var errorEvent in exceptionEvents)
            {
                ErrorEventEntryVerifiers.VerifyFullErrorEventLogged(errorEvent, _testId, nameof(ErrorReportingController.ThrowsException));
            }

            var argumentExceptionEvent = errorEvents.Where(e => e.Message.Contains(nameof(ErrorReportingController.ThrowsArgumentException))).Single();

            ErrorEventEntryVerifiers.VerifyFullErrorEventLogged(argumentExceptionEvent, _testId, nameof(ErrorReportingController.ThrowsArgumentException));
        }
        public async Task LogsMultipleExceptions()
        {
            using var server = GetTestServer <ErrorReportingTestApplication>();
            using var client = server.CreateClient();

            await Assert.ThrowsAsync <Exception>(() =>
                                                 client.GetAsync($"/ErrorReporting/{nameof(ErrorReportingController.ThrowsException)}/{_testId}_0"));

            await Assert.ThrowsAsync <ArgumentException>(() =>
                                                         client.GetAsync($"/ErrorReporting/{nameof(ErrorReportingController.ThrowsArgumentException)}/{_testId}"));

            await Assert.ThrowsAsync <Exception>(() =>
                                                 client.GetAsync($"/ErrorReporting/{nameof(ErrorReportingController.ThrowsException)}/{_testId}_1"));

            await Assert.ThrowsAsync <Exception>(() =>
                                                 client.GetAsync($"/ErrorReporting/{nameof(ErrorReportingController.ThrowsException)}/{_testId}_2"));

            _fixture.AddValidator(_testId, results =>
            {
                Assert.Equal(4, results.Count);
                Assert.All(results, AssertTraceContext);

                var errorEvents = ErrorEventEntryVerifiers.VerifyMany(ErrorEventEntryPolling.NoRetry, _testId, 4);

                var exceptionEvents = errorEvents.Where(e => e.Message.Contains(nameof(ErrorReportingController.ThrowsException))).ToList();
                Assert.Equal(3, exceptionEvents.Count);
                Assert.All(exceptionEvents, e => ErrorEventEntryVerifiers.VerifyFullErrorEventLogged(e, _testId, nameof(ErrorReportingController.ThrowsException)));

                var argumentExceptionEvent = errorEvents.Where(e => e.Message.Contains(nameof(ErrorReportingController.ThrowsArgumentException))).Single();
                ErrorEventEntryVerifiers.VerifyFullErrorEventLogged(argumentExceptionEvent, _testId, nameof(ErrorReportingController.ThrowsArgumentException));
            });
        }