public void ServiceVersionHeaderPresentAndContainsVersion() { var mock = new MockRepository(MockBehavior.Loose); var request = mock.Create<HttpWebRequest>(); var headers = new WebHeaderCollection(); request.SetupProperty(c => c.Headers, headers); ServiceVersionAdapter adapter = new ServiceVersionAdapter(new Version(1,0)); adapter.AddVersionToRequest(request.Object); Assert.AreEqual(1, request.Object.Headers.Count); string xMsVersion = "x-ms-version"; Assert.IsNotNull(request.Object.Headers[xMsVersion]); Assert.AreEqual("1.0",request.Object.Headers[xMsVersion]); }
private Uri GetAccountApiEndpoint(OAuthDataServiceAdapter dataServiceAdapter, ServiceVersionAdapter versionAdapter, Uri apiServer, UserAgentAdapter userAgentAdapter, IWebRequestAdapter 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; }