public void ClientRequestIdPresentInWebRequestAndValidGuid() { var mock = new MockRepository(MockBehavior.Loose); var request = mock.Create<HttpWebRequest>(); var headers = new WebHeaderCollection(); request.SetupProperty(c => c.Headers,headers); ClientRequestIdAdapter adapter = new ClientRequestIdAdapter(); adapter.AddClientRequestId(request.Object); Assert.AreEqual(1, request.Object.Headers.Count); string xMsClientRequestId = "x-ms-client-request-id"; Assert.IsNotNull(request.Object.Headers[xMsClientRequestId]); Guid guid; Assert.IsTrue(Guid.TryParse(request.Object.Headers[xMsClientRequestId],out guid)); }
private Uri GetAccountApiEndpoint(OAuthDataServiceAdapter dataServiceAdapter, ServiceVersionAdapter versionAdapter, Uri apiServer, UserAgentAdapter userAgentAdapter,ClientRequestIdAdapter clientRequestIdAdapter) { MediaRetryPolicy retryPolicy = new MediaRetryPolicy( GetWebRequestTransientErrorDetectionStrategy(), RetryStrategyFactory.DefaultStrategy()); Uri apiEndpoint = null; retryPolicy.ExecuteAction( () => { HttpWebRequest request = (HttpWebRequest) WebRequest.Create(apiServer); request.AllowAutoRedirect = false; dataServiceAdapter.AddAccessTokenToRequest(request); versionAdapter.AddVersionToRequest(request); userAgentAdapter.AddUserAgentToRequest(request); clientRequestIdAdapter.AddClientRequestId(request); using (WebResponse response = request.GetResponse()) { apiEndpoint = GetAccountApiEndpointFromResponse(response); } } ); return apiEndpoint; }