internal static void Initialize(string functionAppCode, Uri functionAppBaseUrl) { authCode = functionAppCode; baseUrl = functionAppBaseUrl; httpHandler = new ServiceFacadeHttpClientHandler(ApiVersion.LatestVersion); httpClient = new Lazy <HttpClient>(CreateHttpClient); }
public async Task When_Function_Returns_No_Version_Should_Return_Bad_Request() { using var target = new ServiceFacadeHttpClientHandler(ApiVersion.Version_2018_12_16_Preview, FakeHandler); this.fakeHttpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent("100"), }; using var httpClient = new HttpClient(target); using var response = await httpClient.GetAsync(new Uri ("https://mytest.test.com/api/Function1?code=aaabbbb")); Assert.False(response.IsSuccessStatusCode); Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); Assert.Equal("Version mismatch (expected: 2018-12-16-preview, function version: 0.2 or earlier), ensure you have the latest version deployed", response.ReasonPhrase); Assert.Equal("https://mytest.test.com/api/Function1?code=aaabbbb&api-version=2018-12-16-preview", this.fakeRequestedUri.ToString()); }
public async Task When_Function_Returns_Unknown_Newer_Version_Should_Return_OK() { using var target = new ServiceFacadeHttpClientHandler(ApiVersion.Version_2018_12_16_Preview, FakeHandler); this.fakeHttpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent("100"), }; this.fakeHttpResponseMessage.Headers.Add(ApiVersion.HttpHeaderName, "2018-12-30-preview"); using var httpClient = new HttpClient(target); using var response = await httpClient.GetAsync(new Uri ("https://mytest.test.com/api/Function1?code=aaabbbb")); Assert.True(response.IsSuccessStatusCode); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal("https://mytest.test.com/api/Function1?code=aaabbbb&api-version=2018-12-16-preview", this.fakeRequestedUri.ToString()); Assert.Equal("100", await response.Content.ReadAsStringAsync()); }
public async Task When_Function_Uri_Has_No_Parameter_Adds_Question_Mark() { using var target = new ServiceFacadeHttpClientHandler(ApiVersion.Version_2018_12_16_Preview, FakeHandler); this.fakeHttpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent("100"), }; this.fakeHttpResponseMessage.Headers.Add(ApiVersion.HttpHeaderName, ApiVersion.Version_2018_12_16_Preview.Version); using var httpClient = new HttpClient(target); using var response = await httpClient.GetAsync(new Uri ("https://mytest.test.com/api/Function1")); Assert.True(response.IsSuccessStatusCode); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal("https://mytest.test.com/api/Function1?api-version=2018-12-16-preview", this.fakeRequestedUri.ToString()); Assert.Equal("100", await response.Content.ReadAsStringAsync()); }
public async Task When_Function_Returns_Unknown_Older_Version_Should_Return_Bad_Request() { var target = new ServiceFacadeHttpClientHandler(ApiVersion.Version_2019_01_30_Preview, this.FakeHandler); this.fakeHttpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent("100"), }; this.fakeHttpResponseMessage.Headers.Add(ApiVersion.HttpHeaderName, "2018-01-01-preview"); var httpClient = new HttpClient(target); var response = await httpClient.GetAsync("https://mytest.test.com/api/Function1?code=aaabbbb"); Assert.False(response.IsSuccessStatusCode); Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); Assert.Equal("Version mismatch (expected: 2019-01-30-preview, function version: 2018-01-01-preview), ensure you have the latest version deployed", response.ReasonPhrase); Assert.Equal("https://mytest.test.com/api/Function1?code=aaabbbb&api-version=2019-01-30-preview", this.fakeRequestedUri.ToString()); }
public async Task When_Function_Returns_Error_Does_Not_Check_Version_Compatibility() { using var target = new ServiceFacadeHttpClientHandler(ApiVersion.Version_2019_02_12_Preview, FakeHandler); this.fakeHttpResponseMessage = new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent("100"), ReasonPhrase = "Internal Server Error", }; this.fakeHttpResponseMessage.Headers.Add(ApiVersion.HttpHeaderName, "2018-01-01-preview"); using var httpClient = new HttpClient(target); using var response = await httpClient.GetAsync(new Uri ("https://mytest.test.com/api/Function1?code=aaabbbb")); Assert.False(response.IsSuccessStatusCode); Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode); Assert.Equal("Internal Server Error", response.ReasonPhrase); Assert.Equal("https://mytest.test.com/api/Function1?code=aaabbbb&api-version=2019-02-12-preview", this.fakeRequestedUri.ToString()); }