public async Task GetEntryWithIfNoneMatchShouldReturnNotModifiedETagsTest_ForDouble() { string eTag; var getUri = this.BaseAddress + "/double/ETagsCustomers?$format=json"; using (var response = await Client.GetAsync(getUri)) { Assert.True(response.IsSuccessStatusCode); var json = await response.Content.ReadAsAsync<JObject>(); var result = json.GetValue("value") as JArray; Assert.NotNull(result); // check the first eTag = result[0]["@odata.etag"].ToString(); Assert.False(String.IsNullOrEmpty(eTag)); Assert.Equal("W/\"Mi4w\"", eTag); EntityTagHeaderValue parsedValue; Assert.True(EntityTagHeaderValue.TryParse(eTag, out parsedValue)); HttpConfiguration config = new HttpConfiguration(); IETagHandler handler = config.GetETagHandler(); IDictionary<string, object> tags = handler.ParseETag(parsedValue); KeyValuePair<string, object> pair = Assert.Single(tags); Single value = Assert.IsType<Single>(pair.Value); Assert.Equal((Single)2.0, value); } var getRequestWithEtag = new HttpRequestMessage(HttpMethod.Get, this.BaseAddress + "/double/ETagsCustomers(0)"); getRequestWithEtag.Headers.IfNoneMatch.ParseAdd(eTag); using (var response = await Client.SendAsync(getRequestWithEtag)) { Assert.Equal(HttpStatusCode.NotModified, response.StatusCode); } }
public void SetETagHandler_ReturnsHandlerSet_UsingSetETagHandler() { // Arrange HttpConfiguration config = new HttpConfiguration(); IETagHandler etagHandler = new Mock<IETagHandler>().Object; // Act config.SetETagHandler(etagHandler); // Assert Assert.Same(etagHandler, config.GetETagHandler()); }
public void GetETagHandler_ReturnDefaultODataETagHandler_IfNotSet() { // Arrange HttpConfiguration config = new HttpConfiguration(); // Act IETagHandler etagHandler = config.GetETagHandler(); // Assert Assert.IsType<DefaultODataETagHandler>(etagHandler); }