Search in sources :

Example 16 with EntityResponse

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));
}
Also used : MockHttpServletRequest(org.springframework.mock.web.MockHttpServletRequest) HttpServletRequest(javax.servlet.http.HttpServletRequest) Entity(org.molgenis.data.Entity) EntityResponse(org.molgenis.api.data.v3.model.EntityResponse) ServletRequestAttributes(org.springframework.web.context.request.ServletRequestAttributes) EntitiesResponse(org.molgenis.api.data.v3.model.EntitiesResponse) URI(java.net.URI) Test(org.junit.jupiter.api.Test) AbstractMockitoTest(org.molgenis.test.AbstractMockitoTest) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 17 with EntityResponse

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;
}
Also used : UriComponentsBuilder(org.springframework.web.util.UriComponentsBuilder) AttributeType(org.molgenis.data.meta.AttributeType) Builder(org.molgenis.api.data.v3.model.EntitiesResponse.Builder) MolgenisServletUriComponentsBuilder(org.molgenis.api.support.MolgenisServletUriComponentsBuilder) IllegalAttributeTypeException(org.molgenis.data.meta.IllegalAttributeTypeException) Selection(org.molgenis.api.model.Selection) LinksUtils(org.molgenis.api.support.LinksUtils) LinksResponse(org.molgenis.api.model.response.LinksResponse) Attribute(org.molgenis.data.meta.model.Attribute) EntitiesResponse(org.molgenis.api.data.v3.model.EntitiesResponse) Streams.stream(com.google.common.collect.Streams.stream) LinkedHashMap(java.util.LinkedHashMap) UnexpectedEnumException(org.molgenis.util.UnexpectedEnumException) Collectors.toList(java.util.stream.Collectors.toList) List(java.util.List) Component(org.springframework.stereotype.Component) EntityResponse(org.molgenis.api.data.v3.model.EntityResponse) Map(java.util.Map) PageUtils.getPageResponse(org.molgenis.api.support.PageUtils.getPageResponse) URI(java.net.URI) CheckForNull(javax.annotation.CheckForNull) Nullable(javax.annotation.Nullable) Page(org.molgenis.api.data.v3.EntityCollection.Page) Entity(org.molgenis.data.Entity) Builder(org.molgenis.api.data.v3.model.EntitiesResponse.Builder) EntityResponse(org.molgenis.api.data.v3.model.EntityResponse) EntitiesResponse(org.molgenis.api.data.v3.model.EntitiesResponse)

Aggregations

EntityResponse (org.molgenis.api.data.v3.model.EntityResponse)17 Entity (org.molgenis.data.Entity)17 URI (java.net.URI)16 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)14 Test (org.junit.jupiter.api.Test)12 AbstractMockitoTest (org.molgenis.test.AbstractMockitoTest)12 EntitiesResponse (org.molgenis.api.data.v3.model.EntitiesResponse)6 Selection (org.molgenis.api.model.Selection)5 HttpServletRequest (javax.servlet.http.HttpServletRequest)3 MethodSource (org.junit.jupiter.params.provider.MethodSource)3 Attribute (org.molgenis.data.meta.model.Attribute)3 MockHttpServletRequest (org.springframework.mock.web.MockHttpServletRequest)3 ServletRequestAttributes (org.springframework.web.context.request.ServletRequestAttributes)3 Streams.stream (com.google.common.collect.Streams.stream)2 LinkedHashMap (java.util.LinkedHashMap)2 List (java.util.List)2 Map (java.util.Map)2 Collectors.toList (java.util.stream.Collectors.toList)2 CheckForNull (javax.annotation.CheckForNull)2 Nullable (javax.annotation.Nullable)2