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 OnRequestAsyncTest() { var apiAction = new DefaultApiActionDescriptor(typeof(IMyApi).GetMethod("PostAsync")); var context = new TestRequestContext(apiAction, new { @class = 123, xx_yy = "xxyy" }); var attr = new HeadersAttribute(); context.HttpContext.RequestMessage.Headers.Clear(); await attr.OnRequestAsync(new ApiParameterContext(context, 0)); context.HttpContext.RequestMessage.Headers.TryGetValues("xx-yy", out IEnumerable <string> values); Assert.Equal("xxyy", values.FirstOrDefault()); context.HttpContext.RequestMessage.Headers.TryGetValues("class", out IEnumerable <string> cValues); Assert.Equal("123", cValues.FirstOrDefault()); attr.UnderlineToMinus = false; context.HttpContext.RequestMessage.Headers.Clear(); await attr.OnRequestAsync(new ApiParameterContext(context, 0)); context.HttpContext.RequestMessage.Headers.TryGetValues("xx_yy", out IEnumerable <string> values2); Assert.Equal("xxyy", values2.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()); }