public void Links_To_ToPlainResponse(object model, Link[] links, string expectedHal, string expectedPlain) { var serializer = new JsonSerializer(); var response = new HALResponse(model) .AddLinks(links); var jObject = response.ToPlainResponse(serializer); string actual = jObject.ToString(Formatting.None); Assert.Equal(expectedPlain, actual); }
public void Embedded_Resource_To_ToPlainResponse(object model, Dictionary <string, object> embeddedResources, string expectedHal, string expectedPlain) { var serializer = new JsonSerializer(); var response = new HALResponse(model); response.AddEmbeddedResources(embeddedResources); var jObject = response.ToPlainResponse(serializer); string actual = jObject.ToString(Formatting.None); Assert.Equal(expectedPlain, actual); }
public override Task WriteToStreamAsync(Type type, object value, Stream writeStream, HttpContent content, TransportContext transportContext) { // If it is a HAL response but set to application/json - convert to a plain response HALResponse halResponse = null; if (TryGetHalResponse(type, value, out halResponse)) { var serializer = this.CreateJsonSerializer(); string mediaType = content.Headers.ContentType.MediaType; if (!halResponse.Config.ForceHAL && (jsonMediaTypes.Contains(mediaType) || mediaType == JsonMediaTypeFormatter.DefaultMediaType.MediaType)) { value = halResponse.ToPlainResponse(serializer); } else { value = halResponse.ToJObject(serializer); } } return(base.WriteToStreamAsync(type, value, writeStream, content, transportContext)); }