コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }