use of io.crnk.core.engine.properties.EmptyPropertiesProvider in project crnk-framework by crnk-project.
the class IncludeLookupSetterBaseTest method includeByDefaultSerializeNLevels.
@Test
public void includeByDefaultSerializeNLevels() throws Exception {
Project project = new Project();
project.setId(1L);
Task task = new Task().setId(2L);
project.setTask(task);
Project projectDefault = new Project().setId(3L);
task.setProject(projectDefault);
mapper = new DocumentMapper(resourceRegistry, objectMapper, new EmptyPropertiesProvider(), resourceFilterDirectory);
QuerySpec querySpec = new QuerySpec(Project.class);
querySpec.includeRelation(Collections.singletonList("task"));
Document document = mapper.toDocument(toResponse(project), toAdapter(querySpec));
Resource projectResource = document.getSingleData().get();
Relationship relationship = projectResource.getRelationships().get("task");
assertNotNull(relationship);
assertEquals("2", relationship.getSingleData().get().getId());
assertNotNull(document.getIncluded());
assertEquals(2, document.getIncluded().size());
List<Resource> resources = document.getIncluded();
assertEquals("projects", resources.get(0).getType());
assertEquals("3", resources.get(0).getId());
assertEquals("tasks", resources.get(1).getType());
assertEquals("2", resources.get(1).getId());
}
Aggregations