示例#1
0
        public void Request_RelativeTemplateUriWithQuery_DeferredValues_FromContext_Build()
        {
            Uri baseUri = new Uri("http://localhost:1234/");

            HttpRequest <TestParameterContext> requestBuilder =
                HttpRequest <TestParameterContext> .Factory.Create(baseUri)
                .WithRelativeUri("{action}/{id}?flag={flag?}")
                .WithTemplateParameter("action", context => context.Action)
                .WithTemplateParameter("id", context => context.Id)
                .WithTemplateParameter("flag", context => context.Flag);

            TestParameterContext testParameterContext = new TestParameterContext
            {
                Action = "foo",
                Id     = 1,
                Flag   = true
            };

            using (HttpRequestMessage requestMessage = requestBuilder.BuildRequestMessage(HttpMethod.Get, testParameterContext))
            {
                Assert.Equal(
                    new Uri(baseUri, "foo/1?flag=True"),
                    requestMessage.RequestUri
                    );
            }

            testParameterContext.Flag = false;
            using (HttpRequestMessage requestMessage = requestBuilder.BuildRequestMessage(HttpMethod.Get, testParameterContext))
            {
                Assert.Equal(
                    new Uri(baseUri, "foo/1?flag=False"),
                    requestMessage.RequestUri
                    );
            }

            testParameterContext.Action = "diddly";
            testParameterContext.Id     = -17;
            testParameterContext.Flag   = null;
            using (HttpRequestMessage requestMessage = requestBuilder.BuildRequestMessage(HttpMethod.Get, testParameterContext))
            {
                Assert.Equal(
                    new Uri(baseUri, "diddly/-17"),
                    requestMessage.RequestUri
                    );
            }
        }
示例#2
0
        public async Task Request_RelativeTemplateUriWithQuery_DeferredValues_FromContext_Get()
        {
            Uri baseUri = new Uri("http://localhost:1234/");

            TestParameterContext testParameterContext = new TestParameterContext();

            Uri        expectedUri = null;
            HttpClient client      = TestClients.Expect(requestMessage =>
            {
                Assert.Equal(expectedUri, requestMessage.RequestUri);
            });

            using (client)
            {
                HttpRequest <TestParameterContext> requestBuilder =
                    HttpRequest <TestParameterContext> .Factory.Create(baseUri)
                    .WithRelativeUri("{action}/{id}?flag={flag?}")
                    .WithTemplateParameter("action", context => context.Action)
                    .WithTemplateParameter("id", context => context.Id)
                    .WithTemplateParameter("flag", context => context.Flag);

                testParameterContext.Action = "foo";
                testParameterContext.Id     = 1;
                testParameterContext.Flag   = true;

                expectedUri = new Uri(baseUri, "foo/1?flag=True");
                await client.GetAsync(requestBuilder, testParameterContext);

                testParameterContext.Flag = false;

                expectedUri = new Uri(baseUri, "foo/1?flag=False");
                await client.GetAsync(requestBuilder, testParameterContext);

                testParameterContext.Action = "diddly";
                testParameterContext.Id     = -17;
                testParameterContext.Flag   = null;

                expectedUri = new Uri(baseUri, "diddly/-17");
                await client.GetAsync(requestBuilder, testParameterContext);
            }
        }