use of org.molgenis.api.data.v3.model.EntityResponse in project molgenis by molgenis.
the class EntityMapperImplTest method testMapEntityCollection.
@Test
void testMapEntityCollection() throws URISyntaxException {
HttpServletRequest request = mock(HttpServletRequest.class);
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request));
when(request.getRequestURI()).thenReturn("/api/data/EntityType");
when(request.getScheme()).thenReturn("http");
when(request.getServerName()).thenReturn("localhost");
when(request.getServerPort()).thenReturn(80);
Entity entity = createMockEntity(STRING);
doReturn("string").when(entity).getString("attr");
EntityCollection entityCollection = EntityCollection.builder().setEntityTypeId("EntityType").setEntities(singletonList(entity)).setPage(Page.builder().setOffset(0).setPageSize(1).setTotal(2).build()).build();
URI self = new URI("http://localhost/api/data/EntityType/id0");
EntityResponse expectedEntityResponse = EntityResponse.builder().setLinks(LinksResponse.create(null, self, null)).setData(singletonMap("attr", "string")).build();
URI entitiesPrevious = new URI("http://localhost/api/data/EntityType?page=0");
URI entitiesSelf = new URI("http://localhost/api/data/EntityType");
URI entitiesNext = new URI("http://localhost/api/data/EntityType?page=2");
EntitiesResponse expectedEntitiesResponse = EntitiesResponse.builder().setLinks(LinksResponse.create(entitiesPrevious, entitiesSelf, entitiesNext)).setItems(singletonList(expectedEntityResponse)).setPage(PageResponse.create(1, 2, 0)).build();
assertEquals(expectedEntitiesResponse, entityMapper.map(entityCollection, FULL_SELECTION, EMPTY_SELECTION, 10, 1, 100));
}
use of org.molgenis.api.data.v3.model.EntityResponse in project molgenis by molgenis.
the class EntityMapperImpl method mapRecursive.
private EntitiesResponse.Builder mapRecursive(EntityCollection entityCollection, Selection filter, Selection expand, int depth) {
if (depth > MAX_DEPTH) {
throw new IllegalArgumentException("max_depth exceeded: " + depth);
}
EntitiesResponse.Builder builder = EntitiesResponse.builder();
if (filter.hasItems()) {
List<EntityResponse> entityResponses = entityCollection.getEntities().stream().map(entity -> mapRecursive(entity, filter, expand, depth)).collect(toList());
builder.setItems(entityResponses);
}
return builder;
}
Aggregations