public async Task BeforeRequestAsyncTest() { var context = new ApiActionContext { HttpApiConfig = new HttpApiConfig(), RequestMessage = new HttpApiRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("http://www.webapi.com/") }, ApiActionDescriptor = ApiDescriptorCache.GetApiActionDescriptor(typeof(IMyApi).GetMethod("PostAsync")) }; var parameter = context.ApiActionDescriptor.Parameters[0]; parameter.Value = new Model { name = "laojiu", birthDay = DateTime.Parse("2010-10-10") }; var attr = new XmlContentAttribute(); await((IApiParameterAttribute)attr).BeforeRequestAsync(context, parameter); var body = await context.RequestMessage.Content.ReadAsStringAsync(); var target = context.HttpApiConfig.XmlFormatter.Serialize(parameter.Value, Encoding.UTF8); Assert.True(body == target); }
public async Task OnRequestAsyncTest() { var apiAction = new ApiActionDescriptor(typeof(IMyApi).GetMethod("PostAsync")); var context = new TestRequestContext(apiAction, new Model { name = "laojiu", birthDay = DateTime.Parse("2010-10-10") }); context.HttpContext.RequestMessage.RequestUri = new Uri("http://www.webapi.com/"); context.HttpContext.RequestMessage.Method = HttpMethod.Post; var attr = new XmlContentAttribute(); await attr.OnRequestAsync(new ApiParameterContext(context, 0)); var body = await context.HttpContext.RequestMessage.Content.ReadAsStringAsync(); var target = context.HttpContext.Services.GetService <IXmlSerializer>().Serialize(context.Arguments[0], Encoding.UTF8); Assert.True(body == target); }