public void UserAgentOverride(string userAgentOverride, string[] customHeaders, string expect)
        {
            var requestMock = new MockRequest();
            var message     = new HttpMessage(requestMock, new ResponseClassifier());

            if (!string.IsNullOrEmpty(userAgentOverride))
            {
                message.SetProperty("SDKUserAgent", userAgentOverride);
            }
            if (customHeaders.Length > 0)
            {
                foreach (var header in customHeaders)
                {
                    requestMock.Headers.Add(HttpHeader.Names.UserAgent, header);
                }
            }

            var policy = new MgmtTelemetryPolicy(this, ClientOptions.Default);

            policy.OnSendingRequest(message);

            string actual;

            Assert.IsTrue(requestMock.Headers.TryGetValue(HttpHeader.Names.UserAgent, out actual));
            Assert.That(actual, Does.Match(expect));

            IEnumerable <string> actualValues;

            Assert.IsTrue(requestMock.Headers.TryGetValues(HttpHeader.Names.UserAgent, out actualValues));
            Assert.That(actualValues.ToArray(), Has.Length.EqualTo(1));
        }
        public void UserAgentOverrideBenchmark()
        {
            var requestMock = new MockRequest();
            var message     = new HttpMessage(requestMock, new ResponseClassifier());

            if (!string.IsNullOrEmpty(SDKAgentOverride))
            {
                message.SetProperty("SDKUserAgent", SDKAgentOverride);
            }
            if (CustomHeaders.Length > 0)
            {
                foreach (var header in CustomHeaders)
                {
                    requestMock.Headers.Add(HttpHeader.Names.UserAgent, header);
                }
            }
            var policy = new MgmtTelemetryPolicy(message, ClientOptions.Default);

            policy.OnSendingRequest(message);
        }