public async Task IApiParameterAttributeTest() { var context = new ApiActionContext { HttpApiConfig = new HttpApiConfig(), RequestMessage = new HttpApiRequestMessage { RequestUri = new Uri("http://www.mywebapi.com"), Method = HttpMethod.Post }, ApiActionDescriptor = ApiDescriptorCache.GetApiActionDescriptor(typeof(IMyApi).GetMethod("PostAsync")) }; var parameter = context.ApiActionDescriptor.Parameters[0]; parameter.Value = new { @class = 123, User_Agent = "WebApiClient" }; var attr = new HeadersAttribute(); await attr.BeforeRequestAsync(context, parameter); context.RequestMessage.Headers.TryGetValues("User-Agent", out IEnumerable <string> values); Assert.Equal("WebApiClient", values.FirstOrDefault()); context.RequestMessage.Headers.TryGetValues("class", out IEnumerable <string> cValues); Assert.Equal("123", cValues.FirstOrDefault()); }
public async Task IApiParameterAttributeTest() { var context = new TestActionContext( httpApi: null, httpApiConfig: new HttpApiConfig(), apiActionDescriptor: new ApiActionDescriptor(typeof(IMyApi).GetMethod("PostAsync"))); var parameter = context.ApiActionDescriptor.Parameters[0].Clone(new { @class = 123, User_Agent = "WebApiClient" }); var attr = new HeadersAttribute(); await attr.BeforeRequestAsync(context, parameter); context.RequestMessage.Headers.TryGetValues("User-Agent", out IEnumerable <string> values); Assert.Equal("WebApiClient", values.FirstOrDefault()); context.RequestMessage.Headers.TryGetValues("class", out IEnumerable <string> cValues); Assert.Equal("123", cValues.FirstOrDefault()); }