Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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;
        }