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());
        }
Ejemplo n.º 2
0
        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());
        }