Example #1
0
        public RestWebServer(int port, string urlPrefix) : base(port)
        {
            var fixedFormatUrlPrefix = urlPrefix.FormatRelativeUri();

            _requestHandler      = new RestControllerRequestHandler(fixedFormatUrlPrefix);
            _restToHttpConverter = new RestResponseToHttpResponseConverter();
        }
        public void GetRestMethods_HasAsyncMethod_IsAsyncSet()
        {
            var restHandler = new RestControllerRequestHandler(null);

            var allDefs = restHandler.GetRestMethods<AsyncTestController>(() => null);

            Assert.AreEqual(1, allDefs.Count());
            Assert.AreEqual(true, allDefs.First().IsAsync);
        }
Example #3
0
        public void GetRestMethods_HasAsyncMethod_IsAsyncSet()
        {
            var restHandler = new RestControllerRequestHandler();

            var allDefs = restHandler.GetRestMethods <AsyncTestController>(() => null);

            Assert.AreEqual(1, allDefs.Count());
            Assert.AreEqual(true, allDefs.First().IsAsync);
        }
        public void GetRestMethods_HasTaskMethod_CanHandleRequest()
        {
            var restHandler = new RestControllerRequestHandler();
            restHandler.RegisterController<AsyncTaskTestController>();

            var request = restHandler.HandleRequestAsync(Utils.CreateRestServerRequest(uri: new Uri("/users/1", UriKind.Relative)));

            Assert.IsNotNull(request.Result);
            Assert.AreEqual((int)GetResponse.ResponseStatus.OK, request.Result.StatusCode);
        }
Example #5
0
        public void GetRestMethods_HasIAsyncOperationMethod_CanHandleRequest()
        {
            var restHandler = new RestControllerRequestHandler();

            restHandler.RegisterController <AsyncOperationTestController>();

            var request = restHandler.HandleRequest(Utils.CreateRestServerRequest(uri: new Uri("/users/1", UriKind.Relative)));

            Assert.IsNotNull(request.Result);
            Assert.AreEqual((int)GetResponse.ResponseStatus.OK, request.Result.StatusCode);
        }
        public void GetRestMethods_WithControllerThatHasMethodsSortedByNumberOfParametersDescending_CanHandleRequest(string uri, string route)
        {
            var restHandler = new RestControllerRequestHandler();
            restHandler.RegisterController<MethodsSortedByParametersDescendingController>();

            var request = restHandler.HandleRequestAsync(Utils.CreateRestServerRequest(uri: new Uri(uri, UriKind.Relative)));

            Assert.IsNotNull(request.Result);
            Assert.AreEqual((int)GetResponse.ResponseStatus.OK, request.Result.StatusCode);
            Assert.AreEqual(route, (request.Result as IGetResponse)?.ContentData);
        }
Example #7
0
        public void GetRestMethods_WithControllerThatHasMethodsSortedByNumberOfParametersDescending_CanHandleRequest(string uri, string route)
        {
            var restHandler = new RestControllerRequestHandler();

            restHandler.RegisterController <MethodsSortedByParametersDescendingController>();

            var request = restHandler.HandleRequest(Utils.CreateRestServerRequest(uri: new Uri(uri, UriKind.Relative)));

            Assert.IsNotNull(request.Result);
            Assert.AreEqual((int)GetResponse.ResponseStatus.OK, request.Result.StatusCode);
            Assert.AreEqual(route, (request.Result as IGetResponse)?.ContentData);
        }
        public async Task HandleRequest_MoreQueryParametersThenDefined_IgnoreExtraParameters()
        {
            var restHandler = new RestControllerRequestHandler();
            restHandler.RegisterController<QueryParamsTestController>();

            var request = await restHandler.HandleRequestAsync(
                Utils.CreateRestServerRequest(uri: new Uri("/query?val=test&val2=test2&_=129283174928743", UriKind.Relative)));

            Assert.IsNotNull(request);
            Assert.AreEqual((int)GetResponse.ResponseStatus.OK, request.StatusCode);

            var asGet = request as IGetResponse;

            Assert.AreEqual(asGet.ContentData, "test");
        }
        public async Task HandleRequest_MoreQueryParametersThenDefined_IgnoreExtraParameters()
        {
            var restHandler = new RestControllerRequestHandler();

            restHandler.RegisterController <QueryParamsTestController>();

            var request = await restHandler.HandleRequestAsync(
                Utils.CreateRestServerRequest(uri: new Uri("/query?val=test&val2=test2&_=129283174928743", UriKind.Relative)));

            Assert.IsNotNull(request);
            Assert.AreEqual((int)GetResponse.ResponseStatus.OK, request.StatusCode);

            var asGet = request as IGetResponse;

            Assert.AreEqual(asGet.ContentData, "test");
        }
        public async Task TestArrays <T>(List <T> responseArray, string uri)
        {
            var restHandler = new RestControllerRequestHandler();

            restHandler.RegisterController <ArraysTestController>();

            var request = await restHandler.HandleRequestAsync(Utils.CreateRestServerRequest(uri: new Uri(uri, UriKind.Relative)));

            Assert.IsNotNull(request);
            Assert.AreEqual((int)GetResponse.ResponseStatus.OK, request.StatusCode);

            var asGet   = request as IGetResponse;
            var asArray = asGet.ContentData as ICollection;

            CollectionAssert.AreEqual(asArray, responseArray);
        }
        public void HandleRequest_ComplexObjectArray_Exception()
        {
            try
            {
                var restHandler = new RestControllerRequestHandler();
                restHandler.RegisterController <CopmlexArraysTestController>();

                Assert.Fail("Expected exception for complex data types in IEnumerable");
            }
            catch (InvalidOperationException)
            {
            }
            catch
            {
                throw;
            }
        }