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); }
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); }
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; } }
public void RegisterController <T>() where T : class { _requestHandler.RegisterController <T>(); }