use of io.crnk.core.engine.internal.http.HttpRequestProcessorImpl in project crnk-framework by crnk-project.
the class HttpRequestProcessorImplTest method shouldNotifyWhenActionIsExeecuted.
@Test
public void shouldNotifyWhenActionIsExeecuted() throws Exception {
// GIVEN
String path = "/actionResource/1/someAction";
String requestType = "GET";
ControllerRegistry controllerRegistry = new ControllerRegistry(null);
QuerySpecAdapterBuilder queryAdapterBuilder = new QuerySpecAdapterBuilder(new DefaultQuerySpecDeserializer(), moduleRegistry);
RequestDispatcher sut = new HttpRequestProcessorImpl(moduleRegistry, controllerRegistry, null, queryAdapterBuilder);
// WHEN
Map<String, Set<String>> parameters = new HashMap<>();
sut.dispatchAction(path, "GET", parameters);
// THEN
ArgumentCaptor<DocumentFilterContext> filterContextCaptor = ArgumentCaptor.forClass(DocumentFilterContext.class);
Mockito.verify(documentFilter, Mockito.times(1)).filter(filterContextCaptor.capture(), Mockito.any(DocumentFilterChain.class));
DocumentFilterContext filterContext = filterContextCaptor.getValue();
Assert.assertEquals("GET", filterContext.getMethod());
Assert.assertTrue(filterContext.getJsonPath() instanceof ActionPath);
}
use of io.crnk.core.engine.internal.http.HttpRequestProcessorImpl in project crnk-framework by crnk-project.
the class ResourceFieldContributorTest method checkInclusionUponRequest.
@Test
public void checkInclusionUponRequest() {
TaskRepository repo = new TaskRepository();
Task task = new Task();
task.setId(1L);
task.setName("someTask");
repo.save(task);
HttpRequestProcessorImpl requestDispatcher = boot.getRequestDispatcher();
HttpRequestContextProvider httpRequestContextProvider = boot.getModuleRegistry().getHttpRequestContextProvider();
HttpRequestContext request = Mockito.mock(HttpRequestContext.class);
httpRequestContextProvider.onRequestStarted(request);
Map<String, Set<String>> parameters = new HashMap<>();
parameters.put("include", Sets.newHashSet("contributedProject"));
Response response = requestDispatcher.dispatchRequest("tasks", "GET", parameters, null, null);
Document document = response.getDocument();
Resource resource = document.getCollectionData().get().get(0);
Assert.assertEquals("1", resource.getId());
Assert.assertEquals("tasks", resource.getType());
Assert.assertEquals("someTask", resource.getAttributes().get("name").asText());
Relationship relationship = resource.getRelationships().get("contributedProject");
Assert.assertNotNull(relationship);
ResourceIdentifier relationshipId = relationship.getSingleData().get();
Assert.assertEquals("projects", relationshipId.getType());
Assert.assertEquals("11", relationshipId.getId());
List<Resource> included = document.getIncluded();
Assert.assertEquals(1, included.size());
Resource includedResource = included.get(0);
Assert.assertEquals("projects", includedResource.getType());
Assert.assertEquals("11", includedResource.getId());
Assert.assertEquals("someProject", includedResource.getAttributes().get("name").asText());
}
use of io.crnk.core.engine.internal.http.HttpRequestProcessorImpl in project crnk-framework by crnk-project.
the class CrnkBoot method createRequestDispatcher.
private HttpRequestProcessorImpl createRequestDispatcher(ExceptionMapperRegistry exceptionMapperRegistry) {
ControllerRegistryBuilder controllerRegistryBuilder = newControllerRegistryBuilder(resourceRegistry, moduleRegistry.getTypeParser(), objectMapper, propertiesProvider, moduleRegistry.getContext().getResourceFilterDirectory(), moduleRegistry.getResourceModificationFilters());
ControllerRegistry controllerRegistry = controllerRegistryBuilder.build();
this.documentMapper = controllerRegistryBuilder.getDocumentMapper();
QueryAdapterBuilder queryAdapterBuilder;
if (queryParamsBuilder != null) {
queryAdapterBuilder = new QueryParamsAdapterBuilder(queryParamsBuilder, moduleRegistry);
} else {
queryAdapterBuilder = new QuerySpecAdapterBuilder(querySpecDeserializer, moduleRegistry);
}
return new HttpRequestProcessorImpl(moduleRegistry, controllerRegistry, exceptionMapperRegistry, queryAdapterBuilder);
}
use of io.crnk.core.engine.internal.http.HttpRequestProcessorImpl in project crnk-framework by crnk-project.
the class CrnkBootTest method setQuerySpecDeserializer.
@Test
public void setQuerySpecDeserializer() {
CrnkBoot boot = new CrnkBoot();
boot.setServiceDiscoveryFactory(serviceDiscoveryFactory);
boot.setDefaultServiceUrlProvider(mock(ServiceUrlProvider.class));
QuerySpecDeserializer deserializer = Mockito.mock(QuerySpecDeserializer.class);
boot.setQuerySpecDeserializer(deserializer);
Assert.assertSame(deserializer, boot.getQuerySpecDeserializer());
boot.boot();
HttpRequestProcessorImpl requestDispatcher = boot.getRequestDispatcher();
QueryAdapterBuilder queryAdapterBuilder = requestDispatcher.getQueryAdapterBuilder();
Assert.assertTrue(queryAdapterBuilder instanceof QuerySpecAdapterBuilder);
}
use of io.crnk.core.engine.internal.http.HttpRequestProcessorImpl in project crnk-framework by crnk-project.
the class HomeModuleTest method testNonRootRequestNotTouchedForDifferentContentType.
@Test
public void testNonRootRequestNotTouchedForDifferentContentType() throws IOException {
HttpRequestContextBase requestContextBase = Mockito.mock(HttpRequestContextBase.class);
Mockito.when(requestContextBase.getMethod()).thenReturn("GET");
Mockito.when(requestContextBase.getPath()).thenReturn("/");
Mockito.when(requestContextBase.getRequestHeader("Accept")).thenReturn("application/doesNotExists");
HttpRequestProcessorImpl requestDispatcher = boot.getRequestDispatcher();
requestDispatcher.process(requestContextBase);
Mockito.verify(requestContextBase, Mockito.times(0)).setResponse(Mockito.anyInt(), (byte[]) Mockito.anyObject());
}
Aggregations