use of io.crnk.core.engine.internal.dispatcher.ControllerRegistry in project crnk-framework by crnk-project.
the class HttpRequestProcessorImplTest method onGivenPathAndRequestTypeControllerShouldHandleRequest.
@Test
public void onGivenPathAndRequestTypeControllerShouldHandleRequest() throws Exception {
// GIVEN
String path = "/tasks/";
String requestType = "GET";
ControllerRegistry controllerRegistry = new ControllerRegistry(null);
CollectionGet controller = mock(CollectionGet.class);
controllerRegistry.addController(controller);
QuerySpecAdapterBuilder queryAdapterBuilder = new QuerySpecAdapterBuilder(new DefaultQuerySpecDeserializer(), moduleRegistry);
RequestDispatcher sut = new HttpRequestProcessorImpl(moduleRegistry, controllerRegistry, null, queryAdapterBuilder);
// WHEN
when(controller.isAcceptable(any(JsonPath.class), eq(requestType))).thenCallRealMethod();
Map<String, Set<String>> parameters = new HashMap<>();
sut.dispatchRequest(path, requestType, parameters, null, null);
// THEN
verify(controller, times(1)).handle(any(JsonPath.class), any(QueryAdapter.class), any(RepositoryMethodParameterProvider.class), any(Document.class));
}
use of io.crnk.core.engine.internal.dispatcher.ControllerRegistry in project crnk-framework by crnk-project.
the class HttpRequestProcessorImplTest method checkProcess.
@Test
public void checkProcess() throws IOException {
HttpRequestContextBase requestContextBase = Mockito.mock(HttpRequestContextBase.class);
HttpRequestContextBaseAdapter requestContext = new HttpRequestContextBaseAdapter(requestContextBase);
Mockito.when(requestContextBase.getMethod()).thenReturn("GET");
Mockito.when(requestContextBase.getPath()).thenReturn("/tasks/");
Mockito.when(requestContextBase.getRequestHeader("Accept")).thenReturn("*");
ControllerRegistry controllerRegistry = new ControllerRegistry(null);
CollectionGet controller = mock(CollectionGet.class);
when(controller.isAcceptable(any(JsonPath.class), eq("GET"))).thenCallRealMethod();
controllerRegistry.addController(controller);
QuerySpecAdapterBuilder queryAdapterBuilder = new QuerySpecAdapterBuilder(new DefaultQuerySpecDeserializer(), moduleRegistry);
RequestDispatcher sut = new HttpRequestProcessorImpl(moduleRegistry, controllerRegistry, null, queryAdapterBuilder);
sut.process(requestContext);
verify(controller, times(1)).handle(any(JsonPath.class), any(QueryAdapter.class), any(RepositoryMethodParameterProvider.class), any(Document.class));
}
use of io.crnk.core.engine.internal.dispatcher.ControllerRegistry in project crnk-framework by crnk-project.
the class HttpRequestProcessorImplTest method shouldMapExceptionToErrorResponseIfMapperIsAvailable.
@Test
public void shouldMapExceptionToErrorResponseIfMapperIsAvailable() throws Exception {
ControllerRegistry controllerRegistry = mock(ControllerRegistry.class);
// noinspection unchecked
when(controllerRegistry.getController(any(JsonPath.class), anyString())).thenThrow(IllegalStateException.class);
QuerySpecAdapterBuilder queryAdapterBuilder = new QuerySpecAdapterBuilder(new DefaultQuerySpecDeserializer(), moduleRegistry);
RequestDispatcher requestDispatcher = new HttpRequestProcessorImpl(moduleRegistry, controllerRegistry, ExceptionMapperRegistryTest.exceptionMapperRegistry, queryAdapterBuilder);
Response response = requestDispatcher.dispatchRequest("tasks", null, null, null, null);
assertThat(response).isNotNull();
assertThat(response.getHttpStatus()).isEqualTo(HttpStatus.BAD_REQUEST_400);
}
use of io.crnk.core.engine.internal.dispatcher.ControllerRegistry in project crnk-framework by crnk-project.
the class FilterTest method prepare.
@Before
public void prepare() {
boot = new CrnkBoot();
boot.setServiceDiscovery(new ReflectionsServiceDiscovery(MockConstants.TEST_MODELS_PACKAGE));
boot.setServiceUrlProvider(new ConstantServiceUrlProvider(ResourceRegistryTest.TEST_MODELS_URL));
// GIVEN
filter = mock(TestFilter.class);
SimpleModule filterModule = new SimpleModule("filter");
filterModule.addFilter(filter);
boot.addModule(filterModule);
boot.boot();
resourceRegistry = boot.getResourceRegistry();
moduleRegistry = boot.getModuleRegistry();
pathBuilder = new PathBuilder(resourceRegistry);
ControllerRegistry controllerRegistry = new ControllerRegistry(null);
collectionGet = mock(CollectionGet.class);
controllerRegistry.addController(collectionGet);
QuerySpecAdapterBuilder queryAdapterBuilder = new QuerySpecAdapterBuilder(new DefaultQuerySpecDeserializer(), moduleRegistry);
dispatcher = new HttpRequestProcessorImpl(moduleRegistry, controllerRegistry, null, queryAdapterBuilder);
}
use of io.crnk.core.engine.internal.dispatcher.ControllerRegistry in project crnk-framework by crnk-project.
the class ControllerRegistryTest method onUnsupportedRequestRegisterShouldThrowError.
@Test
public void onUnsupportedRequestRegisterShouldThrowError() {
// GIVEN
PathBuilder pathBuilder = new PathBuilder(resourceRegistry);
JsonPath jsonPath = pathBuilder.build("/tasks/");
String requestType = "PATCH";
ControllerRegistry sut = new ControllerRegistry(null);
// THEN
expectedException.expect(MethodNotFoundException.class);
// WHEN
sut.getController(jsonPath, requestType);
}
Aggregations