public void TestHttpRequestsWithQueryStringAreCollected() { ITelemetry sentTelemetry = null; var channel = new StubTelemetryChannel { OnSend = telemetry => sentTelemetry = telemetry }; var config = new TelemetryConfiguration { InstrumentationKey = IKey, TelemetryChannel = channel }; using (var module = new DependencyTrackingTelemetryModule()) { module.Initialize(config); const string Url = "http://www.bing.com/search?q=1"; new HttpWebRequestUtils().ExecuteAsyncHttpRequest(Url, HttpMethod.Get); while (sentTelemetry == null) { Thread.Sleep(100); } Assert.IsNotNull(sentTelemetry, "Get requests are not monitored with RDD Event Source."); var item = (DependencyTelemetry)sentTelemetry; Assert.AreEqual(Url, item.Name, "Reported Url must be " + Url); Assert.IsTrue(item.Duration > TimeSpan.FromMilliseconds(0), "Duration has to be positive"); Assert.AreEqual("Http", item.DependencyKind, "HttpAny has to be dependency kind as it includes http and azure calls"); Assert.IsTrue( DateTime.UtcNow.Subtract(item.Timestamp.UtcDateTime).TotalMilliseconds < TimeSpan.FromMinutes(1).TotalMilliseconds, "timestamp < now"); Assert.IsTrue( item.Timestamp.Subtract(DateTime.UtcNow).TotalMilliseconds > -TimeSpan.FromMinutes(1).TotalMilliseconds, "now - 1 min < timestamp"); } }
public void TestInit() { this.sendItems = new List<ITelemetry>(); var stubTelemetryChannel = new StubTelemetryChannel { OnSend = item => this.sendItems.Add(item) }; this.configuration = new TelemetryConfiguration { InstrumentationKey = Guid.NewGuid().ToString(), TelemetryChannel = stubTelemetryChannel }; }
public void OnEndTracksRequest() { var sendItems = new List<ITelemetry>(); var stubTelemetryChannel = new StubTelemetryChannel { OnSend = item => sendItems.Add(item) }; var configuration = new TelemetryConfiguration { InstrumentationKey = Guid.NewGuid().ToString(), TelemetryChannel = stubTelemetryChannel }; using (var module = new RequestTrackingTelemetryModule()) { module.Initialize(configuration); module.OnBeginRequest(null); module.OnEndRequest(null); Assert.AreEqual(1, sendItems.Count); } }
public void TestHttpGetRequestsAreCollected() { ITelemetry sentTelemetry = null; var channel = new StubTelemetryChannel { OnSend = telemetry => sentTelemetry = telemetry }; var config = new TelemetryConfiguration { InstrumentationKey = IKey, TelemetryChannel = channel }; using (var module = new DependencyTrackingTelemetryModule()) { module.Initialize(config); Uri url = new Uri("http://www.bing.com/maps"); new HttpWebRequestUtils().ExecuteAsyncHttpRequest(url.ToString(), HttpMethod.Get); while (sentTelemetry == null) { Thread.Sleep(100); } Assert.IsNotNull(sentTelemetry, "Get requests are not monitored with RDD Event Source."); var item = (DependencyTelemetry)sentTelemetry; Assert.AreEqual(url, item.Data); Assert.AreEqual(url.Host, item.Target); Assert.AreEqual(url.AbsolutePath, item.Name); Assert.IsTrue(item.Duration > TimeSpan.FromMilliseconds(0), "Duration has to be positive"); Assert.AreEqual(RemoteDependencyConstants.HTTP, item.Type, "HttpAny has to be dependency kind as it includes http and azure calls"); Assert.IsTrue( DateTime.UtcNow.Subtract(item.Timestamp.UtcDateTime).TotalMilliseconds < TimeSpan.FromMinutes(1).TotalMilliseconds, "timestamp < now"); Assert.IsTrue( item.Timestamp.Subtract(DateTime.UtcNow).TotalMilliseconds > -TimeSpan.FromMinutes(1).TotalMilliseconds, "now - 1 min < timestamp"); } }