示例#1
0
        public async Task should_handle_by_latest_matched_handler()
        {
            var server = new MockHttpServer();

            server.AddHandler(new DelegatedRequestHandler(
                                  _ => true,
                                  (r, p, c) => new HttpResponseMessage(HttpStatusCode.OK),
                                  null));
            server.AddHandler(new DelegatedRequestHandler(
                                  _ => true,
                                  (r, p, c) => new HttpResponseMessage(HttpStatusCode.BadRequest),
                                  null));

            HttpClient          httpClient = CreateClient(server);
            HttpResponseMessage response   = await httpClient.GetAsync("http://uri.that.not.matches");

            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
        }
示例#2
0
        public void should_be_able_to_verify_not_called_from_named_handler_tracer()
        {
            var server = new MockHttpServer();

            server.AddHandler(new DelegatedRequestHandler(
                                  _ => true,
                                  (r, p, c) => HttpStatusCode.OK.AsResponse(),
                                  "handlerName"));

            IRequestHandlerTracer handlerTracer = server["handlerName"];

            handlerTracer.VerifyNotCalled();
            Assert.Throws <VerifyException>(() => handlerTracer.VerifyHasBeenCalled());
        }
示例#3
0
        public void should_be_able_to_get_named_handler_tracer()
        {
            var server = new MockHttpServer();

            server.AddHandler(new DelegatedRequestHandler(
                                  _ => true,
                                  (r, p, c) => HttpStatusCode.OK.AsResponse(),
                                  "handlerName"));

            IRequestHandlerTracer handlerTracer = server["handlerName"];

            Assert.NotNull(handlerTracer);
            Assert.Throws <KeyNotFoundException>(() => server["notExist"]);
        }
示例#4
0
        public async Task should_return_desired_message_if_handler_matches()
        {
            var server = new MockHttpServer();

            var expectedResponse = new HttpResponseMessage(HttpStatusCode.OK);

            server.AddHandler(new DelegatedRequestHandler(
                                  _ => true,
                                  (r, p, c) => expectedResponse,
                                  null));

            HttpClient          httpClient = CreateClient(server);
            HttpResponseMessage response   = await httpClient.GetAsync("http://uri.that.matches");

            Assert.Equal(expectedResponse, response);
        }
示例#5
0
        public async Task should_get_request_from_calling_history_of_named_handler_tracer()
        {
            var server = new MockHttpServer();

            server.AddHandler(new DelegatedRequestHandler(
                                  _ => true,
                                  (r, p, c) => HttpStatusCode.OK.AsResponse(),
                                  "handlerName"));

            IRequestHandlerTracer handlerTracer = server["handlerName"];

            HttpClient httpClient = CreateClient(server);
            await httpClient.GetAsync("http://uri.that.matches/");

            CallingHistoryContext callingHistoryContext = handlerTracer.CallingHistories.Single();

            Assert.Equal("http://uri.that.matches/", callingHistoryContext.Request.RequestUri.AbsoluteUri);
        }
示例#6
0
        public async Task should_be_able_to_verify_called_from_named_handler_tracer()
        {
            var server = new MockHttpServer();

            server.AddHandler(new DelegatedRequestHandler(
                                  _ => true,
                                  (r, p, c) => HttpStatusCode.OK.AsResponse(),
                                  "handlerName"));

            IRequestHandlerTracer handlerTracer = server["handlerName"];

            HttpClient httpClient = CreateClient(server);
            await httpClient.GetAsync("http://uri.that.matches");

            handlerTracer.VerifyHasBeenCalled();
            handlerTracer.VerifyHasBeenCalled(1);
            Assert.Throws <VerifyException>(() => handlerTracer.VerifyNotCalled());
        }
示例#7
0
        public async Task should_verify_binded_parameters_from_named_handler_tracer()
        {
            var server = new MockHttpServer();

            server.AddHandler(new DelegatedRequestHandler(
                                  _ => new MatchingResult(true, new List <KeyValuePair <string, object> >
            {
                new KeyValuePair <string, object>("p1", "v1"),
                new KeyValuePair <string, object>("p2", "v2")
            }),
                                  (r, p, c) => HttpStatusCode.OK.AsResponse(),
                                  "handlerName"));

            IRequestHandlerTracer handlerTracer = server["handlerName"];

            HttpClient httpClient = CreateClient(server);
            await httpClient.GetAsync("http://uri.that.matches/");

            handlerTracer.VerifyBindedParameter("p1", "v1");
            Assert.Throws <VerifyException>(() => handlerTracer.VerifyBindedParameter("p1", "v2"));
            Assert.Throws <VerifyException>(() => handlerTracer.VerifyBindedParameter("p15", "v2"));
            Assert.Throws <VerifyException>(() => handlerTracer.VerifyBindedParameter("p1", (string)null));
        }