public void SourceBaseType() { var registry = DefaultTypeConverter.Create(); var result1 = registry.ConvertTo <string>(TypeConversionContext.None, TestEnum.Value1); var result2 = registry.ConvertTo <string>(TypeConversionContext.None, TestEnum.Value2); var result3 = registry.ConvertTo <string>(TypeConversionContext.None, true); Assert.AreEqual("value1", result1); Assert.AreEqual("Value2", result2); Assert.AreEqual("true", result3); }
public void TargetBaseType() { var registry = DefaultTypeConverter.Create(); var result1 = registry.ConvertTo <TestEnum>(TypeConversionContext.None, "value1"); var result2 = registry.ConvertTo <TestEnum>(TypeConversionContext.None, "Value2"); var result3 = registry.ConvertTo <bool>(TypeConversionContext.None, "true"); var result4 = registry.ConvertTo <bool>(TypeConversionContext.None, "True"); Assert.AreEqual(TestEnum.Value1, result1); Assert.AreEqual(TestEnum.Value2, result2); Assert.AreEqual(true, result3); Assert.AreEqual(true, result4); }
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 HttpApi(ITypeConverter typeConverter = null) { TypeConverter = TypeConverterAttribute.Combine(typeof(T), typeConverter ?? DefaultTypeConverter.Create()); Headers = HeaderAttribute.GetHeaders(typeof(T)); // Create endpoints var endpoints = new Dictionary <MethodInfo, HttpApiEndpoint>(); foreach (var method in typeof(T).GetMethods()) { var httpMethod = method.GetHttpMethodAttribute(); if (httpMethod != null) { var endpoint = CreateEndpoint(method, httpMethod); endpoints[method] = endpoint; } } Endpoints = endpoints; }