public override async Task <object> Call(HttpApiEndpoint endpoint, IHttpHandler httpHandler, string baseUrl, HttpApiArguments arguments, HttpApiInstrumenter apiInstrumenter) { arguments["s"] = arguments["s"] + "bar"; var result = await base.Call(endpoint, httpHandler, baseUrl, arguments, apiInstrumenter); return(result + "goat"); }
public IHttpApiInstrumentation InstrumentCall(HttpApiEndpoint endpoint, HttpApiArguments arguments, IHttpApiInstrumentation inner) { return(new HttpApiInstrumentation(inner, () => { var request = inner.GetRequests().Single(); request.Headers.AddRange(Headers); return new[] { request }; })); }
public IHttpApiInstrumentation InstrumentCall(HttpApiEndpoint endpoint, HttpApiArguments arguments, IHttpApiInstrumentation inner) { return(new HttpApiInstrumentation(inner, getResponse: async request => { var response = await inner.GetResponse(request); response.ApiResponse.Body = new JsonHttpBody("foo"); return response; })); }
public async void Method() { var httpHandler = new MockHttpHandler(); var responseHandler = new MockResponseHandler<object>(); var endpoint = new HttpApiEndpoint("path/to/api", HttpMethod.Get, new Dictionary<string, IHttpArgumentHandler>(), responseHandler, Enumerable.Empty<HttpHeader>()); await endpoint.Call(httpHandler, "http://localhost", new Dictionary<string, object>()); Assert.AreEqual(HttpMethod.Get, httpHandler.Request.Method); }
public async Task Method() { var httpHandler = new MockHttpHandler(); var responseHandler = new MockResponseHandler <object>(); var endpoint = new HttpApiEndpoint(null, "path/to/api", HttpMethod.Get, new Dictionary <string, IHttpArgumentHandler>(), responseHandler, Enumerable.Empty <HttpHeader>()); await endpoint.Call(httpHandler, "http://localhost", new Dictionary <string, object>()); Assert.AreEqual(HttpMethod.Get, httpHandler.Request.Method); }
public IHttpApiInstrumentation InstrumentCall(HttpApiEndpoint endpoint, HttpApiArguments arguments, IHttpApiInstrumentation inner) { var instrumentation = inner; foreach (var instrumenter in instrumenters.Reverse()) { instrumentation = instrumenter(endpoint, arguments, instrumentation); } return(instrumentation); }
public async void HeadersProvider() { var httpHandler = new MockHttpHandler(); var responseHandler = new MockResponseHandler<object>(); var headersProvider = new MockApiInstrumenter(); headersProvider.Headers.Add(new HttpHeader("key", "value")); var endpoint = new HttpApiEndpoint("path/to/api", HttpMethod.Get, new Dictionary<string, IHttpArgumentHandler>(), responseHandler, Enumerable.Empty<HttpHeader>()); await endpoint.Call(httpHandler, "http://localhost", new Dictionary<string, object>(), headersProvider.InstrumentCall); var header = httpHandler.Request.Headers.Single(); Assert.AreEqual("key", header.Name); Assert.AreEqual("value", header.Values.Single()); }
public async Task HeadersProvider() { var httpHandler = new MockHttpHandler(); var responseHandler = new MockResponseHandler <object>(); var headersProvider = new MockApiInstrumenter(); headersProvider.Headers.Add(new HttpHeader("key", "value")); var endpoint = new HttpApiEndpoint(null, "path/to/api", HttpMethod.Get, new Dictionary <string, IHttpArgumentHandler>(), responseHandler, Enumerable.Empty <HttpHeader>()); await endpoint.Call(httpHandler, "http://localhost", new Dictionary <string, object>(), headersProvider.InstrumentCall); var header = httpHandler.Request.Headers.Single(); Assert.AreEqual("key", header.Name); Assert.AreEqual("value", header.Values.Single()); }
public async void ArgumentProvider() { var httpHandler = new MockHttpHandler(); var responseHandler = new MockResponseHandler<string>(x => x.Headers.Single(y => y.Name == "name").Values.Single()); var endpoint = new HttpApiEndpoint( "path/to/api", HttpMethod.Get, new Dictionary<string, IHttpArgumentHandler> { { "name", new HttpHeaderArgumentHandler(DefaultTypeConverter.Create()) } }, responseHandler, Enumerable.Empty<HttpHeader>()); var response = await endpoint.Call(httpHandler, "http://localhost", new Dictionary<string, object> { ["name"] = "value" }); Assert.AreEqual("value", response); }
public async Task ArgumentProvider() { var httpHandler = new MockHttpHandler(); var responseHandler = new MockResponseHandler <string>(x => x.Headers.Single(y => y.Name == "name").Values.Single()); var endpoint = new HttpApiEndpoint( null, "path/to/api", HttpMethod.Get, new Dictionary <string, IHttpArgumentHandler> { { "name", new HttpHeaderArgumentHandler(DefaultTypeConverter.Create()) } }, responseHandler, Enumerable.Empty <HttpHeader>()); var response = await endpoint.Call(httpHandler, "http://localhost", new Dictionary <string, object> { ["name"] = "value" }); Assert.AreEqual("value", response); }
public override async Task<object> Call(HttpApiEndpoint endpoint, IHttpHandler httpHandler, string baseUrl, Dictionary<string, object> arguments, HttpApiInstrumenter apiInstrumenter) { arguments["s"] = arguments["s"] + "bar"; var result = await base.Call(endpoint, httpHandler, baseUrl, arguments, apiInstrumenter); return result + "goat"; }