public async Task QueryFeedWithDollarFormatOverrideAcceptMediaTypeTests( string contentType, string dollarFormat, string expectMediaType) { string expand = "$expand=SpecialOrder($select=Detail)"; string filter = "$filter=Id le 5"; string orderBy = "$orderby=Id desc"; string select = "$select=Id"; string format = string.Format("$format={0}", dollarFormat); string query = string.Format("?{0}&{1}&{2}&{3}&{4}", expand, filter, orderBy, select, format); string requestUri = this.BaseAddress + "/odata/DollarFormatCustomers" + query; var request = new HttpRequestMessage(HttpMethod.Get, requestUri); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse(contentType)); var response = await this.Client.SendAsync(request); Assert.True(response.IsSuccessStatusCode); Assert.Equal(expectMediaType, response.Content.Headers.ContentType.MediaType); if (dollarFormat.ToLowerInvariant().Contains("type")) { var param = response.Content.Headers.ContentType.Parameters.FirstOrDefault(e => e.Name.Equals("type")); Assert.NotNull(param); Assert.Contains(param.Value, dollarFormat.ToLowerInvariant()); } if (dollarFormat.ToLowerInvariant().Contains("odata.metadata")) { var param = response.Content.Headers.ContentType.Parameters.FirstOrDefault(e => e.Name.Equals("odata.metadata")); Assert.NotNull(param); Assert.Contains(param.Value, dollarFormat.ToLowerInvariant()); } if (dollarFormat.ToLowerInvariant().Contains("odata.streaming")) { var param = response.Content.Headers.ContentType.Parameters.FirstOrDefault(e => e.Name.Equals("odata.streaming")); Assert.NotNull(param); Assert.Contains(param.Value, dollarFormat.ToLowerInvariant()); } if (dollarFormat.ToLowerInvariant().Contains("atom")) { ODataHelper.ThrowAtomNotSupported(); } if (dollarFormat.ToLowerInvariant().Contains("xml")) { XmlReader.Create(await response.Content.ReadAsStreamAsync()); } else if (dollarFormat.ToLowerInvariant().Contains("json")) { await response.Content.ReadAsObject <JObject>(); } }
public async Task QueryEntryWithDollarFormatOverrideAcceptMediaTypeTests(string contentType, string dollarFormat, string expectMediaType) { string query = string.Format("?$format={0}", dollarFormat); string requestUri = this.BaseAddress + "/odata/DollarFormatCustomers(1)" + query; var request = new HttpRequestMessage(HttpMethod.Get, requestUri); request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse(contentType)); var response = await this.Client.SendAsync(request); Assert.True(response.IsSuccessStatusCode); Assert.Equal(expectMediaType, response.Content.Headers.ContentType.MediaType); if (dollarFormat.ToLowerInvariant().Contains("type")) { var param = response.Content.Headers.ContentType.Parameters.FirstOrDefault(e => e.Name.Equals("type")); Assert.NotNull(param); Assert.True(dollarFormat.ToLowerInvariant().Contains(param.Value)); } if (dollarFormat.ToLowerInvariant().Contains("odata.metadata")) { var param = response.Content.Headers.ContentType.Parameters.FirstOrDefault(e => e.Name.Equals("odata.metadata")); Assert.NotNull(param); Assert.True(dollarFormat.ToLowerInvariant().Contains(param.Value)); } if (dollarFormat.ToLowerInvariant().Contains("odata.streaming")) { var param = response.Content.Headers.ContentType.Parameters.FirstOrDefault(e => e.Name.Equals("odata.streaming")); Assert.NotNull(param); Assert.True(dollarFormat.ToLowerInvariant().Contains(param.Value)); } if (dollarFormat.ToLowerInvariant().Contains("atom")) { ODataHelper.ThrowAtomNotSupported(); } else if (dollarFormat.ToLowerInvariant().Contains("xml")) { Assert.DoesNotThrow(() => XmlReader.Create(response.Content.ReadAsStreamAsync().Result)); } else if (dollarFormat.ToLowerInvariant().Contains("json")) { Assert.DoesNotThrow(() => response.Content.ReadAsAsync <JObject>()); } }
public async Task QueryEntryWithDollarFormatWithoutAcceptMediaTypeTests(string dollarFormat, string expectMediaType) { string query = string.Format("?$format={0}", dollarFormat); string requestUri = this.BaseAddress + "/odata/DollarFormatCustomers(1)" + query; var response = await this.Client.GetAsync(requestUri); Assert.True(response.IsSuccessStatusCode); Assert.Equal(expectMediaType, response.Content.Headers.ContentType.MediaType); if (dollarFormat.ToLowerInvariant().Contains("type")) { var param = response.Content.Headers.ContentType.Parameters.FirstOrDefault(e => e.Name.Equals("type")); Assert.NotNull(param); Assert.Contains(param.Value, dollarFormat.ToLowerInvariant()); } if (dollarFormat.ToLowerInvariant().Contains("odata.metadata")) { var param = response.Content.Headers.ContentType.Parameters.FirstOrDefault(e => e.Name.Equals("odata.metadata")); Assert.NotNull(param); Assert.Contains(param.Value, dollarFormat.ToLowerInvariant()); } if (dollarFormat.ToLowerInvariant().Contains("odata.streaming")) { var param = response.Content.Headers.ContentType.Parameters.FirstOrDefault(e => e.Name.Equals("odata.streaming")); Assert.NotNull(param); Assert.Contains(param.Value, dollarFormat.ToLowerInvariant()); } if (dollarFormat.ToLowerInvariant().Contains("atom")) { ODataHelper.ThrowAtomNotSupported(); } else if (dollarFormat.ToLowerInvariant().Contains("xml")) { XmlReader.Create(await response.Content.ReadAsStreamAsync()); } else if (dollarFormat.ToLowerInvariant().Contains("json")) { await response.Content.ReadAsObject <JObject>(); } }