private static async Task <InputFormatterResult> ReadRequestBody(string sampleXml, ModelStateDictionary modelStateDictionary) { var formatter = new FhirXmlInputFormatter(new FhirXmlParser()); var metaData = new DefaultModelMetadata(new EmptyModelMetadataProvider(), new DefaultCompositeMetadataDetailsProvider(new IMetadataDetailsProvider[0]), new DefaultMetadataDetails(ModelMetadataIdentity.ForType(typeof(Observation)), ModelAttributes.GetAttributesForType(typeof(Observation)))); var defaultHttpContext = new DefaultHttpContext(); defaultHttpContext.Request.Body = new MemoryStream(Encoding.UTF8.GetBytes(sampleXml)); var context = new InputFormatterContext( defaultHttpContext, KnownActionParameterNames.Resource, modelStateDictionary, metaData, Substitute.For <Func <Stream, Encoding, TextReader> >()); return(await formatter.ReadRequestBodyAsync(context)); }