Beispiel #1
0
        public void ValidateBasicRequest(InProcessServer server, string requestPath, RequestTelemetry expected)
        {
            lock (noParallelism)
            {
                // Subtract 50 milliseconds to hack around strange behavior on build server where the RequestTelemetry.Timestamp is somehow sometimes earlier than now by a few milliseconds.
                expected.Timestamp = DateTimeOffset.Now.Subtract(TimeSpan.FromMilliseconds(50));
                server.BackChannel.Buffer.Clear();
                Stopwatch timer = Stopwatch.StartNew();

                var httpClientHandler = new HttpClientHandler();
                httpClientHandler.UseDefaultCredentials = true;

                Task <HttpResponseMessage> task;
                using (HttpClient httpClient = new HttpClient(httpClientHandler, true))
                {
                    task = httpClient.GetAsync(server.BaseHost + requestPath);
                    task.Wait(TestTimeoutMs);
                }

                timer.Stop();
                server.Dispose();

                RequestTelemetry actual = server.BackChannel.Buffer.OfType <RequestTelemetry>().Where(t => t.Name == expected.Name).Single();
                server.BackChannel.Buffer.Clear();

                Assert.Equal(expected.ResponseCode, actual.ResponseCode);
                Assert.Equal(expected.Name, actual.Name);
                Assert.Equal(expected.Success, actual.Success);
                Assert.Equal(expected.Url, actual.Url);
                InRange(actual.Timestamp, expected.Timestamp, DateTimeOffset.Now);
                Assert.True(actual.Duration < timer.Elapsed, "duration");
            }
        }
Beispiel #2
0
        public void ValidateBasicException(InProcessServer server, string requestPath, ExceptionTelemetry expected)
        {
            var httpClientHandler = new HttpClientHandler();

            httpClientHandler.UseDefaultCredentials = true;

            Task <HttpResponseMessage> task;

            using (var httpClient = new HttpClient(httpClientHandler, true))
            {
                task = httpClient.GetAsync(server.BaseHost + requestPath);
                task.Wait(TestTimeoutMs);
            }
            var result = task.Result;

            server.Dispose();
            var actual = server.BackChannel.Buffer.OfType <ExceptionTelemetry>().Single();

            Assert.Equal(expected.Exception.GetType(), actual.Exception.GetType());
            Assert.NotEmpty(actual.Exception.StackTrace);
            Assert.NotEmpty(actual.Context.Operation.Name);
            Assert.NotEmpty(actual.Context.Operation.Id);
        }